summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2008-01-21 12:43:09 +0000
committerjsg <jsg@openbsd.org>2008-01-21 12:43:09 +0000
commit7c8f9c3d51ab6eab959a6ee126ebe466a0b3022f (patch)
tree0feb6b859fb938b7a5e40a5662f1c5c5c21e6d0b
parentFix boot time interrupt storm on mec(4) by disabling DMA when stopping the (diff)
downloadwireguard-openbsd-7c8f9c3d51ab6eab959a6ee126ebe466a0b3022f.tar.xz
wireguard-openbsd-7c8f9c3d51ab6eab959a6ee126ebe466a0b3022f.zip
Check against RESET_REG_SUP in FADT before doing the acpi reset dance
after all, not doing so appears to break more machines than it fixes. ok marco@
-rw-r--r--sys/dev/acpi/acpi.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/acpi/acpi.c b/sys/dev/acpi/acpi.c
index fcab2fefb15..a81dbbc553e 100644
--- a/sys/dev/acpi/acpi.c
+++ b/sys/dev/acpi/acpi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi.c,v 1.112 2008/01/05 18:26:30 kettenis Exp $ */
+/* $OpenBSD: acpi.c,v 1.113 2008/01/21 12:43:09 jsg Exp $ */
/*
* Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
* Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@@ -1195,8 +1195,12 @@ acpi_reset(void)
fadt = acpi_softc->sc_fadt;
- /* FADT_RESET_REG_SUP is not properly set in some implementations */
- if (acpi_softc->sc_revision <= 1 || fadt->reset_reg.address == 0)
+ /*
+ * RESET_REG_SUP is not properly set in some implementations,
+ * but not testing against it breaks more machines than it fixes
+ */
+ if (acpi_softc->sc_revision <= 1 ||
+ !(fadt->flags & FADT_RESET_REG_SUP) || fadt->reset_reg.address == 0)
return;
value = fadt->reset_value;