qcacmn: Use HAL_RX_BUF_RBM_SW3_RBM for defrag pkts

Currently defragmented packets use HAL_RX_BUF_RBM_SW1_RBM as the RBM
value for the defragmented packets which are re-injected into REO.
Thus, if REO encounters any error while handling these packets, they
would end up in WBM2SW1 ring (via WBM), which is managed by the FW. The
FW will eventually recycle these buffers back to RXDMA via its refill
process. As a part of defragmentation, host does a 802.11 -> 802.3
header conversion. This is resulting in an address which is not 4
byte aligned. Hence, when RXDMA tries to use these addresses (after FW
recycles them), it may lead to issues.

Change the RBM value of the defragmented buffers which are
re-injected. Now, if REO ends up throwing an error for these
packets, they wll end up in WBM2SW3, which is managed by the host.
The host can then drop these packets and replenish RXDMA with 4 byte
aligned buffers (via FW).

Change-Id: I9d9c25385978d5be855699feb28d292c6f3fffdd
CRs-Fixed: 2572483
This commit is contained in:
Mohit Khanna
2019-12-03 11:54:58 -08:00
کامیت شده توسط nshrivas
والد bcb1f1738f
کامیت 918456b6c3
2فایلهای تغییر یافته به همراه12 افزوده شده و 12 حذف شده

مشاهده پرونده

@@ -36,8 +36,11 @@
#ifdef QCA_HOST2FW_RXBUF_RING
#define DP_WBM2SW_RBM HAL_RX_BUF_RBM_SW1_BM
/* RBM value used for re-injecting defragmented packets into REO */
#define DP_DEFRAG_RBM HAL_RX_BUF_RBM_SW3_BM
#else
#define DP_WBM2SW_RBM HAL_RX_BUF_RBM_SW3_BM
#define DP_DEFRAG_RBM DP_WBM2SW_RBM
#endif /* QCA_HOST2FW_RXBUF_RING */
#define RX_BUFFER_RESERVATION 0