Johannes Berg
bde59c475e
mac80211: fix deadlock in driver-managed RX BA session start
...
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: 699cb58c8a52 ("mac80211: manage RX BA session offload without SKB queue")
Reported-by: Matteo Croce <mcroce@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2017-09-06 15:22:02 +02:00
..
2016-10-17 16:14:04 +02:00
2016-10-17 16:14:04 +02:00
2017-02-08 09:19:33 +01:00
2017-02-08 09:19:33 +01:00
2016-10-17 16:14:04 +02:00
2016-10-17 16:14:04 +02:00
2016-10-17 16:14:04 +02:00
2016-10-17 16:14:04 +02:00
2017-09-06 15:22:02 +02:00
2017-09-05 16:25:07 +02:00
2017-06-16 11:48:39 -04:00
2017-01-17 15:19:37 -05:00
2014-11-04 13:18:21 +01:00
2016-02-24 09:04:38 +01:00
2017-06-16 11:48:35 -04:00
2014-04-09 14:49:43 +02:00
2017-05-17 16:03:40 +02:00
2017-02-08 10:05:07 +01:00
2014-04-09 14:49:43 +02:00
2016-09-30 13:45:44 +02:00
2016-09-30 13:45:44 +02:00
2015-10-21 10:08:22 +02:00
2017-02-10 14:31:51 -05:00
2016-10-27 16:03:25 +02:00
2017-09-06 15:22:02 +02:00
2017-06-16 11:48:37 -04:00
2017-09-06 15:22:02 +02:00
2017-09-05 11:28:51 +02:00
2017-02-08 09:19:17 +01:00
2016-12-13 15:57:59 +01:00
2017-02-08 09:19:33 +01:00
2015-05-11 19:16:04 +02:00
2015-05-05 14:21:56 +02:00
2017-04-26 23:17:44 +02:00
2016-12-16 00:13:43 +02:00
2017-06-16 11:48:35 -04:00
2017-03-16 10:54:04 +01:00
2017-06-16 11:48:35 -04:00
2017-06-16 11:48:39 -04:00
2016-12-13 16:22:27 +01:00
2017-06-16 11:48:39 -04:00
2016-12-13 16:22:27 +01:00
2014-04-09 14:49:43 +02:00
2017-09-05 09:04:20 +02:00
2016-04-06 13:18:15 +02:00
2017-09-05 16:25:07 +02:00
2017-04-28 14:51:43 +02:00
2017-05-17 16:03:40 +02:00
2017-04-28 10:57:33 +02:00
2016-12-15 11:07:52 +01:00
2016-12-15 11:07:52 +01:00
2017-04-28 10:57:33 +02:00
2016-12-15 11:07:52 +01:00
2017-04-28 10:57:33 +02:00
2016-12-15 11:07:53 +01:00
2017-06-16 11:48:40 -04:00
2017-04-28 14:51:43 +02:00
2017-06-16 11:48:35 -04:00
2017-06-16 11:48:39 -04:00
2017-06-08 14:16:29 +02:00
2017-06-16 11:48:40 -04:00
2017-06-20 13:30:15 -04:00
2016-02-24 09:04:38 +01:00
2016-02-24 09:04:38 +01:00
2015-04-07 12:32:09 -04:00
2015-04-07 12:32:09 -04:00
2017-06-13 11:06:39 +02:00
2017-09-05 11:28:43 +02:00
2017-09-05 11:28:51 +02:00
2017-01-17 15:19:37 -05:00
2017-01-12 10:15:18 +01:00
2016-10-12 14:17:13 +02:00
2014-10-22 10:42:09 +02:00
2017-06-16 11:48:39 -04:00
2015-01-27 11:10:13 +01:00