wl12xx: reset link Tx queues when freeing it
authorArik Nemtsov <arik@wizery.com>
Mon, 27 Feb 2012 22:41:30 +0000 (00:41 +0200)
committerLuciano Coelho <coelho@ti.com>
Tue, 28 Feb 2012 11:24:45 +0000 (13:24 +0200)
commit6246ca003f2560e30b9696757efc271284b809f6
tree6a628af4152b5802f2f1c936a804e4defbba2653
parent0b0e32b792b4077c113ae70d6de12b5f301e0882
wl12xx: reset link Tx queues when freeing it

Before, the link was first freed (invalidating it in the map), and later
on vif removal, all valid wlvif-related links were reset. Since these
links were already invalid, we failed to reset them.
The bug was made worse by op_stop, which set the tx_queue_count to 0
arbitrarily. This resulted in a negative tx_queue_count in some scenarios.

Fix this by resetting the Tx-queues of a link when freeing it. Add a
WARN_ON and reset all link Tx-queues in op_stop, to avoid a negative
tx_queue_count.

[changed WARN_ON to WARN_ON_ONCE -- Luca]

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/cmd.c
drivers/net/wireless/wl12xx/main.c
drivers/net/wireless/wl12xx/tx.c