rt2x00: Fix TX failure path
authorIvo van Doorn <ivdoorn@gmail.com>
Tue, 11 Nov 2008 23:01:37 +0000 (00:01 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 25 Nov 2008 21:32:54 +0000 (16:32 -0500)
commit0e3de99846489424c2cba952e0a52c269f01009a
tree2af7bc7b61f28e9defae8b5886a959060affb357
parent0f829b1d6f499447052f98098e41fd6a091eadd0
rt2x00: Fix TX failure path

The callback function write_tx_data() can only fail
when our ENTRY_OWNER_DEVICE_DATA flag on a queue entry
failed to determine the entry was not available and
it is in fact still owned by the hardware.
This means that if that function fails the queue
must be stopped in mac80211.

When rt2x00queue_get_queue() returns NULL in the TX
path, it means mac80211 has passed us an invalid queue,
although this should be impossible, it shouldn't hurt
if we send mac80211 a signal to stop the queue either.

Both issues can simply be resolved by removing their
manual failure handler and making them use the failure path
provided in rt2x00mac_tx().

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00mac.c
drivers/net/wireless/rt2x00/rt2x00queue.c