diff options
| -rw-r--r-- | core/cds/src/cds_concurrency.c | 1 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_hostapd.c | 17 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_hostapd.h | 9 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_main.c | 2 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_softap_tx_rx.c | 8 |
5 files changed, 29 insertions, 8 deletions
diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c index c97d7a573426..145b2607f114 100644 --- a/core/cds/src/cds_concurrency.c +++ b/core/cds/src/cds_concurrency.c @@ -8753,6 +8753,7 @@ void cds_restart_sap(hdd_adapter_t *ap_adapter) hdd_cleanup_actionframe(hdd_ctx, ap_adapter); hostapd_state = WLAN_HDD_GET_HOSTAP_STATE_PTR(ap_adapter); qdf_event_reset(&hostapd_state->qdf_stop_bss_event); + hdd_ipa_ap_disconnect(ap_adapter); if (QDF_STATUS_SUCCESS == wlansap_stop_bss(sap_ctx)) { qdf_status = qdf_wait_for_event_completion(&hostapd_state-> diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 0adfa9e1cc36..7395044db6de 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -735,6 +735,7 @@ static int hdd_stop_bss_link(hdd_adapter_t *pHostapdAdapter, return status; if (test_bit(SOFTAP_BSS_STARTED, &pHostapdAdapter->event_flags)) { + hdd_ipa_ap_disconnect(pHostapdAdapter); status = wlansap_stop_bss( WLAN_HDD_GET_SAP_CTX_PTR(pHostapdAdapter)); if (QDF_IS_STATUS_SUCCESS(status)) @@ -5348,6 +5349,7 @@ __iw_softap_stopbss(struct net_device *dev, WLAN_HDD_GET_HOSTAP_STATE_PTR(pHostapdAdapter); qdf_event_reset(&pHostapdState->qdf_stop_bss_event); + hdd_ipa_ap_disconnect(pHostapdAdapter); status = wlansap_stop_bss( WLAN_HDD_GET_SAP_CTX_PTR(pHostapdAdapter)); if (QDF_IS_STATUS_SUCCESS(status)) { @@ -8868,6 +8870,7 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy, WLAN_HDD_GET_SAP_CTX_PTR(pAdapter), true); qdf_event_reset(&pHostapdState->qdf_stop_bss_event); + hdd_ipa_ap_disconnect(pAdapter); status = wlansap_stop_bss(WLAN_HDD_GET_SAP_CTX_PTR(pAdapter)); if (QDF_IS_STATUS_SUCCESS(status)) { qdf_status = @@ -9570,3 +9573,17 @@ void hdd_sap_destroy_events(hdd_adapter_t *adapter) } EXIT(); } +void hdd_ipa_ap_disconnect(hdd_adapter_t *pAdapter) +{ + hdd_context_t *hdd_ctx; + hdd_ctx = WLAN_HDD_GET_CTX(pAdapter); + + if (hdd_ipa_is_enabled(hdd_ctx)) { + if (hdd_ipa_wlan_evt(pAdapter, + WLAN_HDD_GET_AP_CTX_PTR(pAdapter)->uBCStaId, + HDD_IPA_AP_DISCONNECT, + pAdapter->dev->dev_addr)) { + hdd_err("WLAN_AP_DISCONNECT event failed"); + } + } +} diff --git a/core/hdd/src/wlan_hdd_hostapd.h b/core/hdd/src/wlan_hdd_hostapd.h index cbfa35b82aa8..7f80d05e2488 100644 --- a/core/hdd/src/wlan_hdd_hostapd.h +++ b/core/hdd/src/wlan_hdd_hostapd.h @@ -142,4 +142,13 @@ void hdd_sap_destroy_events(hdd_adapter_t *adapter); QDF_STATUS hdd_softap_set_peer_authorized(hdd_adapter_t *adapter, struct qdf_mac_addr *peer_mac); +/** + * hdd_ipa_ap_disconnect() - call hdd_ipa_wlan_evt if + * ipa is enabled + * @pAdapter: pointer to adapter context + * + * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error + */ +void hdd_ipa_ap_disconnect(hdd_adapter_t *pAdapter); + #endif /* end #if !defined(WLAN_HDD_HOSTAPD_H) */ diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index d5ac889e9cd6..00e043df7ff9 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -4917,6 +4917,7 @@ QDF_STATUS hdd_stop_adapter(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter, QDF_STATUS status; QDF_STATUS qdf_status; + hdd_ipa_ap_disconnect(adapter); /* Stop Bss. */ status = wlansap_stop_bss( WLAN_HDD_GET_SAP_CTX_PTR(adapter)); @@ -12049,6 +12050,7 @@ void wlan_hdd_stop_sap(hdd_adapter_t *ap_adapter) hostapd_state = WLAN_HDD_GET_HOSTAP_STATE_PTR(ap_adapter); hdd_debug("Now doing SAP STOPBSS"); qdf_event_reset(&hostapd_state->qdf_stop_bss_event); + hdd_ipa_ap_disconnect(ap_adapter); if (QDF_STATUS_SUCCESS == wlansap_stop_bss(hdd_ap_ctx-> sapContext)) { qdf_status = qdf_wait_for_event_completion( diff --git a/core/hdd/src/wlan_hdd_softap_tx_rx.c b/core/hdd/src/wlan_hdd_softap_tx_rx.c index 11b927486171..d3450e20b292 100644 --- a/core/hdd/src/wlan_hdd_softap_tx_rx.c +++ b/core/hdd/src/wlan_hdd_softap_tx_rx.c @@ -1206,14 +1206,6 @@ QDF_STATUS hdd_softap_stop_bss(hdd_adapter_t *pAdapter) sme_update_channel_list(pHddCtx->hHal); } - if (hdd_ipa_is_enabled(pHddCtx)) { - if (hdd_ipa_wlan_evt(pAdapter, - WLAN_HDD_GET_AP_CTX_PTR(pAdapter)->uBCStaId, - HDD_IPA_AP_DISCONNECT, - pAdapter->dev->dev_addr)) - hdd_err("WLAN_AP_DISCONNECT event failed"); - } - return qdf_status; } |
