• Ivo van Doorn's avatar
    rt2x00: Move USB tx/rx done handling to workqueue · 7e613e16
    Ivo van Doorn authored
    Move all TX and RX completion handling into a work structure,
    which is handeled on the mac80211 workqueue. This simplifies
    the code in rt2x00lib since it no longer needs to check if the
    device is USB or PCI to decide which mac80211 function should be used.
    
    In the watchdog some changes are needed since it can no longer rely
    on the TX completion function to be run while looping through the
    entries. (Both functions now work on the same workqueue, so this
    would deadlock). So the watchdog now waits for the URB to return,
    and handle the TX status report directly.
    
    As a side-effect, the debugfs entry for the RX queue now correctly
    displays the positions of the INDEX and INDEX_DONE counters. This
    also implies that it is not possible to perform checks like queue_empty()
    and queue_full() on the RX queue.
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    7e613e16
rt2x00dev.c 26.6 KB