wifi: virt_wifi: Fix page fault on connect
authorJames Guan <guan_yufei@163.com>
Wed, 10 Sep 2025 11:19:29 +0000 (19:19 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 10 Sep 2025 13:01:07 +0000 (15:01 +0200)
This patch prevents page fault in __cfg80211_connect_result()[1]
when connecting a virt_wifi device, while ensuring that virt_wifi
can connect properly.

[1] https://lore.kernel.org/linux-wireless/20250909063213.1055024-1-guan_yufei@163.com/

Closes: https://lore.kernel.org/linux-wireless/20250909063213.1055024-1-guan_yufei@163.com/
Signed-off-by: James Guan <guan_yufei@163.com>
Link: https://patch.msgid.link/20250910111929.137049-1-guan_yufei@163.com
[remove irrelevant network-manager instructions]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/virtual/virt_wifi.c

index 1fffeff2190ca8df6ca54c7151f6b187c0e65872..4eae89376feb550a9625bc92ff63e3e1366fb7fb 100644 (file)
@@ -277,7 +277,9 @@ static void virt_wifi_connect_complete(struct work_struct *work)
                priv->is_connected = true;
 
        /* Schedules an event that acquires the rtnl lock. */
-       cfg80211_connect_result(priv->upperdev, requested_bss, NULL, 0, NULL, 0,
+       cfg80211_connect_result(priv->upperdev,
+                               priv->is_connected ? fake_router_bssid : NULL,
+                               NULL, 0, NULL, 0,
                                status, GFP_KERNEL);
        netif_carrier_on(priv->upperdev);
 }