qcacmn: remove peer backpointer in DP ast entry
Remove the peer backpointer in ast entry and store peer_id instead Assign peer_id in AST entry in AST MAP event, also add the ast entry to peers ast list In AST map & AST unmap APIs use ast find by vdev_id Change-Id: I74d9828dc309149d98f6f577b5c8304cb087fd76
This commit is contained in:

committed by
snandini

parent
fdc6a808ae
commit
f4701f13ec
@@ -567,7 +567,9 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
{
|
||||
uint16_t len;
|
||||
uint8_t is_frag;
|
||||
struct dp_peer *da_peer;
|
||||
uint16_t da_peer_id = HTT_INVALID_PEER;
|
||||
struct dp_peer *da_peer = NULL;
|
||||
bool is_da_bss_peer = false;
|
||||
struct dp_ast_entry *ast_entry;
|
||||
qdf_nbuf_t nbuf_copy;
|
||||
uint8_t tid = qdf_nbuf_get_tid_val(nbuf);
|
||||
@@ -591,18 +593,28 @@ dp_rx_intrabss_fwd(struct dp_soc *soc,
|
||||
return false;
|
||||
}
|
||||
|
||||
da_peer = ast_entry->peer;
|
||||
da_peer_id = ast_entry->peer_id;
|
||||
|
||||
if (!da_peer)
|
||||
if (da_peer_id == HTT_INVALID_PEER)
|
||||
return false;
|
||||
/* TA peer cannot be same as peer(DA) on which AST is present
|
||||
* this indicates a change in topology and that AST entries
|
||||
* are yet to be updated.
|
||||
*/
|
||||
if (da_peer == ta_peer)
|
||||
if (da_peer_id == ta_peer->peer_id)
|
||||
return false;
|
||||
|
||||
if (da_peer->vdev == ta_peer->vdev && !da_peer->bss_peer) {
|
||||
if (ast_entry->vdev_id != ta_peer->vdev->vdev_id)
|
||||
return false;
|
||||
|
||||
da_peer = dp_peer_get_ref_by_id(soc, da_peer_id,
|
||||
DP_MOD_ID_RX);
|
||||
if (!da_peer)
|
||||
return false;
|
||||
is_da_bss_peer = da_peer->bss_peer;
|
||||
dp_peer_unref_delete(da_peer, DP_MOD_ID_RX);
|
||||
|
||||
if (!is_da_bss_peer) {
|
||||
len = QDF_NBUF_CB_RX_PKT_LEN(nbuf);
|
||||
is_frag = qdf_nbuf_is_frag(nbuf);
|
||||
memset(nbuf->cb, 0x0, sizeof(nbuf->cb));
|
||||
|
Reference in New Issue
Block a user