qcacmn: Ignore fragmented packet before peer TID setup

peer->rx_tid[tid].array is initiailized when peer TID is setup.
It seems like we are processing the fragmented Rx packet before peer
TID is setup. Drop the fragmented packet in this case.

Change-Id: Ic076e59a9074efff9fed9f9154aa973c41f67341
CRs-Fixed: 2388684
这个提交包含在:
Manjunathappa Prakash
2019-02-05 19:58:05 -08:00
提交者 nshrivas
父节点 9d90996935
当前提交 a5a3a1e49d
修改 2 个文件,包含 10 行新增7 行删除

查看文件

@@ -2027,11 +2027,6 @@ void dp_peer_rx_init(struct dp_pdev *pdev, struct dp_peer *peer)
rx_tid->defrag_waitlist_elem.tqe_next = NULL; rx_tid->defrag_waitlist_elem.tqe_next = NULL;
rx_tid->defrag_waitlist_elem.tqe_prev = NULL; rx_tid->defrag_waitlist_elem.tqe_prev = NULL;
#ifdef notyet /* TODO: See if this is required for exception handling */
/* invalid sequence number */
peer->tids_last_seq[tid] = 0xffff;
#endif
} }
peer->active_ba_session_cnt = 0; peer->active_ba_session_cnt = 0;

查看文件

@@ -1393,8 +1393,6 @@ static QDF_STATUS dp_rx_defrag_store_fragment(struct dp_soc *soc,
pdev = peer->vdev->pdev; pdev = peer->vdev->pdev;
rx_tid = &peer->rx_tid[tid]; rx_tid = &peer->rx_tid[tid];
rx_reorder_array_elem = peer->rx_tid[tid].array;
mpdu_sequence_control_valid = mpdu_sequence_control_valid =
hal_rx_get_mpdu_sequence_control_valid(rx_desc->rx_buf_start); hal_rx_get_mpdu_sequence_control_valid(rx_desc->rx_buf_start);
@@ -1433,6 +1431,16 @@ static QDF_STATUS dp_rx_defrag_store_fragment(struct dp_soc *soc,
*/ */
fragno = dp_rx_frag_get_mpdu_frag_number(rx_desc->rx_buf_start); fragno = dp_rx_frag_get_mpdu_frag_number(rx_desc->rx_buf_start);
rx_reorder_array_elem = peer->rx_tid[tid].array;
if (!rx_reorder_array_elem) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"Rcvd Fragmented pkt before peer_tid is setup");
qdf_nbuf_free(frag);
dp_rx_add_to_free_desc_list(head, tail, rx_desc);
*rx_bfs = 1;
goto end;
}
/* /*
* !more_frag: no more fragments to be delivered * !more_frag: no more fragments to be delivered
* !frag_no: packet is not fragmented * !frag_no: packet is not fragmented