]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: Postpond ps timer if tx is stopped by others
authorRajkumar Manoharan <rmanoharan@atheros.com>
Tue, 3 May 2011 11:33:59 +0000 (17:03 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 May 2011 18:59:07 +0000 (14:59 -0400)
commit7170c110ab3164b27de59d3c7edecc9311532b9e
tree8455c6c2db5d76d169bc652eb78b9c06c95b2fe8
parent25b8ce0fa1b7a4b2ecc98652d56b2277d34598bd
mac80211: Postpond ps timer if tx is stopped by others

Whenever the driver's queue depth reaches the max, the queues are
stopped by the driver till the driver can accept the frames.
At the mean time dynamic_ps_timer can be expired due to not
receiving packet from upper layer which could restart the transmission
at the end of ps work. Due to the mismatch with driver state,
mac80211 is unneccesarity buffering all the frames till the driver
wakes up the queue.

Check whether there is no transmit or the tx queues were stopped by some
reasons. If any of the queue was stopped, the postpond ps timer and
do not restart netif_tx.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mlme.c