⬢ DragonFlyBSD Kernel Audit
DF-5031 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/powermng/it/it.c
+++ b/sys/dev/powermng/it/it.c
@@ -255,9 +255,10 @@ void
 it_generic_stemp(struct it_softc *sc, struct ksensor *sensors)
 {
 	int i, sdata;
 
 	for (i = 0; i < 3; i++) {
-		sdata = it_readreg(sc, ITD_SENSORTEMPBASE + i);
-		/* Convert temperature to Fahrenheit degres */
+		/* temperature registers are signed two's complement, degC */
+		sdata = (int8_t)it_readreg(sc, ITD_SENSORTEMPBASE + i);
+		/* Convert temperature to micro-Kelvin */
 		sensors[i].value = sdata * 1000000 + 273150000;
 	}
 }