summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2010-06-15 18:51:41 +0000
committerjhb <jhb@FreeBSD.org>2010-06-15 18:51:41 +0000
commit3e2692fd422754febd92a4d1613d4c2d454b8adc (patch)
treed79d22ca750365c31e1642d7bfb41c3704ee18a3 /sys/i386
parentc907b418fb8aa37b08afb920eb5d944466e1e0f6 (diff)
downloadFreeBSD-src-3e2692fd422754febd92a4d1613d4c2d454b8adc.zip
FreeBSD-src-3e2692fd422754febd92a4d1613d4c2d454b8adc.tar.gz
Restore the machine check register banks on resume. For banks being
monitored via CMCI, reset the interrupt threshold to 1 on resume. Reviewed by: jkim MFC after: 2 weeks
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/acpica/acpi_wakeup.c2
-rw-r--r--sys/i386/include/mca.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/sys/i386/acpica/acpi_wakeup.c b/sys/i386/acpica/acpi_wakeup.c
index af8d4b2..60bc31f 100644
--- a/sys/i386/acpica/acpi_wakeup.c
+++ b/sys/i386/acpica/acpi_wakeup.c
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <machine/bus.h>
#include <machine/cpufunc.h>
#include <machine/intr_machdep.h>
+#include <machine/mca.h>
#include <machine/segments.h>
#include <contrib/dev/acpica/include/acpi.h>
@@ -272,6 +273,7 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state)
for (;;) ;
} else {
/* Execute Wakeup */
+ mca_resume();
intr_resume();
if (bootverbose) {
diff --git a/sys/i386/include/mca.h b/sys/i386/include/mca.h
index 951750f..dd6e69c 100644
--- a/sys/i386/include/mca.h
+++ b/sys/i386/include/mca.h
@@ -49,6 +49,7 @@ struct mca_record {
void cmc_intr(void);
void mca_init(void);
int mca_intr(void);
+void mca_resume(void);
#endif
OpenPOWER on IntegriCloud