qcacmn: dp_rx_null_q_desc_handle: drop if msdu_len > RX_BUFFER_SIZE
In some cases, the msdu_len as retrieved fromm msdu_start TLV is greater than RX_BUFFER_SIZE. In such cases, when qdf_nbuf_set_pktlen is called, it will expand the skb to accommodate the bigger packet. This makes the rx_tlv_hdr var invalid, since it continues to point to the older skb->data. Access of this rx_tlv_hdr will cause exception. Drop the packet if msdu_len > RX_BUFFER_SIZE. This is not expected while reaping WBM RX Release ring. Change-Id: I60890e4d3ee0afa451884d4df458eb50be280280 CRs-Fixed: 2426245
This commit is contained in:
@@ -8904,12 +8904,14 @@ static void dp_txrx_path_stats(struct dp_soc *soc)
|
||||
"raw packets %u msdus ( %llu bytes),",
|
||||
pdev->stats.rx.raw.num,
|
||||
pdev->stats.rx.raw.bytes);
|
||||
DP_TRACE_STATS(INFO_HIGH, "dropped: error %u msdus",
|
||||
DP_TRACE_STATS(INFO_HIGH, "mic errors %u",
|
||||
pdev->stats.rx.err.mic_err);
|
||||
DP_TRACE_STATS(INFO_HIGH, "Invalid peer on rx path: %u",
|
||||
pdev->soc->stats.rx.err.rx_invalid_peer.num);
|
||||
DP_TRACE_STATS(INFO_HIGH, "sw_peer_id invalid %u",
|
||||
pdev->soc->stats.rx.err.rx_invalid_peer_id.num);
|
||||
DP_TRACE_STATS(INFO_HIGH, "packet_len invalid %u",
|
||||
pdev->soc->stats.rx.err.rx_invalid_pkt_len.num);
|
||||
|
||||
|
||||
DP_TRACE_STATS(INFO_HIGH, "Reo Statistics");
|
||||
|
Reference in New Issue
Block a user