qcacmn: store peer_id instead of peer_ids array in dp_peer

In lithium a peer will have only single peer_id hence remove
peer_ids array from dp_peer structure

Change-Id: Ib98270b7fd98f1199b862e4608f990687914b7cc
This commit is contained in:
Chaithanya Garrepalli
2020-05-21 21:44:44 +05:30
committed by nshrivas
parent b404458d20
commit 1d144f88bd
8 changed files with 39 additions and 52 deletions

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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