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:

committed by
nshrivas

parent
b404458d20
commit
1d144f88bd
@@ -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 (peer->peer_id != HTT_INVALID_PEER)
|
||||
if (j < soc->max_peers)
|
||||
peer_ids[j++] = peer->peer_ids[i];
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@@ -152,14 +152,11 @@ 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;
|
||||
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
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user