From cf275081660642ebfc9aaef0722ac499922fb17b Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Tue, 6 Feb 2024 15:03:49 +0800
Subject: [PATCH 49/61] mtk: mac80211: remove links when removing AP_VLAN
 interface

Remove links information when removing AP_VLAN interface.
Without this patch, there would be a kernel crash when station disconnect
from AP.

CR-Id: WCNCR00240772
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Change-Id: Idffdc83cd6a13bc01b7f877fb748a8a08e99c212
---
 net/mac80211/cfg.c   | 14 ++++++++++++++
 net/mac80211/iface.c |  4 ++--
 net/mac80211/mlme.c  |  1 -
 net/wireless/util.c  |  8 ++++++++
 4 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 871623d..c3b9d10 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4929,6 +4929,20 @@ static void ieee80211_del_intf_link(struct wiphy *wiphy,
 {
 	struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
 
+	if (wdev->iftype == NL80211_IFTYPE_AP_VLAN) {
+		int i;
+
+		sdata->vif.valid_links = 0;
+		sdata->vif.active_links = 0;
+		sdata->vif.dormant_links = 0;
+		for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
+			rcu_assign_pointer(sdata->link[i], NULL);
+			rcu_assign_pointer(sdata->vif.link_conf[i], NULL);
+		}
+
+		return;
+	}
+
 	lockdep_assert_wiphy(sdata->local->hw.wiphy);
 
 	ieee80211_vif_set_links(sdata, wdev->valid_links, 0);
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index cdeb787..83b579a 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -393,8 +393,8 @@ static int ieee80211_check_concurrent_iface(struct ieee80211_sub_if_data *sdata,
 				sdata->vif.active_links = nsdata->vif.active_links;
 				sdata->vif.dormant_links = nsdata->vif.dormant_links;
 				for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
-					sdata->link[i] = nsdata->link[i];
-					sdata->vif.link_conf[i] = nsdata->vif.link_conf[i];
+					rcu_assign_pointer(sdata->link[i], nsdata->link[i]);
+					rcu_assign_pointer(sdata->vif.link_conf[i], nsdata->vif.link_conf[i]);
 				}
 			}
 		}
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index e4564de..ebdcf57 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1829,7 +1829,6 @@ void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
 {
 	struct sk_buff *skb;
 	struct ieee80211_hdr *nullfunc;
-	u8 assoc_link_id = ifmgd->assoc_data->assoc_link_id;
 	__le16 fc;
 
 	if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION))
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 2bde8a3..d03f612 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -2826,6 +2826,14 @@ void cfg80211_remove_links(struct wireless_dev *wdev)
 {
 	unsigned int link_id;
 
+	if (wdev->iftype == NL80211_IFTYPE_AP_VLAN) {
+		struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
+
+		if (rdev->ops->del_intf_link)
+			rdev->ops->del_intf_link(&rdev->wiphy, wdev, 0);
+
+		return;
+	}
 	/*
 	 * links are controlled by upper layers (userspace/cfg)
 	 * only for AP mode, so only remove them here for AP
-- 
2.39.2

