qcacmn: Handle scattered msdu in OOR error scenario

In OOR error handling scenario, msdu is spread across
two nbufs. Due to this, there is a mismatch between
msdu count fetched from MPDU desc detatils and count
fetched from rx link descriptor.

Fix is to create frag list for the case where msdu
is spread across multiple nbufs.

Change-Id: I1d600a0988b373e68aad6ef815fb2d775763b7cb
CRs-Fixed: 2665963
This commit is contained in:
Yeshwanth Sriram Guntuka
2020-04-21 22:23:01 +05:30
committed by nshrivas
vanhempi 4c6b5c6f69
commit 7dad533e6c
4 muutettua tiedostoa jossa 77 lisäystä ja 28 poistoa

Näytä tiedosto

@@ -172,6 +172,7 @@ bool dp_rx_is_special_frame(qdf_nbuf_t nbuf, uint32_t frame_mask)
* @peer: pointer to DP peer
* @nbuf: pointer to the skb of RX frame
* @frame_mask: the mask for speical frame needed
* @rx_tlv_hdr: start of rx tlv header
*
* note: Msdu_len must have been stored in QDF_NBUF_CB_RX_PKT_LEN(nbuf) and
* single nbuf is expected.
@@ -179,7 +180,8 @@ bool dp_rx_is_special_frame(qdf_nbuf_t nbuf, uint32_t frame_mask)
* return: true - nbuf has been delivered to stack, false - not.
*/
bool dp_rx_deliver_special_frame(struct dp_soc *soc, struct dp_peer *peer,
qdf_nbuf_t nbuf, uint32_t frame_mask);
qdf_nbuf_t nbuf, uint32_t frame_mask,
uint8_t *rx_tlv_hdr);
#else
static inline
bool dp_rx_is_special_frame(qdf_nbuf_t nbuf, uint32_t frame_mask)
@@ -189,7 +191,8 @@ bool dp_rx_is_special_frame(qdf_nbuf_t nbuf, uint32_t frame_mask)
static inline
bool dp_rx_deliver_special_frame(struct dp_soc *soc, struct dp_peer *peer,
qdf_nbuf_t nbuf, uint32_t frame_mask)
qdf_nbuf_t nbuf, uint32_t frame_mask,
uint8_t *rx_tlv_hdr)
{
return false;
}