summaryrefslogtreecommitdiff
path: root/sys/dev/coretemp
diff options
context:
space:
mode:
authorRui Paulo <rpaulo@FreeBSD.org>2008-02-14 14:14:59 +0000
committerRui Paulo <rpaulo@FreeBSD.org>2008-02-14 14:14:59 +0000
commit18d69021611d63fc25a7ef1c8a6252a562232e76 (patch)
tree93c239d9d3564ccb88c93cb7f22efa40a8b170e7 /sys/dev/coretemp
parent3365b45e5e83d6fff877b5c312db429edbe9a091 (diff)
Notes
Diffstat (limited to 'sys/dev/coretemp')
-rw-r--r--sys/dev/coretemp/coretemp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/coretemp/coretemp.c b/sys/dev/coretemp/coretemp.c
index ceaa41d12005..7bb7b636463f 100644
--- a/sys/dev/coretemp/coretemp.c
+++ b/sys/dev/coretemp/coretemp.c
@@ -143,6 +143,15 @@ coretemp_attach(device_t dev)
cpu_model += ((cpu_id >> 16) & 0xf) << 4;
cpu_mask = cpu_id & 15;
+ /*
+ * Some CPUs, namely the PIII, don't have thermal sensors, but
+ * report them when the CPUID check is performed in
+ * coretemp_identify(). This leads to a later GPF when the sensor
+ * is queried via a MSR, so we stop here.
+ */
+ if (cpu_model < 0xe)
+ return (ENXIO);
+
#if 0 /*
* XXXrpaulo: I have this CPU model and when it returns from C3
* coretemp continues to function properly.