staging: rtl8723bs: fix monitor netdev register/unregister
Due to the locking changes and callbacks happening inside cfg80211, we need to use cfg80211 versions of the register and unregister functions if called within cfg80211 methods, otherwise deadlocks occur. Fixes: a05829a7222e ("cfg80211: avoid holding the RTNL when calling the driver") Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20210426212801.3d902cc9e6f4.Ie0b1e0c545920c61400a4b7d0f384ea61feb645a@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
a64b6a25dd
commit
b90f51e8e1
@ -2284,7 +2284,7 @@ static int rtw_cfg80211_add_monitor_if(struct adapter *padapter, char *name, str
|
||||
mon_wdev->iftype = NL80211_IFTYPE_MONITOR;
|
||||
mon_ndev->ieee80211_ptr = mon_wdev;
|
||||
|
||||
ret = register_netdevice(mon_ndev);
|
||||
ret = cfg80211_register_netdevice(mon_ndev);
|
||||
if (ret) {
|
||||
goto out;
|
||||
}
|
||||
@ -2360,7 +2360,7 @@ static int cfg80211_rtw_del_virtual_intf(struct wiphy *wiphy,
|
||||
adapter = rtw_netdev_priv(ndev);
|
||||
pwdev_priv = adapter_wdev_data(adapter);
|
||||
|
||||
unregister_netdevice(ndev);
|
||||
cfg80211_unregister_netdevice(ndev);
|
||||
|
||||
if (ndev == pwdev_priv->pmon_ndev) {
|
||||
pwdev_priv->pmon_ndev = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user