diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2013-07-02 18:37:48 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2013-07-02 18:37:48 +0000 |
commit | 04406384e729c5f832184829ff1a11a2209df6da (patch) | |
tree | f0718c186fcf70d3afaff0ff4445c725f8acc319 /sys/dev | |
parent | 3f214cd8d72629bace8d5e150759717cc04763f3 (diff) |
If after processing an SCI event the SCI_EVT is no longer sent, we're done
and shouldn't do another SCI query. Such a spurious SCI query blocks on
certain HP laptops, which in turn blocks the acpi thread.
tested by many
ok mlarkin@
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/acpi/acpiec.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/acpi/acpiec.c b/sys/dev/acpi/acpiec.c index 52ff105ee8f..2b22265dd54 100644 --- a/sys/dev/acpi/acpiec.c +++ b/sys/dev/acpi/acpiec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpiec.c,v 1.47 2013/01/18 06:02:51 pirofti Exp $ */ +/* $OpenBSD: acpiec.c,v 1.48 2013/07/02 18:37:47 kettenis Exp $ */ /* * Copyright (c) 2006 Can Erkin Acar <canacar@openbsd.org> * @@ -343,6 +343,8 @@ acpiec_gpehandler(struct acpi_softc *acpi_sc, int gpe, void *arg) if (stat & EC_STAT_SCI_EVT) sc->sc_gotsci = 1; + else + sc->sc_gotsci = 0; } while (sc->sc_gotsci); /* Unmask the GPE which was blocked at interrupt time */ |