aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c15
-rw-r--r--drivers/net/wireless/ath/ath5k/base.h1
2 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 3f59bc2d7912..92327423325f 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -2705,7 +2705,20 @@ ath5k_intr(int irq, void *dev_id)
2705 */ 2705 */
2706 tasklet_schedule(&sc->restq); 2706 tasklet_schedule(&sc->restq);
2707 } else if (unlikely(status & AR5K_INT_RXORN)) { 2707 } else if (unlikely(status & AR5K_INT_RXORN)) {
2708 tasklet_schedule(&sc->restq); 2708 /*
2709 * Receive buffers are full. Either the bus is busy or
2710 * the CPU is not fast enough to process all received
2711 * frames.
2712 * Older chipsets need a reset to come out of this
2713 * condition, but we treat it as RX for newer chips.
2714 * We don't know exactly which versions need a reset -
2715 * this guess is copied from the HAL.
2716 */
2717 sc->stats.rxorn_intr++;
2718 if (ah->ah_mac_srev < AR5K_SREV_AR5212)
2719 tasklet_schedule(&sc->restq);
2720 else
2721 tasklet_schedule(&sc->rxtq);
2709 } else { 2722 } else {
2710 if (status & AR5K_INT_SWBA) { 2723 if (status & AR5K_INT_SWBA) {
2711 tasklet_hi_schedule(&sc->beacontq); 2724 tasklet_hi_schedule(&sc->beacontq);
diff --git a/drivers/net/wireless/ath/ath5k/base.h b/drivers/net/wireless/ath/ath5k/base.h
index 53a5651c57a2..56221bc7c8cd 100644
--- a/drivers/net/wireless/ath/ath5k/base.h
+++ b/drivers/net/wireless/ath/ath5k/base.h
@@ -135,6 +135,7 @@ struct ath5k_statistics {
135 unsigned int beacons; 135 unsigned int beacons;
136 136
137 unsigned int mib_intr; 137 unsigned int mib_intr;
138 unsigned int rxorn_intr;
138}; 139};
139 140
140#if CHAN_DEBUG 141#if CHAN_DEBUG