habanalabs: add missing error check in sysfs max_power_show
authorTomer Tayar <ttayar@habana.ai>
Wed, 12 Jan 2022 09:40:43 +0000 (11:40 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 28 Feb 2022 12:22:03 +0000 (14:22 +0200)
Add a missing error check in the sysfs show function for max_power.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/firmware_if.c
drivers/misc/habanalabs/common/habanalabs.h
drivers/misc/habanalabs/common/sysfs.c

index 7f76f98154f02d8ec7e6ebd4bfecf7cf4d79e5d9..39de9d86ee6c74a8de381c238b6fb66e62276591 100644 (file)
@@ -2780,7 +2780,7 @@ void hl_fw_set_frequency(struct hl_device *hdev, u32 pll_index, u64 freq)
                        used_pll_idx, rc);
 }
 
-u64 hl_fw_get_max_power(struct hl_device *hdev)
+long hl_fw_get_max_power(struct hl_device *hdev)
 {
        struct cpucp_packet pkt;
        u64 result;
@@ -2794,7 +2794,7 @@ u64 hl_fw_get_max_power(struct hl_device *hdev)
 
        if (rc) {
                dev_err(hdev->dev, "Failed to get max power, error %d\n", rc);
-               return (u64) rc;
+               return rc;
        }
 
        return result;
index 9c8374d8890706448856ead75d7820ecfbd0593e..995167020c2763d925b1b965db675f46d6268824 100644 (file)
@@ -3098,7 +3098,7 @@ int hl_get_current(struct hl_device *hdev, int sensor_index, u32 attr, long *val
 int hl_get_fan_speed(struct hl_device *hdev, int sensor_index, u32 attr, long *value);
 int hl_get_pwm_info(struct hl_device *hdev, int sensor_index, u32 attr, long *value);
 void hl_set_pwm_info(struct hl_device *hdev, int sensor_index, u32 attr, long value);
-u64 hl_fw_get_max_power(struct hl_device *hdev);
+long hl_fw_get_max_power(struct hl_device *hdev);
 void hl_fw_set_max_power(struct hl_device *hdev);
 int hl_set_voltage(struct hl_device *hdev, int sensor_index, u32 attr, long value);
 int hl_set_current(struct hl_device *hdev, int sensor_index, u32 attr, long value);
index c665a3ac8876add09ead6e324a0f767d63b6221e..9ebeb18ab85e9dad3fcde4e2092b936fe947d6c7 100644 (file)
@@ -304,6 +304,8 @@ static ssize_t max_power_show(struct device *dev, struct device_attribute *attr,
                return -ENODEV;
 
        val = hl_fw_get_max_power(hdev);
+       if (val < 0)
+               return val;
 
        return sprintf(buf, "%lu\n", val);
 }