mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
qcacld-3.0: Bypass FISA if reo_destination_indication mismatch
For wow or active offload mode, FW will re-inject some RX frames to REO with reo_destination_indication 1 (REO2SW1) to REO entrance ring, but the original reo_destination_indication in RX buffer pkt_tlv is 6 (REO2FW) or other flow steering value (>=16), then REO2SW ring mismatch will happen that break FISA function in host. Bypass FISA if reo_destination_indication mismatch between REO ring descriptor and pkt TLVS. Change-Id: I8736b8a96513c2e49fe41fb460f81cb0ef01ed01 CRs-Fixed: 2807461
This commit is contained in:
parent
c9b339c5b5
commit
20985867e3
1 changed files with 7 additions and 10 deletions
|
|
@ -920,18 +920,15 @@ dp_rx_get_fisa_flow(struct dp_rx_fst *fisa_hdl, struct dp_vdev *vdev,
|
|||
return sw_ft_entry;
|
||||
|
||||
rx_tlv_hdr = qdf_nbuf_data(nbuf);
|
||||
/*
|
||||
* Get reo_destination_indication from RX_PKT_TLV-->msdu_end,
|
||||
* if reo_destination_indication == 6, it means this frame is
|
||||
* reinjected by FW offload module, these frames should not go to FISA
|
||||
* since REO2SW1 will be selected by FW offload module. If same flow
|
||||
* frames hash select other REO2SW rings, same flow UDP frames will go
|
||||
* to different REO2SW ring.
|
||||
*/
|
||||
hal_rx_msdu_get_reo_destination_indication(hal_soc_hdl, rx_tlv_hdr,
|
||||
&reo_destination_indication);
|
||||
|
||||
if (qdf_unlikely(reo_destination_indication == REO_DESTINATION_FW))
|
||||
/*
|
||||
* Compare reo_destination_indication between reo ring descriptor
|
||||
* and rx_pkt_tlvs, if they are different, then likely these kind
|
||||
* of frames re-injected by FW or touched by other module already,
|
||||
* skip FISA to avoid REO2SW ring mismatch issue for same flow.
|
||||
*/
|
||||
if (reo_destination_indication != qdf_nbuf_get_rx_reo_dest_ind(nbuf))
|
||||
return sw_ft_entry;
|
||||
|
||||
hal_rx_msdu_get_flow_params(hal_soc_hdl, rx_tlv_hdr, &flow_invalid,
|
||||
|
|
|
|||
Loading…
Reference in a new issue