• Johannes Berg's avatar
    mac80211: fix deadlock in driver-managed RX BA session start · bde59c47
    Johannes Berg authored
    When an RX BA session is started by the driver, and it has to tell
    mac80211 about it, the corresponding bit in tid_rx_manage_offl gets
    set and the BA session work is scheduled. Upon testing this bit, it
    will call __ieee80211_start_rx_ba_session(), thus deadlocking as it
    already holds the ampdu_mlme.mtx, which that acquires again.
    
    Fix this by adding ___ieee80211_start_rx_ba_session(), a version of
    the function that requires the mutex already held.
    
    Cc: stable@vger.kernel.org
    Fixes: 699cb58c ("mac80211: manage RX BA session offload without SKB queue")
    Reported-by: default avatarMatteo Croce <mcroce@redhat.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    bde59c47
ieee80211_i.h 68.3 KB