diff options
author | Johannes Berg <johannes.berg@intel.com> | 2021-01-22 17:11:16 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2021-01-26 11:59:45 +0100 |
commit | 054c9939b4800a91475d8d89905827bf9e1ad97a (patch) | |
tree | 09a0f558ca3b93667315e19b45582a8f94b3f816 /net/mac80211/ieee80211_i.h | |
parent | wext: fix NULL-ptr-dereference with cfg80211's lack of commit() (diff) | |
download | linux-054c9939b4800a91475d8d89905827bf9e1ad97a.tar.xz linux-054c9939b4800a91475d8d89905827bf9e1ad97a.zip |
mac80211: pause TX while changing interface type
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>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 8bf9c0e974d6..8e281c2e644d 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -1078,6 +1078,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, }; |