qcacmn: Reset nbuf data pointer properly in RX fast path handling

Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.

Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.

Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
This commit is contained in:
Karthik Kantamneni
2023-08-08 14:14:15 +05:30
committed by Rahul Choudhary
parent 6ca876877a
commit 6e1fe7f344
2 changed files with 2 additions and 3 deletions

View File

@@ -31,8 +31,8 @@
#define HTT_T2H_MSG_BUF_REINIT(_buf, dev) \ #define HTT_T2H_MSG_BUF_REINIT(_buf, dev) \
do { \ do { \
QDF_NBUF_CB_PADDR(_buf) -= (HTC_HEADER_LEN + \ qdf_nbuf_push_head(_buf, (HTC_HEADER_LEN) + \
HTC_HDR_ALIGNMENT_PADDING); \ HTC_HDR_ALIGNMENT_PADDING); \
qdf_nbuf_init_fast((_buf)); \ qdf_nbuf_init_fast((_buf)); \
qdf_mem_dma_sync_single_for_device(dev, \ qdf_mem_dma_sync_single_for_device(dev, \
(QDF_NBUF_CB_PADDR(_buf)), \ (QDF_NBUF_CB_PADDR(_buf)), \

View File

@@ -5798,7 +5798,6 @@ qdf_export_symbol(__qdf_nbuf_init);
void qdf_nbuf_init_fast(qdf_nbuf_t nbuf) void qdf_nbuf_init_fast(qdf_nbuf_t nbuf)
{ {
qdf_nbuf_users_set(&nbuf->users, 1); qdf_nbuf_users_set(&nbuf->users, 1);
nbuf->data = nbuf->head + NET_SKB_PAD;
skb_reset_tail_pointer(nbuf); skb_reset_tail_pointer(nbuf);
} }
qdf_export_symbol(qdf_nbuf_init_fast); qdf_export_symbol(qdf_nbuf_init_fast);