diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index bc5540a524..c4e2f7ea7f 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -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; diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 30450a9330..cded70c875 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -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 *)¶ms, peer->peer_id, - WDI_NO_VAL, pdev->pdev_id); + dp_wdi_event_handler(WDI_EVENT_PEER_DELETE, soc, + (void *)¶ms, 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);