• Johannes Berg's avatar
    mac80211: fix aggregation timer lockups · 55687e38
    Johannes Berg authored
    As far as I can tell, there are possible lockups because both the RX
    session_timer and TX addba_resp_timer are del_timer_sync'ed under
    the sta spinlock which both timer functions take. Additionally, the
    TX agg code seems to leak memory when TX aggregation is not disabled
    before the sta_info is freed.
    
    Fix this by making the free code a little smarter in the RX agg case,
    and actually make the sta_info_destroy code free the TX agg info in
    the TX agg case. We won't notify the peer, but it'll notice something
    is wrong anyway, and normally this only happens after we've told it
    in some other way we will no longer talk to it.
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    55687e38
sta_info.c 22.9 KB