qcacmn: add locks in dp_get_vdev_from_soc_vdev_id_wifi3 API
In dp_get_vdev_from_soc_vdev_id_wifi3 add vdev list lock while traversing through pdev->vdev_list Change-Id: I24652a7a65247625b3a6da092476287bf8560e1b CRs-fixed: 2323655
This commit is contained in:

committed by
nshrivas

parent
20b46778a7
commit
3ba616a89a
@@ -1885,6 +1885,8 @@ static void dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
|
|||||||
vdev =
|
vdev =
|
||||||
dp_get_vdev_from_soc_vdev_id_wifi3(pdev->soc,
|
dp_get_vdev_from_soc_vdev_id_wifi3(pdev->soc,
|
||||||
ppdu_desc->vdev_id);
|
ppdu_desc->vdev_id);
|
||||||
|
if (!vdev)
|
||||||
|
return;
|
||||||
qdf_mem_copy(ppdu_user_desc->mac_addr, vdev->mac_addr.raw,
|
qdf_mem_copy(ppdu_user_desc->mac_addr, vdev->mac_addr.raw,
|
||||||
DP_MAC_ADDR_LEN);
|
DP_MAC_ADDR_LEN);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -173,15 +173,18 @@ dp_get_vdev_from_soc_vdev_id_wifi3(struct dp_soc *soc,
|
|||||||
|
|
||||||
for (i = 0; i < MAX_PDEV_CNT && soc->pdev_list[i]; i++) {
|
for (i = 0; i < MAX_PDEV_CNT && soc->pdev_list[i]; i++) {
|
||||||
pdev = soc->pdev_list[i];
|
pdev = soc->pdev_list[i];
|
||||||
|
qdf_spin_lock_bh(&pdev->vdev_list_lock);
|
||||||
TAILQ_FOREACH(vdev, &pdev->vdev_list, vdev_list_elem) {
|
TAILQ_FOREACH(vdev, &pdev->vdev_list, vdev_list_elem) {
|
||||||
if (vdev->vdev_id == vdev_id) {
|
if (vdev->vdev_id == vdev_id) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP,
|
QDF_TRACE(QDF_MODULE_ID_DP,
|
||||||
QDF_TRACE_LEVEL_INFO,
|
QDF_TRACE_LEVEL_INFO,
|
||||||
FL("Found vdev 0x%pK on pdev %d"),
|
FL("Found vdev 0x%pK on pdev %d"),
|
||||||
vdev, i);
|
vdev, i);
|
||||||
|
qdf_spin_unlock_bh(&pdev->vdev_list_lock);
|
||||||
return vdev;
|
return vdev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
qdf_spin_unlock_bh(&pdev->vdev_list_lock);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user