diff options
author | sam <sam@FreeBSD.org> | 2004-04-02 23:49:15 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2004-04-02 23:49:15 +0000 |
commit | 055dd66470d456f82466bb43813e141009d15f82 (patch) | |
tree | 86d881f4b9e3b44f2449cb019db996bd4939219d /sys/dev/ath | |
parent | 17ec9b5d0701f31e4ce2ce8dd39a94cc05834342 (diff) | |
download | FreeBSD-src-055dd66470d456f82466bb43813e141009d15f82.zip FreeBSD-src-055dd66470d456f82466bb43813e141009d15f82.tar.gz |
check more quickly (and directly) if an interrupt is pending; this reduces
work done in ath_intr when the irq is shared
Obtained from: madwifi
Diffstat (limited to 'sys/dev/ath')
-rw-r--r-- | sys/dev/ath/if_ath.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 8f2cc85..1fa4dce 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -434,6 +434,8 @@ ath_intr(void *arg) DPRINTF(ATH_DEBUG_ANY, ("%s: invalid; ignored\n", __func__)); return; } + if (!ath_hal_intrpend(ah)) /* shared irq, not for us */ + return; if ((ifp->if_flags & (IFF_RUNNING|IFF_UP)) != (IFF_RUNNING|IFF_UP)) { DPRINTF(ATH_DEBUG_ANY, ("%s: if_flags 0x%x\n", __func__, ifp->if_flags)); |