diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-07-07 22:21:34 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-07-07 22:21:34 +0100 |
commit | fa6868508a0102b150ca03d976e3a1c234e4e387 (patch) | |
tree | 2b252f262695544e5caeb2bd983f8cac5158a8f6 /net/mac80211/tx.c | |
parent | 5b2353859f87748f0707cec57c3953022a3321f3 (diff) | |
parent | 4ed47896935573c8423d05bddda3f269d6e6c613 (diff) | |
download | kernel_samsung_tuna-fa6868508a0102b150ca03d976e3a1c234e4e387.zip kernel_samsung_tuna-fa6868508a0102b150ca03d976e3a1c234e4e387.tar.gz kernel_samsung_tuna-fa6868508a0102b150ca03d976e3a1c234e4e387.tar.bz2 |
Merge branch 'machtypes' into orion
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 28d8bd5..c80d589 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1132,7 +1132,7 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb, ieee80211_tx_handler *handler; struct ieee80211_tx_data tx; ieee80211_tx_result res = TX_DROP, res_prepare; - int ret, i; + int ret, i, retries = 0; WARN_ON(__ieee80211_queue_pending(local, control->queue)); @@ -1216,6 +1216,13 @@ retry: if (!__ieee80211_queue_stopped(local, control->queue)) { clear_bit(IEEE80211_LINK_STATE_PENDING, &local->state[control->queue]); + retries++; + /* + * Driver bug, it's rejecting packets but + * not stopping queues. + */ + if (WARN_ON_ONCE(retries > 5)) + goto drop; goto retry; } memcpy(&store->control, control, |