aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch57
1 files changed, 0 insertions, 57 deletions
diff --git a/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch b/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
deleted file mode 100644
index ce9776c112..0000000000
--- a/package/kernel/mac80211/patches/subsys/370-mac80211-pause-TX-while-changing-interface-type.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From b26b5e0861578fa7cdf444b1aa61d06f739eb306 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Fri, 22 Jan 2021 17:11:16 +0100
-Subject: [PATCH] mac80211: pause TX while changing interface type
-
-[ Upstream commit 054c9939b4800a91475d8d89905827bf9e1ad97a ]
-
-syzbot reported a crash that happened when changing the interface
-type around a lot, and while it might have been easy to fix just
-the symptom there, a little deeper investigation found that really
-the reason is that we allowed packets to be transmitted while in
-the middle of changing the interface type.
-
-Disallow TX by stopping the queues while changing the type.
-
-Fixes: 34d4bc4d41d2 ("mac80211: support runtime interface type changes")
-Reported-by: syzbot+d7a3b15976bf7de2238a@syzkaller.appspotmail.com
-Link: https://lore.kernel.org/r/20210122171115.b321f98f4d4f.I6997841933c17b093535c31d29355be3c0c39628@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/mac80211/ieee80211_i.h | 1 +
- net/mac80211/iface.c | 6 ++++++
- 2 files changed, 7 insertions(+)
-
---- a/net/mac80211/ieee80211_i.h
-+++ b/net/mac80211/ieee80211_i.h
-@@ -1057,6 +1057,7 @@ enum queue_stop_reason {
- IEEE80211_QUEUE_STOP_REASON_FLUSH,
- IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN,
- IEEE80211_QUEUE_STOP_REASON_RESERVE_TID,
-+ IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE,
-
- IEEE80211_QUEUE_STOP_REASONS,
- };
---- a/net/mac80211/iface.c
-+++ b/net/mac80211/iface.c
-@@ -1621,6 +1621,10 @@ static int ieee80211_runtime_change_ifty
- if (ret)
- return ret;
-
-+ ieee80211_stop_vif_queues(local, sdata,
-+ IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE);
-+ synchronize_net();
-+
- ieee80211_do_stop(sdata, false);
-
- ieee80211_teardown_sdata(sdata);
-@@ -1641,6 +1645,8 @@ static int ieee80211_runtime_change_ifty
- err = ieee80211_do_open(&sdata->wdev, false);
- WARN(err, "type change: do_open returned %d", err);
-
-+ ieee80211_wake_vif_queues(local, sdata,
-+ IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE);
- return ret;
- }
-