diff options
author | attilio <attilio@FreeBSD.org> | 2011-09-19 10:58:30 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2011-09-19 10:58:30 +0000 |
commit | 17bc15383e6f758009e3c2953d7630bfd61c958f (patch) | |
tree | 25883e54cacc5ebcd2fb30fd8142d49fffb1be5c | |
parent | c186259e3181ae2f836aef914837c5abff6820fc (diff) | |
download | FreeBSD-src-17bc15383e6f758009e3c2953d7630bfd61c958f.zip FreeBSD-src-17bc15383e6f758009e3c2953d7630bfd61c958f.tar.gz |
#PROCHOT assertion is sticky after reading the MSR (accordingly with
Intel manuals) it must be cleared by writing a 0.
Fix that.
Sponsored by: Sandvine Incorporated
Reported by: rstone
Reviewed by: delphij, emaste, rstone
Approved by: re (kib)
MFC after: 1 week
-rw-r--r-- | sys/dev/coretemp/coretemp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/coretemp/coretemp.c b/sys/dev/coretemp/coretemp.c index cb1cbff..54e5a43 100644 --- a/sys/dev/coretemp/coretemp.c +++ b/sys/dev/coretemp/coretemp.c @@ -384,6 +384,7 @@ coretemp_get_val_sysctl(SYSCTL_HANDLER_ARGS) } if (msr & THERM_STATUS_LOG) { + coretemp_clear_thermal_msr(device_get_unit(dev)); sc->sc_throttle_log = 1; /* @@ -424,8 +425,10 @@ coretemp_throttle_log_sysctl(SYSCTL_HANDLER_ARGS) msr = coretemp_get_thermal_msr(device_get_unit(dev)); sc = device_get_softc(dev); - if (msr & THERM_STATUS_LOG) + if (msr & THERM_STATUS_LOG) { + coretemp_clear_thermal_msr(device_get_unit(dev)); sc->sc_throttle_log = 1; + } val = sc->sc_throttle_log; |