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)
commit1ddc286731134ad52a74b6956d9bc2a4369219a8
tree8455c6c2db5d76d169bc652eb78b9c06c95b2fe8
parent4c468fe559f7910b1c6b10d3d223943fdd1b653c
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