qcacld-3.0: Modify wlan_hdd_get_adapter_from_vdev() API

To get the adapter, wlan_hdd_get_adapter_from_vdev() calls
hdd_get_link_info_by_vdev() which will return link info.

As vdev is moved to per link data structure, modify the API
prototype to return link info pointer and rename as
wlan_hdd_get_link_info_from_vdev().
Callers can get adapter in the link info structure.

Change-Id: I579796ab395515bb777f3204528287b4595c60a7
CRs-Fixed: 3451442
This commit is contained in:
Vinod Kumar Pirla
2023-03-30 22:35:31 -07:00
gecommit door Rahul Choudhary
bovenliggende c0e4278687
commit 2070480e26
7 gewijzigde bestanden met toevoegingen van 155 en 145 verwijderingen

Bestand weergeven

@@ -4050,17 +4050,19 @@ int wlan_hdd_send_mcc_vdev_quota(struct hdd_adapter *adapter, int sval);
int wlan_hdd_send_mcc_latency(struct hdd_adapter *adapter, int sval);
/**
* wlan_hdd_get_adapter_from_vdev()- Get adapter from vdev id
* wlan_hdd_get_link_info_from_vdev()- Get link info from vdev id
* and PSOC object data
* @psoc: Psoc object data
* @vdev_id: vdev id
*
* Get adapter from vdev id and PSOC object data
* Get link info from vdev id and PSOC object data
*
* Return: adapter pointer
* Return: link info pointer
*/
struct hdd_adapter *wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc
*psoc, uint8_t vdev_id);
struct wlan_hdd_link_info *
wlan_hdd_get_link_info_from_vdev(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id);
/**
* hdd_unregister_notifiers()- unregister kernel notifiers
* @hdd_ctx: Hdd Context

Bestand weergeven

@@ -40,6 +40,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
uint8_t vdev_id;
uint32_t freq;
struct wlan_objmgr_psoc *psoc;
struct wlan_hdd_link_info *link_info;
if (!vdev) {
hdd_err("NULL vdev");
@@ -56,12 +57,13 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
return QDF_STATUS_E_INVAL;
}
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter) {
hdd_err("NULL adapter");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return QDF_STATUS_E_INVAL;
}
adapter = link_info->adapter;
status = ucfg_coex_psoc_get_btc_chain_mode(psoc, &mode);
if (QDF_IS_STATUS_ERROR(status)) {
hdd_err("failed to get cur BTC chain mode, status %d", status);
@@ -78,7 +80,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
mode == WLAN_COEX_BTC_CHAIN_MODE_HYBRID) ? 1 : 2);
hdd_debug("update nss to %d for vdev %d, device mode %d",
nss, adapter->deflink->vdev_id, adapter->device_mode);
nss, link_info->vdev_id, adapter->device_mode);
band = NSS_CHAINS_BAND_2GHZ;
sme_update_nss_in_mlme_cfg(mac_handle, nss, nss,
adapter->device_mode, band);
@@ -90,7 +92,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
wlan_objmgr_vdev_release_ref(vdev, WLAN_OSIF_ID);
}
sme_update_he_cap_nss(mac_handle, adapter->deflink->vdev_id, nss);
sme_update_he_cap_nss(mac_handle, link_info->vdev_id, nss);
freq = hdd_get_adapter_home_channel(adapter);
/*

Bestand weergeven

@@ -3677,38 +3677,36 @@ QDF_STATUS hdd_sap_restart_chan_switch_cb(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, uint32_t ch_freq,
uint32_t channel_bw, bool forced)
{
struct hdd_adapter *ap_adapter =
wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
struct wlan_hdd_link_info *link_info;
if (!ap_adapter) {
hdd_err("Adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return QDF_STATUS_E_INVAL;
}
return hdd_sap_restart_with_channel_switch(psoc,
ap_adapter,
ch_freq,
channel_bw, forced);
return hdd_sap_restart_with_channel_switch(psoc, link_info->adapter,
ch_freq, channel_bw, forced);
}
QDF_STATUS wlan_hdd_check_cc_intf_cb(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, uint32_t *ch_freq)
{
struct hdd_adapter *ap_adapter;
struct wlan_hdd_link_info *link_info;
struct sap_context *sap_context;
ap_adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!ap_adapter) {
hdd_err("ap_adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return QDF_STATUS_E_FAILURE;
}
if (!test_bit(SOFTAP_BSS_STARTED, &ap_adapter->event_flags)) {
if (!test_bit(SOFTAP_BSS_STARTED, &link_info->adapter->event_flags)) {
hdd_err("SOFTAP_BSS_STARTED not set");
return QDF_STATUS_E_FAILURE;
}
sap_context = WLAN_HDD_GET_SAP_CTX_PTR(ap_adapter->deflink);
sap_context = WLAN_HDD_GET_SAP_CTX_PTR(link_info);
if (!sap_context) {
hdd_err("sap_context is null");
return QDF_STATUS_E_FAILURE;
@@ -3728,31 +3726,33 @@ QDF_STATUS wlan_hdd_check_cc_intf_cb(struct wlan_objmgr_psoc *psoc,
void wlan_hdd_set_sap_csa_reason(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
uint8_t reason)
{
struct wlan_hdd_link_info *link_info;
struct sap_context *sap_ctx;
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
psoc, vdev_id);
if (!ap_adapter) {
hdd_err("ap adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
sap_ctx = WLAN_HDD_GET_SAP_CTX_PTR(ap_adapter->deflink);
sap_ctx = WLAN_HDD_GET_SAP_CTX_PTR(link_info);
if (sap_ctx)
sap_ctx->csa_reason = reason;
hdd_nofl_debug("set csa reason %d %s vdev %d",
reason, sap_get_csa_reason_str(reason), vdev_id);
}
QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, uint32_t *ch_freq)
QDF_STATUS wlan_hdd_get_channel_for_sap_restart(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
uint32_t *ch_freq)
{
mac_handle_t mac_handle;
struct hdd_ap_ctx *hdd_ap_ctx;
struct hdd_context *hdd_ctx;
uint8_t mcc_to_scc_switch = 0;
struct ch_params ch_params = {0};
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
psoc, vdev_id);
struct hdd_adapter *ap_adapter;
struct wlan_hdd_link_info *link_info;
uint32_t sap_ch_freq, intf_ch_freq, temp_ch_freq;
struct sap_context *sap_context;
enum sap_csa_reason_code csa_reason =
@@ -3760,28 +3760,30 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
QDF_STATUS status;
bool use_sap_original_bw = false;
if (!ap_adapter) {
hdd_err("ap_adapter is NULL");
if (!ch_freq) {
hdd_err("Null parameters");
return QDF_STATUS_E_FAILURE;
}
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return QDF_STATUS_E_FAILURE;
}
ap_adapter = link_info->adapter;
hdd_ctx = WLAN_HDD_GET_CTX(ap_adapter);
if (!hdd_ctx) {
hdd_err("hdd_ctx is NULL");
return QDF_STATUS_E_FAILURE;
}
if (!ch_freq) {
hdd_err("Null parameters");
return QDF_STATUS_E_FAILURE;
}
if (!test_bit(SOFTAP_BSS_STARTED, &ap_adapter->event_flags)) {
hdd_err("SOFTAP_BSS_STARTED not set");
return QDF_STATUS_E_FAILURE;
}
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
mac_handle = hdd_ctx->mac_handle;
if (!mac_handle) {
hdd_err("mac_handle is NULL");
@@ -3815,7 +3817,7 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
*/
if (policy_mgr_is_sap_restart_required_after_sta_disconnect(
psoc, vdev_id, &intf_ch_freq,
!!ap_adapter->deflink->session.ap.sap_config.acs_cfg.acs_mode)) {
!!link_info->session.ap.sap_config.acs_cfg.acs_mode)) {
hdd_debug("Move the sap (vdev %d) to user configured channel %u",
vdev_id, intf_ch_freq);
goto sap_restart;
@@ -3921,26 +3923,24 @@ QDF_STATUS
wlan_get_sap_acs_band(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
uint32_t *acs_band)
{
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(psoc,
vdev_id);
struct wlan_hdd_link_info *link_info;
struct sap_config *sap_config;
if (!ap_adapter || (ap_adapter->device_mode != QDF_SAP_MODE &&
ap_adapter->device_mode != QDF_P2P_GO_MODE)) {
hdd_err("invalid adapter");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || (link_info->adapter->device_mode != QDF_P2P_GO_MODE &&
link_info->adapter->device_mode != QDF_SAP_MODE)) {
hdd_err("Invalid vdev or device mode");
return QDF_STATUS_E_FAILURE;
}
/*
* If acs mode is false, that means acs is disabled and acs band can be
* QCA_ACS_MODE_IEEE80211ANY
*/
sap_config = &ap_adapter->deflink->session.ap.sap_config;
if (sap_config->acs_cfg.acs_mode == false) {
sap_config = &link_info->session.ap.sap_config;
if (!sap_config->acs_cfg.acs_mode)
*acs_band = QCA_ACS_MODE_IEEE80211ANY;
return QDF_STATUS_SUCCESS;
}
*acs_band = sap_config->acs_cfg.band;
else
*acs_band = sap_config->acs_cfg.band;
return QDF_STATUS_SUCCESS;
}
@@ -3953,15 +3953,15 @@ wlan_get_ap_prefer_conc_ch_params(
{
struct hdd_ap_ctx *hdd_ap_ctx;
struct sap_context *sap_context;
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
psoc, vdev_id);
struct wlan_hdd_link_info *link_info;
if (!ap_adapter || (ap_adapter->device_mode != QDF_SAP_MODE &&
ap_adapter->device_mode != QDF_P2P_GO_MODE)) {
hdd_err("invalid adapter");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || (link_info->adapter->device_mode != QDF_P2P_GO_MODE &&
link_info->adapter->device_mode != QDF_SAP_MODE)) {
hdd_err("Invalid vdev or device mode");
return QDF_STATUS_E_FAILURE;
}
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
sap_context = hdd_ap_ctx->sap_context;
if (!sap_context) {
hdd_err("sap_context is null");
@@ -3986,6 +3986,7 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
struct wlan_objmgr_vdev *vdev;
int32_t keymgmt;
struct hdd_adapter *ap_adapter;
struct wlan_hdd_link_info *link_info;
struct hdd_ap_ctx *ap_ctx;
struct sap_context *sap_context;
struct sap_config *sap_config;
@@ -4003,14 +4004,14 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
return 0;
}
ap_adapter = wlan_hdd_get_adapter_from_vdev(
psoc, vdev_id);
if (!ap_adapter) {
hdd_err("ap_adapter is NULL %d", vdev_id);
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev %d", vdev_id);
wlan_objmgr_vdev_release_ref(vdev, WLAN_HDD_ID_OBJ_MGR);
return 0;
}
ap_adapter = link_info->adapter;
conn_mode = policy_mgr_convert_device_mode_to_qdf_type(
ap_adapter->device_mode);
if ((conn_mode != PM_SAP_MODE && conn_mode != PM_P2P_GO_MODE) ||
@@ -4020,7 +4021,7 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
return 0;
}
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
sap_config = &ap_ctx->sap_config;
sap_context = ap_ctx->sap_context;
if (QDF_IS_STATUS_ERROR(wlansap_context_get(sap_context))) {
@@ -4178,20 +4179,20 @@ void hdd_sap_destroy_ctx_all(struct hdd_context *hdd_ctx, bool is_ssr)
static void
hdd_indicate_peers_deleted(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
{
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
if (!psoc) {
hdd_err("psoc obj is NULL");
return;
}
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (hdd_validate_adapter(adapter)) {
hdd_err("invalid adapter");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || hdd_validate_adapter(link_info->adapter)) {
hdd_err("invalid vdev or adapter");
return;
}
hdd_sap_indicate_disconnect_for_sta(adapter);
hdd_sap_indicate_disconnect_for_sta(link_info->adapter);
}
QDF_STATUS hdd_init_ap_mode(struct hdd_adapter *adapter, bool reinit)

Bestand weergeven

@@ -492,12 +492,14 @@ QDF_STATUS hdd_common_roam_callback(struct wlan_objmgr_psoc *psoc,
{
struct hdd_context *hdd_ctx;
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
QDF_STATUS status = QDF_STATUS_SUCCESS;
adapter = wlan_hdd_get_adapter_from_vdev(psoc, session_id);
if (!adapter)
link_info = wlan_hdd_get_link_info_from_vdev(psoc, session_id);
if (!link_info)
return QDF_STATUS_E_INVAL;
adapter = link_info->adapter;
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
if (!hdd_ctx)
return QDF_STATUS_E_INVAL;
@@ -512,8 +514,10 @@ QDF_STATUS hdd_common_roam_callback(struct wlan_objmgr_psoc *psoc,
break;
case QDF_SAP_MODE:
case QDF_P2P_GO_MODE:
status = wlansap_roam_callback(adapter->deflink->session.ap.sap_context,
roam_info, roam_status, roam_result);
status =
wlansap_roam_callback(link_info->session.ap.sap_context,
roam_info, roam_status,
roam_result);
break;
default:
hdd_err("Wrong device mode");
@@ -1549,17 +1553,19 @@ static int hdd_update_tdls_config(struct hdd_context *hdd_ctx)
void hdd_indicate_active_ndp_cnt(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, uint8_t cnt)
{
struct hdd_adapter *adapter = NULL;
struct wlan_hdd_link_info *link_info;
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (adapter && cfg_nan_is_roam_config_disabled(psoc)) {
hdd_debug("vdev_id:%d%s active ndp sessions present", vdev_id,
cnt ? "" : " no more");
if (!cnt)
wlan_hdd_enable_roaming(adapter, RSO_NDP_CON_ON_NDI);
else
wlan_hdd_disable_roaming(adapter, RSO_NDP_CON_ON_NDI);
}
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || !cfg_nan_is_roam_config_disabled(psoc))
return;
hdd_debug("vdev_id:%d%s active ndp sessions present", vdev_id,
cnt ? "" : " no more");
if (!cnt)
wlan_hdd_enable_roaming(link_info->adapter, RSO_NDP_CON_ON_NDI);
else
wlan_hdd_disable_roaming(link_info->adapter,
RSO_NDP_CON_ON_NDI);
}
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
@@ -20079,8 +20085,8 @@ int wlan_hdd_send_mcc_latency(struct hdd_adapter *adapter, int set_value)
return 0;
}
struct hdd_adapter *
wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
struct wlan_hdd_link_info *
wlan_hdd_get_link_info_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
{
struct hdd_context *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
struct wlan_hdd_link_info *link_info;
@@ -20097,7 +20103,7 @@ wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
return NULL;
}
return link_info->adapter;
return link_info;
}
int hdd_get_rssi_snr_by_bssid(struct hdd_adapter *adapter, const uint8_t *bssid,

Bestand weergeven

@@ -515,16 +515,18 @@ wlan_hdd_pre_cac_conditional_freq_switch_ind(struct wlan_objmgr_vdev *vdev,
struct wlan_objmgr_psoc *psoc = wlan_vdev_get_psoc(vdev);
uint8_t vdev_id = vdev->vdev_objmgr.vdev_id;
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
struct hdd_ap_ctx *ap_ctx;
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter) {
hdd_err("Invalid adapter");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
adapter = link_info->adapter;
if (completed) {
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(adapter->deflink);
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
ap_ctx->dfs_cac_block_tx = false;
ucfg_ipa_set_dfs_cac_tx(adapter->hdd_ctx->pdev,
ap_ctx->dfs_cac_block_tx);
@@ -543,18 +545,18 @@ wlan_hdd_pre_cac_complete(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
QDF_STATUS status)
{
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter) {
hdd_err("Invalid adapter vdev %d", vdev_id);
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev %d", vdev_id);
return;
}
if (QDF_IS_STATUS_SUCCESS(status))
wlan_hdd_pre_cac_success(adapter);
wlan_hdd_pre_cac_success(link_info->adapter);
else
wlan_hdd_pre_cac_failure(adapter);
wlan_hdd_pre_cac_failure(link_info->adapter);
}
struct osif_pre_cac_legacy_ops pre_cac_legacy_ops = {

Bestand weergeven

@@ -653,7 +653,7 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
{
uint8_t vdev_id;
enum hdd_dot11_mode selfdot11mode;
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
struct wlan_objmgr_psoc *psoc;
struct hdd_context *hdd_ctx;
@@ -661,18 +661,15 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
if (!psoc)
return;
vdev_id = wlan_vdev_get_id(vdev);
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter)
return;
/*
* Only need to set this if STA link is in legacy mode
*/
if (!hdd_is_sta_legacy(adapter->deflink))
vdev_id = wlan_vdev_get_id(vdev);
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || !hdd_is_sta_legacy(link_info))
return;
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
if (!hdd_ctx)
return;
@@ -692,32 +689,29 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
selfdot11mode == eHDD_DOT11_MODE_11ac ||
selfdot11mode == eHDD_DOT11_MODE_11n ||
selfdot11mode == eHDD_DOT11_MODE_11n_ONLY)
hdd_cm_netif_queue_enable(adapter);
hdd_cm_netif_queue_enable(link_info->adapter);
}
void
hdd_check_and_set_tdls_disconn_params(struct wlan_objmgr_vdev *vdev)
{
struct hdd_adapter *adapter;
uint8_t vdev_id;
struct wlan_objmgr_psoc *psoc;
struct wlan_hdd_link_info *link_info;
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc)
return;
vdev_id = wlan_vdev_get_id(vdev);
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter)
return;
/*
* Only need to set this if STA link is in legacy mode
*/
if (!hdd_is_sta_legacy(adapter->deflink))
vdev_id = wlan_vdev_get_id(vdev);
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info || !hdd_is_sta_legacy(link_info))
return;
hdd_cm_netif_queue_enable(adapter);
hdd_cm_netif_queue_enable(link_info->adapter);
}
/**

Bestand weergeven

@@ -1914,14 +1914,16 @@ hdd_twt_add_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
bool renego_fail)
{
struct hdd_adapter *adapter;
struct wlan_hdd_link_info *link_info;
uint8_t vdev_id = add_dialog_event->params.vdev_id;
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
if (!adapter) {
hdd_err("adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
adapter = link_info->adapter;
hdd_debug("TWT: add dialog_id:%d, status:%d vdev_id:%d renego_fail:%d peer mac_addr "
QDF_MAC_ADDR_FMT, add_dialog_event->params.dialog_id,
add_dialog_event->params.status, vdev_id, renego_fail,
@@ -2334,8 +2336,7 @@ static void
hdd_twt_del_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
struct wmi_twt_del_dialog_complete_event_param *params)
{
struct hdd_adapter *adapter =
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
struct wlan_hdd_link_info *link_info;
struct wireless_dev *wdev;
struct hdd_context *hdd_ctx;
struct sk_buff *twt_vendor_event;
@@ -2344,16 +2345,17 @@ hdd_twt_del_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
hdd_enter();
if (!adapter) {
hdd_err("adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
if (!hdd_ctx || cds_is_load_or_unload_in_progress())
return;
wdev = adapter->dev->ieee80211_ptr;
wdev = &link_info->adapter->wdev;
data_len = hdd_get_twt_event_len() + nla_total_size(sizeof(u8));
data_len += NLA_HDRLEN;
@@ -2798,8 +2800,7 @@ static void hdd_twt_nudge_dialog_comp_cb(
struct wmi_twt_nudge_dialog_complete_event_param *params)
{
struct hdd_adapter *adapter =
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
struct wlan_hdd_link_info *link_info;
struct wireless_dev *wdev;
struct hdd_context *hdd_ctx;
struct sk_buff *twt_vendor_event;
@@ -2807,12 +2808,14 @@ static void hdd_twt_nudge_dialog_comp_cb(
QDF_STATUS status;
hdd_enter();
if (hdd_validate_adapter(adapter))
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
if (!link_info || hdd_validate_adapter(link_info->adapter))
return;
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
wdev = adapter->dev->ieee80211_ptr;
wdev = &link_info->adapter->wdev;
hdd_debug("Nudge dialog_id:%d, status:%d vdev_id %d peer mac_addr "
QDF_MAC_ADDR_FMT, params->dialog_id,
@@ -2911,8 +2914,7 @@ hdd_twt_pause_dialog_comp_cb(
struct wlan_objmgr_psoc *psoc,
struct wmi_twt_pause_dialog_complete_event_param *params)
{
struct hdd_adapter *adapter =
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
struct wlan_hdd_link_info *link_info;
struct wireless_dev *wdev;
struct hdd_context *hdd_ctx;
struct sk_buff *twt_vendor_event;
@@ -2921,17 +2923,18 @@ hdd_twt_pause_dialog_comp_cb(
hdd_enter();
if (!adapter) {
hdd_err("adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
status = wlan_hdd_validate_context(hdd_ctx);
if (QDF_IS_STATUS_ERROR(status))
return;
wdev = adapter->dev->ieee80211_ptr;
wdev = &link_info->adapter->wdev;
hdd_debug("pause dialog_id:%d, status:%d vdev_id %d peer mac_addr "
QDF_MAC_ADDR_FMT, params->dialog_id,
@@ -3373,8 +3376,7 @@ static void hdd_twt_resume_dialog_comp_cb(
struct wlan_objmgr_psoc *psoc,
struct wmi_twt_resume_dialog_complete_event_param *params)
{
struct hdd_adapter *adapter =
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
struct wlan_hdd_link_info *link_info;
struct hdd_context *hdd_ctx;
struct wireless_dev *wdev;
struct sk_buff *twt_vendor_event;
@@ -3383,17 +3385,18 @@ static void hdd_twt_resume_dialog_comp_cb(
hdd_enter();
if (!adapter) {
hdd_err("adapter is NULL");
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
if (!link_info) {
hdd_err("Invalid vdev");
return;
}
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
status = wlan_hdd_validate_context(hdd_ctx);
if (QDF_IS_STATUS_ERROR(status))
return;
wdev = adapter->dev->ieee80211_ptr;
wdev = &link_info->adapter->wdev;
hdd_debug("TWT: resume dialog_id:%d status:%d vdev_id %d peer mac_addr "
QDF_MAC_ADDR_FMT, params->dialog_id,
@@ -4156,8 +4159,7 @@ static void
hdd_twt_notify_cb(struct wlan_objmgr_psoc *psoc,
struct wmi_twt_notify_event_param *params)
{
struct hdd_adapter *adapter =
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
struct wlan_hdd_link_info *link_info;
struct wireless_dev *wdev;
struct sk_buff *twt_vendor_event;
size_t data_len;
@@ -4165,16 +4167,17 @@ hdd_twt_notify_cb(struct wlan_objmgr_psoc *psoc,
hdd_enter();
if (hdd_validate_adapter(adapter))
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
if (!link_info || hdd_validate_adapter(link_info->adapter))
return;
wdev = adapter->dev->ieee80211_ptr;
wdev = &link_info->adapter->wdev;
data_len = NLA_HDRLEN;
data_len += nla_total_size(sizeof(u8));
twt_vendor_event = wlan_cfg80211_vendor_event_alloc(
adapter->wdev.wiphy, wdev,
wdev->wiphy, wdev,
data_len,
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT_INDEX,
GFP_KERNEL);