enable qwx(4) ext irqs earlier for suspend/resume
authorstsp <stsp@openbsd.org>
Sat, 17 Aug 2024 08:12:46 +0000 (08:12 +0000)
committerstsp <stsp@openbsd.org>
Sat, 17 Aug 2024 08:12:46 +0000 (08:12 +0000)
Enable ext IRQs like the Linux driver does it, not later. I did this
differently due to problems in early development that have since
been fixed.

Fixes an interrupt storm during resume which prevents things like
key installation from working, leaving the network link dead.

sys/dev/ic/qwx.c

index ab17d9e..fe079d4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: qwx.c,v 1.63 2024/06/11 10:06:35 stsp Exp $   */
+/*     $OpenBSD: qwx.c,v 1.64 2024/08/17 08:12:46 stsp Exp $   */
 
 /*
  * Copyright 2023 Stefan Sperling <stsp@openbsd.org>
@@ -19836,10 +19836,7 @@ qwx_core_qmi_firmware_ready(struct qwx_softc *sc)
                goto err_core_stop;
        }
 
-#if 0 /* TODO: Is this in the right spot for OpenBSD? */
        sc->ops.irq_enable(sc);
-#endif
-
 #if 0
        mutex_unlock(&ab->core_lock);
 #endif
@@ -25390,9 +25387,6 @@ qwx_run(struct qwx_softc *sc)
                return ret;
        }
 
-       /* Enable "ext" IRQs for datapath. */
-       sc->ops.irq_enable(sc);
-
        return 0;
 }