wifi: wilc1000: cancel the connect operation during interface down
Cancel the ongoing connection request to avoid any issue if the interface is set down before the connection request is completed. host_int_handle_disconnect was already available, so renamed it and used the same API for 'ndio_close' cb. Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220720160302.231516-6-ajay.kathat@microchip.com
This commit is contained in:
parent
12fb1ae537
commit
ad3e683ae4
@ -635,7 +635,7 @@ static inline void host_int_parse_assoc_resp_info(struct wilc_vif *vif,
|
||||
conn_info->req_ies_len = 0;
|
||||
}
|
||||
|
||||
static inline void host_int_handle_disconnect(struct wilc_vif *vif)
|
||||
inline void wilc_handle_disconnect(struct wilc_vif *vif)
|
||||
{
|
||||
struct host_if_drv *hif_drv = vif->hif_drv;
|
||||
|
||||
@ -647,8 +647,6 @@ static inline void host_int_handle_disconnect(struct wilc_vif *vif)
|
||||
if (hif_drv->conn_info.conn_result)
|
||||
hif_drv->conn_info.conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF,
|
||||
0, hif_drv->conn_info.arg);
|
||||
else
|
||||
netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__);
|
||||
|
||||
eth_zero_addr(hif_drv->assoc_bssid);
|
||||
|
||||
@ -684,7 +682,7 @@ static void handle_rcvd_gnrl_async_info(struct work_struct *work)
|
||||
host_int_parse_assoc_resp_info(vif, mac_info->status);
|
||||
} else if (mac_info->status == WILC_MAC_STATUS_DISCONNECTED) {
|
||||
if (hif_drv->hif_state == HOST_IF_CONNECTED) {
|
||||
host_int_handle_disconnect(vif);
|
||||
wilc_handle_disconnect(vif);
|
||||
} else if (hif_drv->usr_scan_req.scan_result) {
|
||||
del_timer(&hif_drv->scan_timer);
|
||||
handle_scan_done(vif, SCAN_EVENT_ABORTED);
|
||||
|
||||
@ -215,4 +215,5 @@ void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length);
|
||||
void *wilc_parse_join_bss_param(struct cfg80211_bss *bss,
|
||||
struct cfg80211_crypto_settings *crypto);
|
||||
int wilc_set_default_mgmt_key_index(struct wilc_vif *vif, u8 index);
|
||||
inline void wilc_handle_disconnect(struct wilc_vif *vif);
|
||||
#endif
|
||||
|
||||
@ -780,6 +780,7 @@ static int wilc_mac_close(struct net_device *ndev)
|
||||
if (vif->ndev) {
|
||||
netif_stop_queue(vif->ndev);
|
||||
|
||||
wilc_handle_disconnect(vif);
|
||||
wilc_deinit_host_int(vif->ndev);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user