diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 6c0c715168..ac9af0a3d4 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -859,7 +859,7 @@ static bool dp_peer_get_ast_info_by_soc_wifi3 ast_entry_info->type = ast_entry->type; ast_entry_info->pdev_id = ast_entry->pdev_id; ast_entry_info->vdev_id = ast_entry->peer->vdev->vdev_id; - ast_entry_info->peer_id = ast_entry->peer->peer_ids[0]; + ast_entry_info->peer_id = ast_entry->peer->peer_id; qdf_mem_copy(&ast_entry_info->peer_mac_addr[0], &ast_entry->peer->mac_addr.raw[0], QDF_MAC_ADDR_SIZE); @@ -904,7 +904,7 @@ static bool dp_peer_get_ast_info_by_pdevid_wifi3 ast_entry_info->type = ast_entry->type; ast_entry_info->pdev_id = ast_entry->pdev_id; ast_entry_info->vdev_id = ast_entry->peer->vdev->vdev_id; - ast_entry_info->peer_id = ast_entry->peer->peer_ids[0]; + ast_entry_info->peer_id = ast_entry->peer->peer_id; qdf_mem_copy(&ast_entry_info->peer_mac_addr[0], &ast_entry->peer->mac_addr.raw[0], QDF_MAC_ADDR_SIZE); @@ -1236,7 +1236,7 @@ void dp_print_ast_stats(struct dp_soc *soc) ++num_entries, ase->mac_addr.raw, ase->peer->mac_addr.raw, - ase->peer->peer_ids[0], + ase->peer->peer_id, type[ase->type], ase->next_hop, ase->is_active, @@ -1291,7 +1291,7 @@ static void dp_print_peer_table(struct dp_vdev *vdev) peer->tx_cap_enabled, peer->rx_cap_enabled, peer->delete_in_progress, - peer->peer_ids[0]); + peer->peer_id); } } @@ -4859,7 +4859,7 @@ static void dp_vdev_flush_peers(struct cdp_vdev *vdev_handle, bool unmap_only) uint8_t i = 0, j = 0; uint8_t m = 0, n = 0; - peer_ids = qdf_mem_malloc(soc->max_peers * sizeof(peer_ids[0])); + peer_ids = qdf_mem_malloc(soc->max_peers * sizeof(*peer_ids)); if (!peer_ids) { dp_err("DP alloc failure - unable to flush peers"); return; @@ -4880,10 +4880,9 @@ static void dp_vdev_flush_peers(struct cdp_vdev *vdev_handle, bool unmap_only) if (!unmap_only && n < soc->max_peers) peer_array[n++] = peer; - for (i = 0; i < MAX_NUM_PEER_ID_PER_PEER; i++) - if (peer->peer_ids[i] != HTT_INVALID_PEER) - if (j < soc->max_peers) - peer_ids[j++] = peer->peer_ids[i]; + if (peer->peer_id != HTT_INVALID_PEER) + if (j < soc->max_peers) + peer_ids[j++] = peer->peer_id; } qdf_spin_unlock_bh(&soc->peer_ref_mutex); @@ -5274,8 +5273,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, &peer->mac_addr.raw[0], peer_mac_addr, QDF_MAC_ADDR_SIZE); /* initialize the peer_id */ - for (i = 0; i < MAX_NUM_PEER_ID_PER_PEER; i++) - peer->peer_ids[i] = HTT_INVALID_PEER; + peer->peer_id = HTT_INVALID_PEER; /* reset the ast index to flowid table */ dp_peer_reset_flowq_map(peer); @@ -5337,7 +5335,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, #if defined(FEATURE_PERPKT_INFO) && WDI_EVENT_ENABLE dp_wdi_event_handler(WDI_EVENT_PEER_CREATE, pdev->soc, (void *)&peer_cookie, - peer->peer_ids[0], WDI_NO_VAL, pdev->pdev_id); + peer->peer_id, WDI_NO_VAL, pdev->pdev_id); #endif if (soc->wlanstats_enabled) { if (!peer_cookie.ctx) { @@ -6021,7 +6019,7 @@ void dp_peer_unref_delete(struct dp_peer *peer) */ qdf_spin_lock_bh(&soc->peer_ref_mutex); if (qdf_atomic_dec_and_test(&peer->ref_cnt)) { - peer_id = peer->peer_ids[0]; + peer_id = peer->peer_id; vdev_id = vdev->vdev_id; /* @@ -6070,7 +6068,7 @@ void dp_peer_unref_delete(struct dp_peer *peer) dp_wdi_event_handler(WDI_EVENT_PEER_DESTROY, pdev->soc, (void *)&peer_cookie, - peer->peer_ids[0], + peer->peer_id, WDI_NO_VAL, pdev->pdev_id); #endif @@ -7066,7 +7064,7 @@ dp_txrx_host_stats_clr(struct dp_vdev *vdev) #if defined(FEATURE_PERPKT_INFO) && WDI_EVENT_ENABLE dp_wdi_event_handler(WDI_EVENT_UPDATE_DP_STATS, vdev->pdev->soc, - &peer->stats, peer->peer_ids[0], + &peer->stats, peer->peer_id, UPDATE_PEER_STATS, vdev->pdev->pdev_id); #endif } @@ -9421,7 +9419,7 @@ static QDF_STATUS dp_flush_rate_stats_req(struct cdp_soc_t *soc_hdl, dp_wdi_event_handler( WDI_EVENT_FLUSH_RATE_STATS_REQ, soc, peer->wlanstats_ctx, - peer->peer_ids[0], + peer->peer_id, WDI_NO_VAL, pdev_id); } } diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index 2cfe240b5a..91db7bf1c6 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/dp/wifi3.0/dp_peer.c @@ -152,13 +152,10 @@ static int dp_peer_find_add_id_to_obj( struct dp_peer *peer, uint16_t peer_id) { - int i; - for (i = 0; i < MAX_NUM_PEER_ID_PER_PEER; i++) { - if (peer->peer_ids[i] == HTT_INVALID_PEER) { - peer->peer_ids[i] = peer_id; - return 0; /* success */ - } + if (peer->peer_id == HTT_INVALID_PEER) { + peer->peer_id = peer_id; + return 0; /* success */ } return QDF_STATUS_E_FAILURE; /* failure */ } @@ -533,7 +530,7 @@ static inline void dp_peer_map_ast(struct dp_soc *soc, if (ast_entry || (peer->vdev && peer->vdev->proxysta_vdev)) { if (soc->cdp_soc.ol_ops->peer_map_event) { soc->cdp_soc.ol_ops->peer_map_event( - soc->ctrl_psoc, peer->peer_ids[0], + soc->ctrl_psoc, peer->peer_id, hw_peer_id, vdev_id, mac_addr, peer_type, ast_hash); } @@ -849,7 +846,7 @@ add_ast_entry: soc->ctrl_psoc, peer->vdev->vdev_id, peer->mac_addr.raw, - peer->peer_ids[0], + peer->peer_id, mac_addr, next_node_mac, flags, @@ -1607,7 +1604,7 @@ static inline struct dp_peer *dp_peer_find_add_id(struct dp_soc *soc, /* TBDXXX: assert for now */ QDF_ASSERT(0); } else { - dp_peer_tid_peer_id_update(peer, peer->peer_ids[0]); + dp_peer_tid_peer_id_update(peer, peer->peer_id); } return peer; @@ -1668,7 +1665,7 @@ dp_rx_peer_map_handler(struct dp_soc *soc, uint16_t peer_id, return; dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u", - peer, peer->peer_ids[0], + peer, peer->peer_id, peer->mac_addr.raw, peer_mac_addr, vdev_id, is_wds); @@ -1750,7 +1747,6 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id, uint8_t is_wds, uint32_t free_wds_count) { struct dp_peer *peer; - uint8_t i; peer = __dp_peer_find_by_id(soc, peer_id); @@ -1771,7 +1767,7 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id, return; dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u", - peer, peer->peer_ids[0], + peer, peer->peer_id, peer->mac_addr.raw, mac_addr, vdev_id, is_wds); @@ -1784,12 +1780,7 @@ dp_rx_peer_unmap_handler(struct dp_soc *soc, uint16_t peer_id, soc, peer_id, peer); soc->peer_id_to_obj_map[peer_id] = NULL; - for (i = 0; i < MAX_NUM_PEER_ID_PER_PEER; i++) { - if (peer->peer_ids[i] == peer_id) { - peer->peer_ids[i] = HTT_INVALID_PEER; - break; - } - } + peer->peer_id = HTT_INVALID_PEER; /* * Reset ast flow mapping table diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index d90a90397f..b24cf5d989 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1647,7 +1647,7 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc, return; dp_wdi_event_handler(WDI_EVENT_UPDATE_DP_STATS, vdev->pdev->soc, - &peer->stats, peer->peer_ids[0], + &peer->stats, peer->peer_id, UPDATE_PEER_STATS, vdev->pdev->pdev_id); #endif diff --git a/dp/wifi3.0/dp_rx_defrag.c b/dp/wifi3.0/dp_rx_defrag.c index 42b2e54602..40518f2727 100644 --- a/dp/wifi3.0/dp_rx_defrag.c +++ b/dp/wifi3.0/dp_rx_defrag.c @@ -212,7 +212,7 @@ void dp_rx_defrag_waitlist_flush(struct dp_soc *soc) rx_tid[rx_reorder->tid]); qdf_spin_unlock_bh(&rx_reorder->tid_lock); - temp_peer = dp_peer_find_by_id(soc, peer->peer_ids[0]); + temp_peer = dp_peer_find_by_id(soc, peer->peer_id); if (temp_peer == peer) { qdf_spin_lock_bh(&rx_reorder->tid_lock); dp_rx_reorder_flush_frag(peer, rx_reorder->tid); @@ -1781,7 +1781,7 @@ QDF_STATUS dp_rx_defrag_add_last_frag(struct dp_soc *soc, if (!rx_reorder_array_elem) { dp_verbose_debug( "peer id:%d mac: %pM drop rx frame!", - peer->peer_ids[0], + peer->peer_id, peer->mac_addr.raw); DP_STATS_INC(soc, rx.err.defrag_peer_uninit, 1); qdf_nbuf_free(nbuf); diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index 5346c0b821..594519a964 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -224,7 +224,7 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev, } peer = ast_entry->peer; - if (!peer || peer->peer_ids[0] == HTT_INVALID_PEER) { + if (!peer || peer->peer_id == HTT_INVALID_PEER) { rx_stats_peruser->peer_id = HTT_INVALID_PEER; continue; } @@ -279,7 +279,7 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev, qdf_mem_copy(rx_stats_peruser->mac_addr, peer->mac_addr.raw, QDF_MAC_ADDR_SIZE); - rx_stats_peruser->peer_id = peer->peer_ids[0]; + rx_stats_peruser->peer_id = peer->peer_id; cdp_rx_ppdu->vdev_id = peer->vdev->vdev_id; rx_stats_peruser->vdev_id = peer->vdev->vdev_id; rx_stats_peruser->mu_ul_info_valid = 0; @@ -376,7 +376,7 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev, goto end; } peer = ast_entry->peer; - if (!peer || peer->peer_ids[0] == HTT_INVALID_PEER) { + if (!peer || peer->peer_id == HTT_INVALID_PEER) { cdp_rx_ppdu->peer_id = HTT_INVALID_PEER; cdp_rx_ppdu->num_users = 0; goto end; @@ -384,7 +384,7 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev, qdf_mem_copy(cdp_rx_ppdu->mac_addr, peer->mac_addr.raw, QDF_MAC_ADDR_SIZE); - cdp_rx_ppdu->peer_id = peer->peer_ids[0]; + cdp_rx_ppdu->peer_id = peer->peer_id; cdp_rx_ppdu->vdev_id = peer->vdev->vdev_id; cdp_rx_ppdu->ppdu_id = ppdu_info->com_info.ppdu_id; @@ -1080,7 +1080,7 @@ dp_rx_mon_handle_cfr_mu_info(struct dp_pdev *pdev, } peer = ast_entry->peer; - if (!peer || peer->peer_ids[0] == HTT_INVALID_PEER) { + if (!peer || peer->peer_id == HTT_INVALID_PEER) { rx_stats_peruser->peer_id = HTT_INVALID_PEER; continue; } @@ -1456,12 +1456,12 @@ dp_rx_process_peer_based_pktlog(struct dp_soc *soc, ast_entry = soc->ast_table[ast_index]; if (ast_entry) { peer = ast_entry->peer; - if (peer && (peer->peer_ids[0] != HTT_INVALID_PEER)) { + if (peer && (peer->peer_id != HTT_INVALID_PEER)) { if (peer->peer_based_pktlog_filter) { dp_wdi_event_handler( WDI_EVENT_RX_DESC, soc, status_nbuf, - peer->peer_ids[0], + peer->peer_id, WDI_NO_VAL, mac_id); } } diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 3a9d958ca1..2be6991169 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -1662,8 +1662,8 @@ int dp_tx_frame_is_drop(struct dp_vdev *vdev, uint8_t *srcmac, uint8_t *dstmac) src_ast_entry = dp_peer_ast_hash_find_by_pdevid (soc, srcmac, vdev->pdev->pdev_id); if (dst_ast_entry && src_ast_entry) { - if (dst_ast_entry->peer->peer_ids[0] == - src_ast_entry->peer->peer_ids[0]) + if (dst_ast_entry->peer->peer_id == + src_ast_entry->peer->peer_id) return 1; } @@ -2396,7 +2396,7 @@ void dp_tx_nawds_handler(struct cdp_soc_t *soc, struct dp_vdev *vdev, qdf_spin_lock_bh(&dp_soc->peer_ref_mutex); TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) { if (!peer->bss_peer && peer->nawds_enabled) { - peer_id = peer->peer_ids[0]; + peer_id = peer->peer_id; /* Multicast packets needs to be * dropped in case of intra bss forwarding */ @@ -2676,7 +2676,7 @@ void dp_tx_reinject_handler(struct dp_tx_desc_s *tx_desc, uint8_t *status) DP_TX_FREE_SINGLE_BUF(vdev->pdev->soc, tx_desc->nbuf); } else { TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) { - if ((peer->peer_ids[0] != HTT_INVALID_PEER) && + if ((peer->peer_id != HTT_INVALID_PEER) && #ifdef WDS_VENDOR_EXTENSION /* * . if 3-addr STA, then send on BSS Peer diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 252ae5d7b4..eaca595e36 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -2208,9 +2208,8 @@ struct dp_peer { qdf_atomic_t ref_cnt; - /* TODO: See if multiple peer IDs are required in wifi3.0 */ - /* peer ID(s) for this peer */ - uint16_t peer_ids[MAX_NUM_PEER_ID_PER_PEER]; + /* peer ID for this peer */ + uint16_t peer_id; union dp_align_mac_addr mac_addr; diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h index a941b01574..7e6cbc4ddf 100644 --- a/wlan_cfg/wlan_cfg.h +++ b/wlan_cfg/wlan_cfg.h @@ -75,7 +75,6 @@ #define MAX_IDLE_SCATTER_BUFS 16 #define DP_MAX_IRQ_PER_CONTEXT 12 #define MAX_HTT_METADATA_LEN 32 -#define MAX_NUM_PEER_ID_PER_PEER 8 #define DP_MAX_TIDS 17 #define DP_NON_QOS_TID 16 #define DP_NULL_DATA_TID 17