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:

committed by
Rahul Choudhary

parent
6ca876877a
commit
6e1fe7f344
@@ -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)), \
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user