rtl8188eu: Fix problem where device is not up on module load

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2018-05-05 14:08:13 -05:00
parent bc8ca96401
commit 0b659bd591
3 changed files with 43 additions and 59 deletions

View file

@ -5059,7 +5059,7 @@ int rtw_wdev_alloc(struct adapter *padapter, struct device *dev)
wdev->wiphy = wiphy;
wdev->netdev = pnetdev;
/* wdev->iftype = NL80211_IFTYPE_STATION; */
wdev->iftype = NL80211_IFTYPE_MONITOR; /* for rtw_setopmode_cmd() in cfg80211_rtw_change_iface() */
wdev->iftype = NL80211_IFTYPE_STATION; /* for rtw_setopmode_cmd() in cfg80211_rtw_change_iface() */
padapter->rtw_wdev = wdev;
pnetdev->ieee80211_ptr = wdev;

View file

@ -603,25 +603,32 @@ void rtw_unregister_netdevs(struct dvobj_priv *dvobj)
{
int i;
struct adapter *padapter = NULL;
struct net_device *pnetdev = NULL;
for (i=0;i<dvobj->iface_nums;i++)
{
struct net_device *pnetdev = NULL;
if (!dvobj || dvobj->iface_nums == 0)
return;
for (i=0;i<dvobj->iface_nums;i++) {
padapter = dvobj->padapters[i];
if (padapter == NULL)
continue;
pnetdev = padapter->pnetdev;
if (!pnetdev)
continue;
if ((padapter->DriverState != DRIVER_DISAPPEAR) && pnetdev) {
if (padapter->DriverState != DRIVER_DISAPPEAR) {
struct wireless_dev *wdev = padapter->rtw_wdev;
wdev->current_bss = NULL;
pnetdev->reg_state = NETREG_REGISTERED;
unregister_netdev(pnetdev); /* will call netdev_close() */
rtw_proc_remove_one(pnetdev);
}
rtw_wdev_unregister(padapter->rtw_wdev);
if (padapter->rtw_wdev)
rtw_wdev_unregister(padapter->rtw_wdev);
}
}