• Daniel Drake's avatar
    [PATCH] softmac: make non-operational after being stopped · d57336e3
    Daniel Drake authored
    zd1211 with softmac and wpa_supplicant revealed an issue with softmac
    and the use of workqueues. Some of the work functions actually
    reschedule themselves, so this meant that there could still be
    pending work after flush_scheduled_work() had been called during
    ieee80211softmac_stop().
    
    This patch introduces a "running" flag which is used to ensure that
    rescheduling does not happen in this situation.
    
    I also used this flag to ensure that softmac's hooks into ieee80211 are
    non-operational once the stop operation has been started. This simply
    makes softmac a little more robust, because I could crash it easily
    by receiving frames in the short timeframe after shutting down softmac
    and before turning off the ZD1211 radio. (ZD1211 is now fixed as well!)
    Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
    Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    d57336e3
ieee80211softmac_assoc.c 14.2 KB