]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
hwmon: (k10temp) Only apply temperature offset if result is positive
authorGuenter Roeck <linux@roeck-us.net>
Thu, 8 Feb 2018 01:49:39 +0000 (17:49 -0800)
committerSeth Forshee <seth.forshee@canonical.com>
Wed, 28 Mar 2018 19:06:03 +0000 (14:06 -0500)
BugLink: http://bugs.launchpad.net/bugs/1759655
commit aef17ca1271948ee57cc39b2493d31110cc42625 upstream.

A user reports a really bad temperature on Ryzen 1950X.

k10temp-pci-00cb
Adapter: PCI adapter
temp1: +4294948.3°C (high = +70.0°C)

This will happen if the temperature reported by the chip is lower than
the offset temperature. This has been seen in the field if "Sense MI Skew"
and/or "Sense MI Offset" BIOS parameters were set to unexpected values.
Let's report a temperature of 0 degrees C in that case.

Fixes: 1b50b776355f ("hwmon: (k10temp) Add support for temperature offsets")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/hwmon/k10temp.c

index b960015cb073dd974c82f6bb5804024d9e94d9aa..144ff802306136925bba0f45f38a1237c53e7658 100644 (file)
@@ -128,7 +128,10 @@ static ssize_t temp1_input_show(struct device *dev,
 
        data->read_tempreg(data->pdev, &regval);
        temp = (regval >> 21) * 125;
-       temp -= data->temp_offset;
+       if (temp > data->temp_offset)
+               temp -= data->temp_offset;
+       else
+               temp = 0;
 
        return sprintf(buf, "%u\n", temp);
 }