summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDong Aisheng <aisheng.dong@freescale.com>2015-11-05 15:52:09 +0800
committerDong Aisheng <aisheng.dong@freescale.com>2015-11-16 15:32:46 +0800
commit45c96b8881eaa2b073b9dfa2a44229accd7409b7 (patch)
tree045971d37c6bafaefcefefee81885a11e9d44673
parentd85063b8d4de98a7eecf9e2c6d59bcff7654b6da (diff)
MLK-11833 bcmdhd: pull back sdpcm_hdrlen length from old skb for new skb
Pull back sdpcm_hdrlen length from old skb as new skb here is passed to postprocessing. This is a generic fix. We must have it regardless of host is non scatter-gather or scatter gather capable. Suggested by: Vinayak Kamath <vinayak.kamath@broadcom.com> Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
-rw-r--r--drivers/net/wireless/bcmdhd/dhd_sdio.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd/dhd_sdio.c b/drivers/net/wireless/bcmdhd/dhd_sdio.c
index 4b628e94234b..83b65f98861e 100644
--- a/drivers/net/wireless/bcmdhd/dhd_sdio.c
+++ b/drivers/net/wireless/bcmdhd/dhd_sdio.c
@@ -1877,6 +1877,11 @@ static int dhdsdio_txpkt_preprocess(dhd_bus_t *bus, void *pkt, int chan, int txs
PKTALIGN(osh, tmp_pkt, PKTLEN(osh, pkt), DHD_SDALIGN);
bcopy(PKTDATA(osh, pkt), PKTDATA(osh, tmp_pkt), PKTLEN(osh, pkt));
*new_pkt = tmp_pkt;
+ /*
+ * pull back sdpcm_hdrlen length from old skb as new skb here
+ * is passed to postprocessing
+ */
+ PKTPULL(osh, pkt, sdpcm_hdrlen);
pkt = tmp_pkt;
}