]> git.baikalelectronics.ru Git - kernel.git/commit
mwifiex: restart rxreorder timer correctly
authorMarc Yang <yangyang@marvell.com>
Wed, 29 Oct 2014 17:14:34 +0000 (22:44 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 30 Oct 2014 19:00:22 +0000 (15:00 -0400)
commit33d713f5699b7b5cff39fd30b8307fdd4917dbf0
tree76101a7f096d9fdd1fff695011f29e8f6106f537
parentc31b1b4dffee77a9506572a4bbffe6605560d6c6
mwifiex: restart rxreorder timer correctly

During 11n RX reordering, if there is a hole in RX table,
driver will not send packets to kernel until the rxreorder
timer expires or the table is full.
However, currently driver always restarts rxreorder timer when
receiving a packet, which causes the timer hardly to expire.
So while connected with to 11n AP in a busy environment,
ping packets may get blocked for about 30 seconds.

This patch fixes this timer restarting by ensuring rxreorder timer
would only be restarted either timer is not set or start_win
has changed.

Signed-off-by: Chin-Ran Lo <crlo@marvell.com>
Signed-off-by: Plus Chen <pchen@marvell.com>
Signed-off-by: Marc Yang <yangyang@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/11n_rxreorder.c
drivers/net/wireless/mwifiex/11n_rxreorder.h
drivers/net/wireless/mwifiex/main.h