qcacmn: Avoid wdi events for bss peer

As the bss peer is closely tied with the vdev creation
and deletion, listeners might be uninitialized and result
race conditions. send an event only to the connected peers.

Change-Id: Ia0ae063c92bba38d2fb67fe4eae84f5562991fa2
CRs-Fixed: 3574176
Šī revīzija ir iekļauta:
Sai Rupesh Chevuru
2023-07-28 12:48:42 +05:30
revīziju iesūtīja Rahul Choudhary
vecāks f8d1f8ac6f
revīzija 7157add22c
2 mainīti faili ar 11 papildinājumiem un 6 dzēšanām

Parādīt failu

@@ -3245,7 +3245,7 @@ struct cdp_pdev_attach_params {
* @pdev_id: PDEV ID
*/
struct cdp_txrx_peer_params_update {
uint8_t vdev_id;
uint8_t vdev_id;
uint8_t *peer_mac;
uint8_t chip_id;
uint8_t pdev_id;

Parādīt failu

@@ -4591,12 +4591,14 @@ static QDF_STATUS dp_txrx_peer_detach(struct dp_soc *soc, struct dp_peer *peer)
peer->txrx_peer = NULL;
pdev = txrx_peer->vdev->pdev;
params.vdev_id = peer->vdev->vdev_id;
params.peer_mac = peer->mac_addr.raw;
if (!peer->bss_peer) {
params.vdev_id = peer->vdev->vdev_id;
params.peer_mac = peer->mac_addr.raw;
dp_wdi_event_handler(WDI_EVENT_PEER_DELETE, soc,
(void *)&params, peer->peer_id,
WDI_NO_VAL, pdev->pdev_id);
dp_wdi_event_handler(WDI_EVENT_PEER_DELETE, soc,
(void *)&params, peer->peer_id,
WDI_NO_VAL, pdev->pdev_id);
}
dp_peer_defrag_rx_tids_deinit(txrx_peer);
/*
@@ -4683,6 +4685,9 @@ static QDF_STATUS dp_txrx_peer_attach(struct dp_soc *soc, struct dp_peer *peer)
dp_txrx_peer_attach_add(soc, peer, txrx_peer);
if (peer->bss_peer)
return QDF_STATUS_SUCCESS;
params.peer_mac = peer->mac_addr.raw;
params.vdev_id = peer->vdev->vdev_id;
params.chip_id = dp_mlo_get_chip_id(soc);