From e7d51ef086cbb8d91229a4bf9fe396ee05401b76 Mon Sep 17 00:00:00 2001 From: Tallapragada Kalyan Date: Mon, 6 Feb 2017 11:58:21 +0530 Subject: [PATCH] qcacmn: restore peer meta_data across msdus of A-MSDU peer meta-data is copied across TLVs of individual MSDUs of A-MSDU, This has to be saved and used till last msdu of the MPDU. Change-Id: Id30938eebd8f98716bf9625553aea2cd774104d0 CRs-Fixed: 2002766 --- dp/wifi3.0/dp_rx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 91c4bf5f16d2..abbb4af196c0 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -210,7 +210,7 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota) struct hal_rx_mpdu_desc_info mpdu_desc_info; enum hal_reo_error_status error; uint32_t pkt_len; - uint32_t peer_mdata; + static uint32_t peer_mdata; uint8_t *rx_tlv_hdr; uint32_t rx_bufs_reaped = 0; struct dp_pdev *pdev; @@ -338,7 +338,9 @@ done: qdf_assert(0); } - peer_mdata = hal_rx_mpdu_peer_meta_data_get(rx_tlv_hdr); + if (qdf_nbuf_is_chfrag_start(nbuf)) + peer_mdata = hal_rx_mpdu_peer_meta_data_get(rx_tlv_hdr); + peer_id = DP_PEER_METADATA_PEER_ID_GET(peer_mdata); peer = dp_peer_find_by_id(soc, peer_id);