From c006bb2735ec97a4ab0a56e944f9df9984fb7838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20G=C3=BCnther?= Date: Tue, 29 Dec 2009 23:46:42 +0000 Subject: [PATCH] * Using conditional compilation instead of simply deleting source code, to ensure interrupts are disabled only once per interrupt event. * Coding style cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34819 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../drivers/network/wlan/wavelanwifi/dev/wi/if_wi.c | 12 ++++++++++++ .../kernel/drivers/network/wlan/wavelanwifi/glue.c | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) 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; }