https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268393

--- Comment #57 from John Grafton <john.graf...@runbox.com> ---
(In reply to Warner Losh from comment #54)
You mean like this?

diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index 79ab71516cd9..78c99db8e813 100644
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -393,13 +393,13 @@ hdac_intr_handler(void *context)
         * re-examine GIS then we can leave it set and never get an interrupt
         * again.
         */
-       hdac_lock(sc);
        intsts = HDAC_READ_4(&sc->mem, HDAC_INTSTS);
        while (intsts != 0xffffffff && (intsts & HDAC_INTSTS_GIS) != 0) {
+               hdac_lock(sc);
                hdac_one_intr(sc, intsts);
+               hdac_unlock(sc);
                intsts = HDAC_READ_4(&sc->mem, HDAC_INTSTS);
        }
-       hdac_unlock(sc);
 }

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to