|
@@ -395,12 +395,14 @@ struct hdd_ll_stats {
|
|
|
* @request_id: userspace-assigned link layer stats request id
|
|
|
* @request_bitmap: userspace-assigned link layer stats request bitmap
|
|
|
* @ll_stats_lock: Lock to serially access request_bitmap
|
|
|
+ * @vdev_id: id of vdev handle
|
|
|
*/
|
|
|
struct hdd_ll_stats_priv {
|
|
|
qdf_list_t ll_stats_q;
|
|
|
uint32_t request_id;
|
|
|
uint32_t request_bitmap;
|
|
|
qdf_spinlock_t ll_stats_lock;
|
|
|
+ uint8_t vdev_id;
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -1457,15 +1459,6 @@ void wlan_hdd_cfg80211_link_layer_stats_callback(hdd_handle_t hdd_handle,
|
|
|
if (status)
|
|
|
return;
|
|
|
|
|
|
- adapter = hdd_get_adapter_by_vdev(hdd_ctx,
|
|
|
- results->ifaceId);
|
|
|
-
|
|
|
- if (!adapter) {
|
|
|
- hdd_err("vdev_id %d does not exist with host",
|
|
|
- results->ifaceId);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
switch (indication_type) {
|
|
|
case SIR_HAL_LL_STATS_RESULTS_RSP:
|
|
|
{
|
|
@@ -1491,6 +1484,12 @@ void wlan_hdd_cfg80211_link_layer_stats_callback(hdd_handle_t hdd_handle,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ adapter = hdd_get_adapter_by_vdev(hdd_ctx, priv->vdev_id);
|
|
|
+ if (!adapter) {
|
|
|
+ hdd_err("invalid vdev %d", priv->vdev_id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (results->rspId == DEBUGFS_LLSTATS_REQID) {
|
|
|
hdd_debugfs_process_ll_stats(adapter, results, request);
|
|
|
} else {
|
|
@@ -1951,6 +1950,7 @@ static int wlan_hdd_send_ll_stats_req(struct hdd_adapter *adapter,
|
|
|
|
|
|
priv->request_id = req->reqId;
|
|
|
priv->request_bitmap = req->paramIdMask;
|
|
|
+ priv->vdev_id = adapter->vdev_id;
|
|
|
qdf_spinlock_create(&priv->ll_stats_lock);
|
|
|
qdf_list_create(&priv->ll_stats_q, HDD_LINK_STATS_MAX);
|
|
|
|