mac80211: further optimise buffer expiry timer
Juuso optimised the timer to not run all the
time in commit 3393a608c4
.
However, after that it will still run once
more even if all frames just expired. Fixing
that also makes the function return value a
little clearer in the process.
Also, while at it, change the return value
to bool (instead of int).
Cc: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
0eff8fcd29
commit
cd0b8d89c7
@ -691,14 +691,13 @@ void sta_info_clear_tim_bit(struct sta_info *sta)
|
||||
spin_unlock_irqrestore(&sta->local->sta_lock, flags);
|
||||
}
|
||||
|
||||
static int sta_info_buffer_expired(struct sta_info *sta,
|
||||
struct sk_buff *skb)
|
||||
static bool sta_info_buffer_expired(struct sta_info *sta, struct sk_buff *skb)
|
||||
{
|
||||
struct ieee80211_tx_info *info;
|
||||
int timeout;
|
||||
|
||||
if (!skb)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
|
||||
@ -718,9 +717,6 @@ static bool sta_info_cleanup_expire_buffered(struct ieee80211_local *local,
|
||||
unsigned long flags;
|
||||
struct sk_buff *skb;
|
||||
|
||||
if (skb_queue_empty(&sta->ps_tx_buf))
|
||||
return false;
|
||||
|
||||
for (;;) {
|
||||
spin_lock_irqsave(&sta->ps_tx_buf.lock, flags);
|
||||
skb = skb_peek(&sta->ps_tx_buf);
|
||||
@ -745,7 +741,7 @@ static bool sta_info_cleanup_expire_buffered(struct ieee80211_local *local,
|
||||
sta_info_clear_tim_bit(sta);
|
||||
}
|
||||
|
||||
return true;
|
||||
return !skb_queue_empty(&sta->ps_tx_buf);
|
||||
}
|
||||
|
||||
static int __must_check __sta_info_destroy(struct sta_info *sta)
|
||||
|
Loading…
Reference in New Issue
Block a user