提交 868f0e28 编写于 作者: A Ajay Singh 提交者: Kalle Valo

wilc1000: fix crash observed in AP mode with cfg80211_register_netdevice()

Monitor(mon.) interface is used for handling the AP mode and 'ieee80211_ptr'
reference is not getting set for it. Like earlier implementation,
use register_netdevice() instead of cfg80211_register_netdevice() which
expects valid 'ieee80211_ptr' reference to avoid the possible crash.

Fixes: 2fe8ef10 ("cfg80211: change netdev registration/unregistration semantics")
Signed-off-by: NAjay Singh <ajay.kathat@microchip.com>
Signed-off-by: NKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220504161924.2146601-3-ajay.kathat@microchip.com
上级 72ebd675
...@@ -233,7 +233,7 @@ struct net_device *wilc_wfi_init_mon_interface(struct wilc *wl, ...@@ -233,7 +233,7 @@ struct net_device *wilc_wfi_init_mon_interface(struct wilc *wl,
wl->monitor_dev->netdev_ops = &wilc_wfi_netdev_ops; wl->monitor_dev->netdev_ops = &wilc_wfi_netdev_ops;
wl->monitor_dev->needs_free_netdev = true; wl->monitor_dev->needs_free_netdev = true;
if (cfg80211_register_netdevice(wl->monitor_dev)) { if (register_netdevice(wl->monitor_dev)) {
netdev_err(real_dev, "register_netdevice failed\n"); netdev_err(real_dev, "register_netdevice failed\n");
free_netdev(wl->monitor_dev); free_netdev(wl->monitor_dev);
return NULL; return NULL;
...@@ -251,7 +251,7 @@ void wilc_wfi_deinit_mon_interface(struct wilc *wl, bool rtnl_locked) ...@@ -251,7 +251,7 @@ void wilc_wfi_deinit_mon_interface(struct wilc *wl, bool rtnl_locked)
return; return;
if (rtnl_locked) if (rtnl_locked)
cfg80211_unregister_netdevice(wl->monitor_dev); unregister_netdevice(wl->monitor_dev);
else else
unregister_netdev(wl->monitor_dev); unregister_netdev(wl->monitor_dev);
wl->monitor_dev = NULL; wl->monitor_dev = NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册