diff --git a/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/dev/wi/if_wi.c b/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/dev/wi/if_wi.c index 6daa6be296..70dd6de65a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/dev/wi/if_wi.c +++ b/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/dev/wi/if_wi.c @@ -589,6 +589,18 @@ wi_intr(void *arg) WI_LOCK(sc); +#if !defined(__HAIKU__) + if (sc->wi_gone || !sc->sc_enabled || (ifp->if_flags & IFF_UP) == 0) { + CSR_WRITE_2(sc, WI_INT_EN, 0); + CSR_WRITE_2(sc, WI_EVENT_ACK, 0xFFFF); + WI_UNLOCK(sc); + return; + } + + /* Disable interrupts. */ + CSR_WRITE_2(sc, WI_INT_EN, 0); +#endif + status = CSR_READ_2(sc, WI_EVENT_STAT); if (status & WI_EV_RX) wi_rx_intr(sc); diff --git a/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/glue.c b/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/glue.c index 2c7815a2da..8fabf9c856 100644 --- a/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/wavelanwifi/glue.c @@ -38,8 +38,8 @@ HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev) return 0; } - /* Disable interrupts. */ CSR_WRITE_2(sc, WI_INT_EN, 0); + // Disable interrupts. return 1; }