diff --git a/components/son/dispatcher/src/son_api.c b/components/son/dispatcher/src/son_api.c index 753b18ed69..6cd2e4681d 100644 --- a/components/son/dispatcher/src/son_api.c +++ b/components/son/dispatcher/src/son_api.c @@ -24,6 +24,7 @@ #include #include #include +#include /** * struct son_mlme_deliver_cbs - son mlme deliver callbacks diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 49cf370742..a09eea3f45 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -6440,6 +6440,7 @@ int hdd_vdev_destroy(struct hdd_adapter *adapter) ucfg_scan_vdev_set_disable(vdev, REASON_VDEV_DOWN); wlan_hdd_scan_abort(adapter); wlan_cfg80211_cleanup_scan_queue(hdd_ctx->pdev, adapter->dev); + ucfg_son_disable_cbs(vdev); /* Disable serialization for vdev before sending vdev delete */ wlan_ser_vdev_queue_disable(vdev); hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID); @@ -6473,7 +6474,6 @@ int hdd_vdev_destroy(struct hdd_adapter *adapter) QDF_VDEV_DELETE_RESPONSE_TIMED_OUT); } - ucfg_son_disable_cbs(vdev); hdd_nofl_debug("vdev %d destroyed successfully", vdev_id); send_status: diff --git a/core/hdd/src/wlan_hdd_son.c b/core/hdd/src/wlan_hdd_son.c index c0050e4564..9a2e7a6597 100644 --- a/core/hdd/src/wlan_hdd_son.c +++ b/core/hdd/src/wlan_hdd_son.c @@ -1580,6 +1580,30 @@ son_trigger_pdev_obj_creation(struct wlan_objmgr_psoc *psoc, hdd_err("pdev obj creation trigger failed"); } +/** + * son_trigger_pdev_obj_deletion() - Trigger pdev object deletion + * @psoc: psoc object + * @object: pdev object + * @arg: component id + * + * Return: void + */ +static void +son_trigger_pdev_obj_deletion(struct wlan_objmgr_psoc *psoc, + void *object, void *arg) +{ + QDF_STATUS ret; + struct wlan_objmgr_pdev *pdev; + enum wlan_umac_comp_id *id; + + pdev = object; + id = arg; + + ret = wlan_objmgr_trigger_pdev_comp_priv_object_deletion(pdev, *id); + if (QDF_IS_STATUS_ERROR(ret)) + hdd_err("pdev obj delete trigger failed"); +} + /** * hdd_son_trigger_objmgr_object_creation() - Trigger objmgr object creation * @id: umac component id @@ -1685,30 +1709,6 @@ son_trigger_vdev_obj_deletion(struct wlan_objmgr_psoc *psoc, hdd_err("vdev obj deletion trigger failed"); } -/** - * son_trigger_pdev_obj_deletion() - Trigger pdev object deletion - * @psoc: psoc object - * @object: pdev object - * @arg: component id - * - * Return: void - */ -static void -son_trigger_pdev_obj_deletion(struct wlan_objmgr_psoc *psoc, - void *object, void *arg) -{ - QDF_STATUS ret; - struct wlan_objmgr_pdev *pdev; - enum wlan_umac_comp_id *id; - - pdev = object; - id = arg; - - ret = wlan_objmgr_trigger_pdev_comp_priv_object_deletion(pdev, *id); - if (QDF_IS_STATUS_ERROR(ret)) - hdd_err("pdev obj delete trigger failed"); -} - /** * hdd_son_trigger_objmgr_object_deletion() - Trigger objmgr object deletion * @id: umac component id @@ -1775,7 +1775,7 @@ static QDF_STATUS hdd_son_init_acs_channels(struct hdd_adapter *adapter, } if (acs_cfg->freq_list) { hdd_debug("ACS config is already there, no need to init again"); - return return QDF_STATUS_SUCCESS; + return QDF_STATUS_SUCCESS; } /* Setting ACS config */ qdf_mem_zero(acs_cfg, sizeof(*acs_cfg)); @@ -2116,7 +2116,6 @@ static int hdd_son_get_acs_report(struct wlan_objmgr_vdev *vdev, uint8_t acs_entry_id = 0; ACS_LIST_TYPE acs_type = 0; int ret = 0, i = 0; - uint8_t vdev_id = vdev->vdev_objmgr.vdev_id; struct sap_acs_cfg *acs_cfg; struct hdd_context *hdd_ctx; struct ieee80211_acs_dbg *acs_r = NULL; @@ -2138,7 +2137,7 @@ static int hdd_son_get_acs_report(struct wlan_objmgr_vdev *vdev, ret = -EINVAL; goto end; } - if (hdd_son_get_acs_in_progress(vdev_id)) { + if (hdd_son_is_acs_in_progress(vdev)) { acs_report->nchans = 0; hdd_err("ACS is in-progress"); ret = -EAGAIN; @@ -2241,7 +2240,7 @@ static const uint8_t wlanphymode2ieeephymode[WLAN_PHYMODE_MAX] = { [WLAN_PHYMODE_11AC_VHT80_80] = IEEE80211_MODE_11AC_VHT80_80, [WLAN_PHYMODE_11AXA_HE20] = IEEE80211_MODE_11AXA_HE20, [WLAN_PHYMODE_11AXG_HE20] = IEEE80211_MODE_11AXG_HE20, - [WLAN_PHYMODE_11AXA_HE40MINUS] = IEEE80211_MODE_11AXA_HE40, + [WLAN_PHYMODE_11AXA_HE40] = IEEE80211_MODE_11AXA_HE40, [WLAN_PHYMODE_11AXG_HE40PLUS] = IEEE80211_MODE_11AXG_HE40PLUS, [WLAN_PHYMODE_11AXG_HE40MINUS] = IEEE80211_MODE_11AXG_HE40MINUS, [WLAN_PHYMODE_11AXG_HE40] = IEEE80211_MODE_11AXG_HE40, diff --git a/os_if/son/src/os_if_son.c b/os_if/son/src/os_if_son.c index f7b44f61a0..1d8551dfdb 100644 --- a/os_if/son/src/os_if_son.c +++ b/os_if/son/src/os_if_son.c @@ -926,7 +926,7 @@ QDF_STATUS os_if_son_vdev_ops(struct wlan_objmgr_vdev *vdev, case VDEV_GET_CHAN_UTIL: if (!out) return QDF_STATUS_E_INVAL; - out->chan_util = os_if_son_get_chan_uti(vdev, NULL); + out->chan_util = os_if_son_get_chan_util(vdev); break; case VDEV_GET_APCAP: break; @@ -1007,8 +1007,7 @@ QDF_STATUS os_if_son_peer_ops(struct wlan_objmgr_peer *peer, case PEER_SET_KICKOUT: qdf_mem_copy(&mac.bytes, peer->macaddr, QDF_MAC_ADDR_SIZE); ret_val = - g_son_os_if_cb.os_if_kickout_mac(vdev->vdev_objmgr.vdev_id, - &mac); + g_son_os_if_cb.os_if_kickout_mac(vdev, &mac); if (ret_val) { osif_err("Failed to kickout peer " QDF_MAC_ADDR_FMT, QDF_MAC_ADDR_REF(peer->macaddr));