qcacld-3.0: Take ref count with dbg id API in cfg80211 layer

Replace hdd_objmgr_get/put_vdev by new API hdd_objmgr_get
and put_vdev_by_user to specify functionality dbg id.

Change-Id: I217d503b30fb26d07644678fff4045fee22a849c
CRs-Fixed: 2830030
This commit is contained in:
Liangwei Dong
2020-11-26 11:02:50 +08:00
gecommit door snandini
bovenliggende 9e561c01d6
commit 451d1aa2b6

Bestand weergeven

@@ -7150,7 +7150,7 @@ static int wlan_hdd_handle_restrict_offchan_config(struct hdd_adapter *adapter,
hdd_err("Invalid interface type:%d", dev_mode);
return -EINVAL;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
if (restrict_offchan == 1) {
@@ -7184,7 +7184,7 @@ static int wlan_hdd_handle_restrict_offchan_config(struct hdd_adapter *adapter,
ret_val = -EINVAL;
hdd_err("Invalid RESTRICT_OFFCHAN setting");
}
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return ret_val;
}
@@ -7642,7 +7642,7 @@ hdd_set_dynamic_antenna_mode(struct hdd_adapter *adapter,
return -EINVAL;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev) {
hdd_err("vdev is NULL");
return -EINVAL;
@@ -7654,11 +7654,11 @@ hdd_set_dynamic_antenna_mode(struct hdd_adapter *adapter,
num_rx_chains,
num_tx_chains, band, vdev);
if (QDF_IS_STATUS_ERROR(status)) {
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return -EINVAL;
}
}
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
status = sme_nss_chains_update(mac_handle,
&user_cfg,
@@ -7865,13 +7865,13 @@ static int hdd_config_modulated_dtim(struct hdd_adapter *adapter,
modulated_dtim = nla_get_u32(attr);
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
status = ucfg_pmo_config_modulated_dtim(vdev, modulated_dtim);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return qdf_status_to_os_return(status);
}
@@ -7890,13 +7890,13 @@ static int hdd_config_listen_interval(struct hdd_adapter *adapter,
return -EINVAL;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_PMO_ID);
if (!vdev)
return -EINVAL;
status = ucfg_pmo_config_listen_interval(vdev, listen_interval);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_PMO_ID);
return qdf_status_to_os_return(status);
}
@@ -8586,13 +8586,13 @@ static int hdd_set_elna_bypass(struct hdd_adapter *adapter,
int ret;
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_FWOL_NB_ID);
if (!vdev)
return -EINVAL;
ret = os_if_fwol_set_elna_bypass(vdev, attr);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_FWOL_NB_ID);
return ret;
}
@@ -8872,13 +8872,13 @@ static int hdd_get_elna_bypass(struct hdd_adapter *adapter,
int ret;
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_FWOL_NB_ID);
if (!vdev)
return -EINVAL;
ret = os_if_fwol_get_elna_bypass(vdev, skb, attr);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_FWOL_NB_ID);
return ret;
}
@@ -17413,11 +17413,12 @@ static int __wlan_hdd_change_station(struct wiphy *wiphy,
#if defined(FEATURE_WLAN_TDLS)
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter,
WLAN_OSIF_TDLS_ID);
if (!vdev)
return -EINVAL;
ret = wlan_cfg80211_tdls_update_peer(vdev, mac, params);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_TDLS_ID);
#endif
}
}
@@ -17503,7 +17504,7 @@ static int wlan_hdd_add_key_sap(struct hdd_adapter *adapter,
struct hdd_hostapd_state *hostapd_state =
WLAN_HDD_GET_HOSTAP_STATE_PTR(adapter);
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
@@ -17513,7 +17514,7 @@ static int wlan_hdd_add_key_sap(struct hdd_adapter *adapter,
*/
if (wlan_vdev_is_restart_progress(vdev) == QDF_STATUS_SUCCESS) {
hdd_err("vdev: %d restart in progress", wlan_vdev_get_id(vdev));
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return -EINVAL;
}
@@ -17527,7 +17528,7 @@ static int wlan_hdd_add_key_sap(struct hdd_adapter *adapter,
wma_update_set_key(adapter->vdev_id, pairwise,
key_index, cipher);
}
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return errno;
}
@@ -17549,14 +17550,14 @@ static int wlan_hdd_add_key_sta(struct hdd_adapter *adapter,
*ft_mode = true;
return 0;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
errno = wlan_cfg80211_crypto_add_key(vdev, (pairwise ?
WLAN_CRYPTO_KEY_TYPE_UNICAST :
WLAN_CRYPTO_KEY_TYPE_GROUP),
key_index);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
if (!errno && adapter->send_mode_change) {
wlan_hdd_send_mode_change_event();
adapter->send_mode_change = false;
@@ -17611,7 +17612,7 @@ static int __wlan_hdd_cfg80211_add_key(struct wiphy *wiphy,
return sme_add_key_krk(mac_handle, adapter->vdev_id,
params->key, params->key_len);
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
if (!pairwise && ((adapter->device_mode == QDF_STA_MODE) ||
@@ -17629,7 +17630,7 @@ static int __wlan_hdd_cfg80211_add_key(struct wiphy *wiphy,
WLAN_CRYPTO_KEY_TYPE_UNICAST :
WLAN_CRYPTO_KEY_TYPE_GROUP),
mac_address.bytes, params);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
if (errno)
return errno;
cipher = osif_nl_to_crypto_cipher_type(params->cipher);
@@ -17907,7 +17908,7 @@ static int __wlan_hdd_cfg80211_set_default_key(struct wiphy *wiphy,
if (0 != ret)
return ret;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
@@ -17949,7 +17950,7 @@ static int __wlan_hdd_cfg80211_set_default_key(struct wiphy *wiphy,
}
out:
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return ret;
}
@@ -19736,7 +19737,7 @@ static void hdd_set_wapi_crypto_key_mgmt_param(struct hdd_adapter *adapter)
return;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return;
@@ -19757,7 +19758,7 @@ static void hdd_set_wapi_crypto_key_mgmt_param(struct hdd_adapter *adapter)
set_val);
wlan_crypto_set_vdev_param(vdev, WLAN_CRYPTO_PARAM_MCAST_CIPHER,
set_val);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
}
#endif
@@ -20181,7 +20182,7 @@ static int wlan_hdd_cfg80211_set_privacy(struct hdd_adapter *adapter,
roam_profile = hdd_roam_profile(adapter);
/* populate auth,akm and cipher params for crypto */
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
hdd_populate_crypto_params(vdev, req);
@@ -20272,7 +20273,7 @@ static int wlan_hdd_cfg80211_set_privacy(struct hdd_adapter *adapter,
}
}
release_vdev_ref:
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return status;
}
@@ -21120,7 +21121,7 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
break;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
if (ucfg_scan_get_vdev_status(vdev) != SCAN_NOT_IN_PROGRESS)
@@ -21132,7 +21133,7 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
/* First clean up the tdls peers if any */
hdd_notify_sta_disconnect(adapter->vdev_id,
false, true, vdev);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
hdd_nofl_info("%s(vdevid-%d): Received Disconnect reason:%d %s",
dev->name, adapter->vdev_id, reason,
@@ -21784,11 +21785,13 @@ static int __wlan_hdd_cfg80211_add_station(struct wiphy *wiphy,
if (set & BIT(NL80211_STA_FLAG_TDLS_PEER)) {
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter,
WLAN_OSIF_TDLS_ID);
if (vdev) {
status = wlan_cfg80211_tdls_add_peer(vdev,
mac);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev,
WLAN_OSIF_TDLS_ID);
}
}
}
@@ -21849,13 +21852,13 @@ static QDF_STATUS wlan_hdd_set_pmksa_cache(struct hdd_adapter *adapter,
return QDF_STATUS_E_INVAL;
mac_handle = hdd_ctx->mac_handle;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return QDF_STATUS_E_FAILURE;
pmksa = qdf_mem_malloc(sizeof(*pmksa));
if (!pmksa) {
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return QDF_STATUS_E_NOMEM;
}
@@ -21881,7 +21884,7 @@ static QDF_STATUS wlan_hdd_set_pmksa_cache(struct hdd_adapter *adapter,
sme_roam_set_psk_pmk(mac_handle, adapter->vdev_id,
pmk_cache->pmk, pmk_cache->pmk_len,
false);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return result;
}
@@ -21893,13 +21896,13 @@ static QDF_STATUS wlan_hdd_del_pmksa_cache(struct hdd_adapter *adapter,
struct wlan_crypto_pmksa pmksa;
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return QDF_STATUS_E_FAILURE;
qdf_copy_macaddr(&pmksa.bssid, &pmk_cache->BSSID);
result = wlan_crypto_set_del_pmksa(vdev, &pmksa, false);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return result;
}
@@ -21909,12 +21912,12 @@ QDF_STATUS wlan_hdd_flush_pmksa_cache(struct hdd_adapter *adapter)
QDF_STATUS result;
struct wlan_objmgr_vdev *vdev;
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return QDF_STATUS_E_FAILURE;
result = wlan_crypto_set_del_pmksa(vdev, NULL, false);
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
return result;
}
@@ -24234,7 +24237,7 @@ static int __wlan_hdd_cfg80211_get_channel(struct wiphy *wiphy,
return -EINVAL;
}
vdev = hdd_objmgr_get_vdev(adapter);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
if (!vdev)
return -EINVAL;
@@ -24276,7 +24279,7 @@ static int __wlan_hdd_cfg80211_get_channel(struct wiphy *wiphy,
break;
}
hdd_objmgr_put_vdev(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
hdd_debug("primary_freq:%d, ch_width:%d, center_freq1:%d, center_freq2:%d",
chan_freq, chandef->width, chandef->center_freq1,
chandef->center_freq2);