X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fkernel%2Fmac80211%2Fpatches%2Fsubsys%2F001-wifi-mac80211-do-not-pass-ap_vlan-vif-pointer-to-dri.patch;fp=package%2Fkernel%2Fmac80211%2Fpatches%2Fsubsys%2F001-wifi-mac80211-do-not-pass-ap_vlan-vif-pointer-to-dri.patch;h=0000000000000000000000000000000000000000;hb=fb45887e85ca42c95f80fb9a3147d98b3edc7724;hp=43724aee1aeb847ba1a2ed3d10f5c87c5556db5f;hpb=4883e4c04f13b3d7d37a379180583a3b48031aa9;p=openwrt%2Fopenwrt.git diff --git a/package/kernel/mac80211/patches/subsys/001-wifi-mac80211-do-not-pass-ap_vlan-vif-pointer-to-dri.patch b/package/kernel/mac80211/patches/subsys/001-wifi-mac80211-do-not-pass-ap_vlan-vif-pointer-to-dri.patch deleted file mode 100644 index 43724aee1a..0000000000 --- a/package/kernel/mac80211/patches/subsys/001-wifi-mac80211-do-not-pass-ap_vlan-vif-pointer-to-dri.patch +++ /dev/null @@ -1,64 +0,0 @@ -From ee0db868ee4d88493dfdc82f59e3b4e449ddddd5 Mon Sep 17 00:00:00 2001 -From: Oldřich Jedlička -Date: Sat, 4 Nov 2023 15:13:33 +0100 -Subject: wifi: mac80211: do not pass AP_VLAN vif pointer to drivers during - flush -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -[ Upstream commit 3e3a2b645c043f7e3e488d5011478cefb69bbe8b ] - -This fixes WARN_ONs when using AP_VLANs after station removal. The flush -call passed AP_VLAN vif to driver, but because these vifs are virtual and -not registered with drivers, we need to translate to the correct AP vif -first. - -Closes: https://github.com/openwrt/openwrt/issues/12420 -Fixes: 0b75a1b1e42e ("wifi: mac80211: flush queues on STA removal") -Fixes: d00800a289c9 ("wifi: mac80211: add flush_sta method") -Tested-by: Konstantin Demin -Tested-by: Koen Vandeputte -Signed-off-by: Oldřich Jedlička -Link: https://lore.kernel.org/r/20231104141333.3710-1-oldium.pro@gmail.com -Signed-off-by: Johannes Berg -Signed-off-by: Sasha Levin ---- - net/mac80211/driver-ops.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/net/mac80211/driver-ops.h -+++ b/net/mac80211/driver-ops.h -@@ -23,7 +23,7 @@ - static inline struct ieee80211_sub_if_data * - get_bss_sdata(struct ieee80211_sub_if_data *sdata) - { -- if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) -+ if (sdata && sdata->vif.type == NL80211_IFTYPE_AP_VLAN) - sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, - u.ap); - -@@ -638,10 +638,13 @@ static inline void drv_flush(struct ieee - struct ieee80211_sub_if_data *sdata, - u32 queues, bool drop) - { -- struct ieee80211_vif *vif = sdata ? &sdata->vif : NULL; -+ struct ieee80211_vif *vif; - - might_sleep(); - -+ sdata = get_bss_sdata(sdata); -+ vif = sdata ? &sdata->vif : NULL; -+ - if (sdata && !check_sdata_in_driver(sdata)) - return; - -@@ -657,6 +660,8 @@ static inline void drv_flush_sta(struct - { - might_sleep(); - -+ sdata = get_bss_sdata(sdata); -+ - if (sdata && !check_sdata_in_driver(sdata)) - return; -