⬢ DragonFlyBSD Kernel Audit
DF-4780 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/powermng/corecstat/corecstat.c
+++ b/sys/dev/powermng/corecstat/corecstat.c
@@ -356,11 +356,14 @@ corecstat_attach(device_t dev)
 		sensordev_install(sc->sc_sensordev);
 	} else if (sc->sc_is_atom && sc->sc_version == 0) {
 		return (ENXIO);
 	}
 
-	if (sc->sc_is_atom)
-		corecstat_init_atom_cpu(sc, cpu);
-	else
+	if (sc->sc_is_atom) {
+		/* Old Atoms (version 0) have no Core C-state counters. */
+		if (sc->sc_version != 0)
+			corecstat_init_atom_cpu(sc, cpu);
+	} else {
 		corecstat_init_core_cpu(sc, cpu);
+	}
 
 	sc->sc_senstask = sensor_task_register2(sc, corecstat_refresh, 1,
 	    device_get_unit(dev));