Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45ddb8c4 authored by Karthik Kantamneni's avatar Karthik Kantamneni Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Fix REO ID mismatch issue in fisa flow aggregation

Currently during fisa flow aggregation REO ID check is done to
make sure all the flow packets are received in same REO and to avoid
out of order reception. But if RX packet matches CCE rules REO ID
is selected based on CCE rules since they have higher priority.
In this case ignore RX packet for FISA aggregation and do not panic.

Change-Id: I09b5c9fc4ecff7223d0034921e8923776ae4bf3b
CRs-Fixed: 3153104
parent 23af959e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1647,6 +1647,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);
	uint32_t fse_metadata;
	bool cce_match;

	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",
@@ -1660,8 +1661,9 @@ static int dp_add_nbuf_to_fisa_flow(struct dp_rx_fst *fisa_hdl,
	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) {
		cce_match = hal_rx_msdu_cce_match_get(rx_tlv_hdr);
		if (cce_match || (fisa_hdl->del_flow_count &&
		    fse_metadata != fisa_flow->metadata)) {
			dp_rx_fisa_release_ft_lock(fisa_hdl, napi_id);
			return FISA_AGGR_NOT_ELIGIBLE;
		}