diff --git a/dp/inc/dp_rate_stats.h b/dp/inc/dp_rate_stats.h index 071a85532a..2ad73947bc 100644 --- a/dp/inc/dp_rate_stats.h +++ b/dp/inc/dp_rate_stats.h @@ -77,7 +77,7 @@ struct wlan_peer_rx_rate_stats { * @rx: rx rate statistics * @mac_addr: peer MAC address * @peer_cookie: cookie for unique session of peer - * @pdev: dp pdev + * @pdev_id: id of dp pdev */ struct wlan_peer_rate_stats_ctx { struct wlan_peer_tx_rate_stats tx; @@ -85,6 +85,7 @@ struct wlan_peer_rate_stats_ctx { uint8_t mac_addr[WLAN_MAC_ADDR_LEN]; uint64_t peer_cookie; struct cdp_pdev *pdev; + uint8_t pdev_id; }; /** diff --git a/dp/src/dp_rate_stats.c b/dp/src/dp_rate_stats.c index 8f90caa8f6..a0615e25c8 100644 --- a/dp/src/dp_rate_stats.c +++ b/dp/src/dp_rate_stats.c @@ -75,7 +75,7 @@ wlan_peer_flush_rx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, WLANSTATS_COOKIE_PEER_COOKIE_OFFSET))); qdf_mem_copy(buf.peer_mac, stats_ctx->mac_addr, WLAN_MAC_ADDR_LEN); cdp_peer_flush_rate_stats(soc_stats_ctx->soc, - stats_ctx->pdev, &buf); + stats_ctx->pdev_id, &buf); soc_stats_ctx->rxs_cache_flush++; qdf_info("rxs_cache_flush: %d", soc_stats_ctx->rxs_cache_flush); @@ -118,7 +118,7 @@ wlan_peer_flush_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, wlan_peer_read_sojourn_average(tx_stats); qdf_mem_copy(buf.peer_mac, stats_ctx->mac_addr, WLAN_MAC_ADDR_LEN); cdp_peer_flush_rate_stats(soc_stats_ctx->soc, - stats_ctx->pdev, &buf); + stats_ctx->pdev_id, &buf); soc_stats_ctx->txs_cache_flush++; qdf_info("txs_cache_flush: %d", soc_stats_ctx->txs_cache_flush); @@ -469,7 +469,7 @@ void wlan_peer_create_event_handler(void *pdev, enum WDI_EVENT event, RATE_STATS_LOCK_CREATE(&stats->rx.lock); qdf_mem_copy(stats->mac_addr, peer_info->mac_addr, QDF_MAC_ADDR_SIZE); stats->peer_cookie = peer_info->cookie; - stats->pdev = pdev; + stats->pdev_id = peer_info->pdev_id; for (idx = 0; idx < WLANSTATS_CACHE_SIZE; idx++) { stats->tx.stats[idx].rix = INVALID_CACHE_IDX; diff --git a/dp/wifi3.0/dp_txrx_wds.c b/dp/wifi3.0/dp_txrx_wds.c index c610026200..c7bc2f35fd 100644 --- a/dp/wifi3.0/dp_txrx_wds.c +++ b/dp/wifi3.0/dp_txrx_wds.c @@ -723,18 +723,21 @@ void dp_peer_set_vlan_id(struct cdp_soc_t *cdp_soc, /** * dp_set_vlan_groupkey: set vlan map for vdev - * @vdev_handle: pointer to vdev + * @soc: pointer to soc + * @vdev_id : id of vdev * @vlan_id: vlan_id * @group_key: group key for vlan * * return: set success/failure */ -QDF_STATUS dp_set_vlan_groupkey(struct cdp_vdev *vdev_handle, +QDF_STATUS dp_set_vlan_groupkey(struct cdp_soc_t *soc, uint8_t vdev_id, uint16_t vlan_id, uint16_t group_key) { - struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle; + struct dp_vdev *vdev = + dp_get_vdev_from_soc_vdev_id_wifi3((struct dp_soc *)soc, + vdev_id); - if (!vdev->multipass_en) + if (!vdev || !vdev->multipass_en) return QDF_STATUS_E_INVAL; if (!vdev->iv_vlan_map) {