diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 1e17c456e4..df060c8a0a 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1303,7 +1303,8 @@ dp_rx_process(struct dp_intr *int_ctx, void *hal_ring, uint32_t quota) qdf_nbuf_t nbuf, next; union dp_rx_desc_list_elem_t *head[MAX_PDEV_CNT] = { NULL }; union dp_rx_desc_list_elem_t *tail[MAX_PDEV_CNT] = { NULL }; - uint32_t rx_bufs_used = 0, rx_buf_cookie, l2_hdr_offset; + uint32_t rx_bufs_used = 0, rx_buf_cookie; + uint32_t l2_hdr_offset = 0; uint16_t msdu_len; uint16_t peer_id; struct dp_peer *peer = NULL; @@ -1580,8 +1581,12 @@ done: FL("rxhash: flow id toeplitz: 0x%x\n"), hal_rx_msdu_start_toeplitz_get(rx_tlv_hdr)); - l2_hdr_offset = - hal_rx_msdu_end_l3_hdr_padding_get(rx_tlv_hdr); + /*L2 header offset will not be set in raw mode*/ + if (qdf_likely(vdev->rx_decap_type != + htt_cmn_pkt_type_raw)) { + l2_hdr_offset = + hal_rx_msdu_end_l3_hdr_padding_get(rx_tlv_hdr); + } msdu_len = hal_rx_msdu_start_msdu_len_get(rx_tlv_hdr); pkt_len = msdu_len + l2_hdr_offset + RX_PKT_TLVS_LEN;