qcacmn: Handle SG case with multiple MSDUs in MPDU
In case of where multiple scatter gather frames are part of same MPDU last_mpdu_in_msdu will be set only for last buffer of last scatter frame in MPDU. Below is the hw descriptors bits when 2 scatter frames are part of a MPDU ----------------------------------------------------------- |Buffer_num | MSDU_NUM | first_in_mpdu | cont | last_in_mpdu | ----------------------------------------------------------- | 1 | 1 | 1 | 1 | 0 | ----------------------------------------------------------- | 2 | 1 | 0 | 0 | 0 | ----------------------------------------------------------- | 3 | 2 | 0 | 1 | 0 | ----------------------------------------------------------- | 4 | 2 | 0 | 0 | 1 | ----------------------------------------------------------- In above case scatter MSDU boundary checks can be done only based on continuation bit. So while reaping use continuation bit instead of last_in_mpdu bit to detect boundary Change-Id: I42e7360d6a1b7d0cfd9a6688cae51e3854d430ec CRs-Fixed: 3388668
此提交包含在:

提交者
Madan Koyyalamudi

父節點
09c1bea86c
當前提交
97fcc90a7e
@@ -438,7 +438,7 @@ more_data:
|
||||
qdf_nbuf_set_raw_frame(rx_desc->nbuf, 1);
|
||||
|
||||
if (!is_prev_msdu_last &&
|
||||
msdu_desc_info.msdu_flags & HAL_MSDU_F_LAST_MSDU_IN_MPDU)
|
||||
!(msdu_desc_info.msdu_flags & HAL_MSDU_F_MSDU_CONTINUATION))
|
||||
is_prev_msdu_last = true;
|
||||
|
||||
rx_bufs_reaped[rx_desc->pool_id]++;
|
||||
|
新增問題並參考
封鎖使用者