diff options
Diffstat (limited to 'net/mac80211/tx.c')
| -rw-r--r-- | net/mac80211/tx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index cbe53ed4fb0b..cfc473e1b050 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
| @@ -1991,6 +1991,7 @@ static bool ieee80211_tx_pending_skb(struct ieee80211_local *local, | |||
| 1991 | void ieee80211_tx_pending(unsigned long data) | 1991 | void ieee80211_tx_pending(unsigned long data) |
| 1992 | { | 1992 | { |
| 1993 | struct ieee80211_local *local = (struct ieee80211_local *)data; | 1993 | struct ieee80211_local *local = (struct ieee80211_local *)data; |
| 1994 | struct ieee80211_sub_if_data *sdata; | ||
| 1994 | unsigned long flags; | 1995 | unsigned long flags; |
| 1995 | int i; | 1996 | int i; |
| 1996 | bool txok; | 1997 | bool txok; |
| @@ -2029,6 +2030,11 @@ void ieee80211_tx_pending(unsigned long data) | |||
| 2029 | if (!txok) | 2030 | if (!txok) |
| 2030 | break; | 2031 | break; |
| 2031 | } | 2032 | } |
| 2033 | |||
| 2034 | if (skb_queue_empty(&local->pending[i])) | ||
| 2035 | list_for_each_entry_rcu(sdata, &local->interfaces, list) | ||
| 2036 | netif_tx_wake_queue( | ||
| 2037 | netdev_get_tx_queue(sdata->dev, i)); | ||
| 2032 | } | 2038 | } |
| 2033 | spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); | 2039 | spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); |
| 2034 | 2040 | ||
