hwmon: (drivetemp) Return -ENODATA for invalid temperatures
Holger Hoffstätte observed that Samsung 850 Pro may return invalid
temperatures for a short period of time after resume. Return -ENODATA
to userspace if this is observed.
Fixes: 5b46903d8b
("hwmon: Driver for disk and solid state drives with temperature sensors")
Reported-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Cc: Holger Hoffstätte <holger@applied-asynchrony.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
6bdf8f3efe
commit
ed08ebb712
|
@ -264,12 +264,18 @@ static int drivetemp_get_scttemp(struct drivetemp_data *st, u32 attr, long *val)
|
|||
return err;
|
||||
switch (attr) {
|
||||
case hwmon_temp_input:
|
||||
if (!temp_is_valid(buf[SCT_STATUS_TEMP]))
|
||||
return -ENODATA;
|
||||
*val = temp_from_sct(buf[SCT_STATUS_TEMP]);
|
||||
break;
|
||||
case hwmon_temp_lowest:
|
||||
if (!temp_is_valid(buf[SCT_STATUS_TEMP_LOWEST]))
|
||||
return -ENODATA;
|
||||
*val = temp_from_sct(buf[SCT_STATUS_TEMP_LOWEST]);
|
||||
break;
|
||||
case hwmon_temp_highest:
|
||||
if (!temp_is_valid(buf[SCT_STATUS_TEMP_HIGHEST]))
|
||||
return -ENODATA;
|
||||
*val = temp_from_sct(buf[SCT_STATUS_TEMP_HIGHEST]);
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue