Rajkumar Manoharan <rmanohar@xxxxxxxxxxxxxx> writes: >>> diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h >>> index b1b0fd6a2e21..ddc2c882c91c 100644 >>> --- a/net/mac80211/sta_info.h >>> +++ b/net/mac80211/sta_info.h >>> @@ -135,6 +135,7 @@ struct airtime_info { >>> u64 rx_airtime; >>> u64 tx_airtime; >>> s64 deficit; >>> + s32 budget; >> >> Why signed? This should never become negative unless something is wrong >> with the accounting somewhere? >> >> Related, are we sure there are no "leaks", i.e., packets that increase >> the budget on dequeue, but are never tx_completed? > > Just to avoid wraparound issue. Yeah... Irrespective of signedness if > there is mismatch in tx and tx-compl, it may stall tx. no? I was > worrying what if the driver is freeing skb silently instead of > free_txskb(). > > Will change it to unsigned and add WARN_ON statement upon adjustment. > is it OK? Just note that WARN_ON() is pretty dangerous, especially on data path, as it can kill the host with excessive spamming. WARN_ON_ONCE() or a ratelimited printk() variant are much safer choises. -- Kalle Valo