• Ivo van Doorn's avatar
    rt2x00: Move watchdog work to kernel work_queue · cdfd2c5c
    Ivo van Doorn authored
    The watchdog function must run on a work_queue
    which is independent of any other work inside rt2x00.
    
    The main reasons, being that a broken work on the mac80211
    work_queue can otherwise prevent the watchdog to run (while
    in fact the watchdog could fix the issue). And on the other
    hand because the watchdog relies on the completion of the
    completion handlers for RX/TX which for the USB case, occur
    on the mac80211 workqueue.
    
    This fixes some "Queue %d failed to flush" errors, which were
    caused by the watchdog function waiting on the completion
    handler which was scheduled to run right after the watchdog.
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Acked-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    cdfd2c5c
rt2x00.h 28.7 KB