mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-21 09:42:09 +00:00
mac80211: clear vif private data in order to fix accidental reuse
Fixes potential issues when bringing an interface down and then up again Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
c7af99b973
commit
c640f7b937
@ -0,0 +1,29 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Wed, 3 Jul 2024 12:10:01 +0200
|
||||||
|
Subject: [PATCH] wifi: mac80211: clear vif drv_priv after calling
|
||||||
|
remove_interface
|
||||||
|
|
||||||
|
Avoid reusing stale driver data when an interface is brought down and up
|
||||||
|
again. In order to avoid having to duplicate the memset in every single
|
||||||
|
driver, do it here.
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/iface.c
|
||||||
|
+++ b/net/mac80211/iface.c
|
||||||
|
@@ -684,8 +684,12 @@ static void ieee80211_do_stop(struct iee
|
||||||
|
|
||||||
|
fallthrough;
|
||||||
|
default:
|
||||||
|
- if (going_down)
|
||||||
|
- drv_remove_interface(local, sdata);
|
||||||
|
+ if (!going_down)
|
||||||
|
+ break;
|
||||||
|
+ drv_remove_interface(local, sdata);
|
||||||
|
+
|
||||||
|
+ /* Clear private driver data to prevent reuse */
|
||||||
|
+ memset(sdata->vif.drv_priv, 0, local->hw.vif_data_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
ieee80211_recalc_ps(local);
|
@ -15,7 +15,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
|||||||
|
|
||||||
--- a/include/net/mac80211.h
|
--- a/include/net/mac80211.h
|
||||||
+++ b/include/net/mac80211.h
|
+++ b/include/net/mac80211.h
|
||||||
@@ -2032,8 +2032,8 @@ static inline bool lockdep_vif_mutex_hel
|
@@ -2037,8 +2037,8 @@ static inline bool lockdep_vif_mutex_hel
|
||||||
* @IEEE80211_KEY_FLAG_GENERATE_MMIC on the same key.
|
* @IEEE80211_KEY_FLAG_GENERATE_MMIC on the same key.
|
||||||
* @IEEE80211_KEY_FLAG_NO_AUTO_TX: Key needs explicit Tx activation.
|
* @IEEE80211_KEY_FLAG_NO_AUTO_TX: Key needs explicit Tx activation.
|
||||||
* @IEEE80211_KEY_FLAG_GENERATE_MMIE: This flag should be set by the driver
|
* @IEEE80211_KEY_FLAG_GENERATE_MMIE: This flag should be set by the driver
|
||||||
|
Loading…
x
Reference in New Issue
Block a user