Files
package_kernel_mac80211/patches/build/210-wireless_netns_local_backport.patch
2025-11-21 09:29:29 +08:00

55 lines
1.5 KiB
Diff

--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -162,11 +162,19 @@ int cfg80211_switch_netns(struct cfg8021
list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
if (!wdev->netdev)
continue;
+#if LINUX_VERSION_IS_GEQ(6,15,0)
wdev->netdev->netns_immutable = false;
+#elif LINUX_VERSION_IS_GEQ(6,12,0)
+ wdev->netdev->netns_local = false;
+#endif
err = dev_change_net_namespace(wdev->netdev, net, "wlan%d");
if (err)
break;
+#if LINUX_VERSION_IS_GEQ(6,15,0)
wdev->netdev->netns_immutable = true;
+#elif LINUX_VERSION_IS_GEQ(6,12,0)
+ wdev->netdev->netns_local = true;
+#endif
}
if (err) {
@@ -178,11 +186,19 @@ int cfg80211_switch_netns(struct cfg8021
list) {
if (!wdev->netdev)
continue;
+#if LINUX_VERSION_IS_GEQ(6,15,0)
wdev->netdev->netns_immutable = false;
+#elif LINUX_VERSION_IS_GEQ(6,12,0)
+ wdev->netdev->netns_local = false;
+#endif
err = dev_change_net_namespace(wdev->netdev, net,
"wlan%d");
WARN_ON(err);
+#if LINUX_VERSION_IS_GEQ(6,15,0)
wdev->netdev->netns_immutable = true;
+#elif LINUX_VERSION_IS_GEQ(6,12,0)
+ wdev->netdev->netns_local = true;
+#endif
}
return err;
@@ -1521,7 +1537,11 @@ static int cfg80211_netdev_notifier_call
SET_NETDEV_DEVTYPE(dev, &wiphy_type);
wdev->netdev = dev;
/* can only change netns with wiphy */
+#if LINUX_VERSION_IS_GEQ(6,15,0)
dev->netns_immutable = true;
+#elif LINUX_VERSION_IS_GEQ(6,12,0)
+ dev->netns_local = true;
+#endif
cfg80211_init_wdev(wdev);
break;