qcacmn: Do not check for msdu Done bit for raw packets
Do not check for msdu Done bit for raw packets as HW does not set this bit for msdus spread across nbufs. Change-Id: I9c2af01c6b55600511abeec9ab6fc185fcc6ef36
This commit is contained in:

gecommit door
nshrivas

bovenliggende
3ba9372a50
commit
cea9c935f9
@@ -1807,29 +1807,6 @@ done:
|
||||
if (qdf_nbuf_is_rx_chfrag_start(nbuf))
|
||||
tid = qdf_nbuf_get_tid_val(nbuf);
|
||||
|
||||
/*
|
||||
* Check if DMA completed -- msdu_done is the last bit
|
||||
* to be written
|
||||
*/
|
||||
rx_pdev = soc->pdev_list[rx_desc->pool_id];
|
||||
DP_RX_TID_SAVE(nbuf, tid);
|
||||
if (qdf_unlikely(rx_pdev->delay_stats_flag))
|
||||
qdf_nbuf_set_timestamp(nbuf);
|
||||
|
||||
tid_stats = &rx_pdev->stats.tid_stats.
|
||||
tid_rx_stats[ring_id][tid];
|
||||
if (qdf_unlikely(!hal_rx_attn_msdu_done_get(rx_tlv_hdr))) {
|
||||
dp_err("MSDU DONE failure");
|
||||
DP_STATS_INC(soc, rx.err.msdu_done_fail, 1);
|
||||
hal_rx_dump_pkt_tlvs(hal_soc, rx_tlv_hdr,
|
||||
QDF_TRACE_LEVEL_INFO);
|
||||
tid_stats->fail_cnt[MSDU_DONE_FAILURE]++;
|
||||
qdf_nbuf_free(nbuf);
|
||||
qdf_assert(0);
|
||||
nbuf = next;
|
||||
continue;
|
||||
}
|
||||
|
||||
peer_mdata = QDF_NBUF_CB_RX_PEER_ID(nbuf);
|
||||
peer_id = DP_PEER_METADATA_PEER_ID_GET(peer_mdata);
|
||||
peer = dp_peer_find_by_id(soc, peer_id);
|
||||
@@ -1856,14 +1833,12 @@ done:
|
||||
} else {
|
||||
DP_STATS_INC_PKT(soc, rx.err.rx_invalid_peer, 1,
|
||||
QDF_NBUF_CB_RX_PKT_LEN(nbuf));
|
||||
tid_stats->fail_cnt[INVALID_PEER_VDEV]++;
|
||||
qdf_nbuf_free(nbuf);
|
||||
nbuf = next;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (qdf_unlikely(!vdev)) {
|
||||
tid_stats->fail_cnt[INVALID_PEER_VDEV]++;
|
||||
qdf_nbuf_free(nbuf);
|
||||
nbuf = next;
|
||||
DP_STATS_INC(soc, rx.err.invalid_vdev, 1);
|
||||
@@ -1871,6 +1846,32 @@ done:
|
||||
continue;
|
||||
}
|
||||
|
||||
rx_pdev = vdev->pdev;
|
||||
DP_RX_TID_SAVE(nbuf, tid);
|
||||
if (qdf_unlikely(rx_pdev->delay_stats_flag))
|
||||
qdf_nbuf_set_timestamp(nbuf);
|
||||
|
||||
ring_id = QDF_NBUF_CB_RX_CTX_ID(nbuf);
|
||||
tid_stats =
|
||||
&rx_pdev->stats.tid_stats.tid_rx_stats[ring_id][tid];
|
||||
|
||||
/*
|
||||
* Check if DMA completed -- msdu_done is the last bit
|
||||
* to be written
|
||||
*/
|
||||
if (qdf_unlikely(!qdf_nbuf_is_raw_frame(nbuf) &&
|
||||
!hal_rx_attn_msdu_done_get(rx_tlv_hdr))) {
|
||||
dp_err("MSDU DONE failure");
|
||||
DP_STATS_INC(soc, rx.err.msdu_done_fail, 1);
|
||||
hal_rx_dump_pkt_tlvs(hal_soc, rx_tlv_hdr,
|
||||
QDF_TRACE_LEVEL_INFO);
|
||||
tid_stats->fail_cnt[MSDU_DONE_FAILURE]++;
|
||||
qdf_nbuf_free(nbuf);
|
||||
qdf_assert(0);
|
||||
nbuf = next;
|
||||
continue;
|
||||
}
|
||||
|
||||
DP_HIST_PACKET_COUNT_INC(vdev->pdev->pdev_id);
|
||||
/*
|
||||
* First IF condition:
|
||||
|
Verwijs in nieuw issue
Block a user