mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
qcacld-3.0: compare FSE metadata when REO ID mismatches
When an existing flow is evicted, there is chance that the REO ID of the newly added flow and the inflight packets of the evicted flow mismatch. In such cases, check the FSE metadata of the flow with that of the packet instead of triggering a BUG(). Change-Id: I7412055101fb72f7b28db615672e88837d79e8d3 CRs-Fixed: 2968500
This commit is contained in:
parent
9f72e2335f
commit
e2de05aa20
1 changed files with 8 additions and 1 deletions
|
|
@ -1645,6 +1645,7 @@ static int dp_add_nbuf_to_fisa_flow(struct dp_rx_fst *fisa_hdl,
|
|||
uint32_t hal_aggr_count;
|
||||
uint8_t napi_id = QDF_NBUF_CB_RX_CTX_ID(nbuf);
|
||||
uint8_t reo_id = fisa_flow->napi_id;
|
||||
uint32_t fse_metadata;
|
||||
|
||||
dump_tlvs(hal_soc_hdl, rx_tlv_hdr, QDF_TRACE_LEVEL_INFO_HIGH);
|
||||
dp_fisa_debug("nbuf: %pK nbuf->next:%pK nbuf->data:%pK len %d data_len %d",
|
||||
|
|
@ -1655,10 +1656,16 @@ static int dp_add_nbuf_to_fisa_flow(struct dp_rx_fst *fisa_hdl,
|
|||
* the one configured.
|
||||
*/
|
||||
if (qdf_unlikely(fisa_flow->napi_id != napi_id)) {
|
||||
fse_metadata =
|
||||
hal_rx_msdu_fse_metadata_get(hal_soc_hdl, rx_tlv_hdr);
|
||||
if (fisa_hdl->del_flow_count &&
|
||||
fse_metadata != fisa_flow->metadata)
|
||||
return FISA_AGGR_NOT_ELIGIBLE;
|
||||
|
||||
dp_err("REO id mismatch flow: %pK napi_id: %u nbuf: %pK reo_id: %u",
|
||||
fisa_flow, fisa_flow->napi_id, nbuf, napi_id);
|
||||
QDF_BUG(0);
|
||||
DP_STATS_INC(fisa_hdl, reo_mismatch, 1);
|
||||
QDF_BUG(0);
|
||||
return FISA_AGGR_NOT_ELIGIBLE;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue