staging: wilc1000: check if device is initialzied before changing vif
[ Upstream commit 6df6f3849bb8f317bf2d52711aacea4292237ede ] When killing hostapd, the interface is closed which deinitializes the device, then change virtual interface is called. This change checks if the device is initialized before sending the interface change command to the device Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com> Link: https://lore.kernel.org/r/20191028184019.31194-1-adham.abozaeid@microchip.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1e457b63c7
commit
3a57f8d901
@ -1419,8 +1419,10 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
|
||||
if (vif->iftype == WILC_AP_MODE || vif->iftype == WILC_GO_MODE)
|
||||
wilc_wfi_deinit_mon_interface(wl, true);
|
||||
vif->iftype = WILC_STATION_MODE;
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_STATION_MODE, vif->idx);
|
||||
|
||||
if (wl->initialized)
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_STATION_MODE, vif->idx);
|
||||
|
||||
memset(priv->assoc_stainfo.sta_associated_bss, 0,
|
||||
WILC_MAX_NUM_STA * ETH_ALEN);
|
||||
@ -1432,8 +1434,10 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
|
||||
priv->wdev.iftype = type;
|
||||
vif->monitor_flag = 0;
|
||||
vif->iftype = WILC_CLIENT_MODE;
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_STATION_MODE, vif->idx);
|
||||
|
||||
if (wl->initialized)
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_STATION_MODE, vif->idx);
|
||||
break;
|
||||
|
||||
case NL80211_IFTYPE_AP:
|
||||
@ -1450,8 +1454,10 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
|
||||
dev->ieee80211_ptr->iftype = type;
|
||||
priv->wdev.iftype = type;
|
||||
vif->iftype = WILC_GO_MODE;
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_AP_MODE, vif->idx);
|
||||
|
||||
if (wl->initialized)
|
||||
wilc_set_operation_mode(vif, wilc_get_vif_idx(vif),
|
||||
WILC_AP_MODE, vif->idx);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user