[9610] wlbt: fix SKB MAC header offset
authorDebabrata Purohit <d.purohit@samsung.com>
Fri, 25 May 2018 14:51:49 +0000 (15:51 +0100)
committerIvan Priest <i.priest@samsung.com>
Wed, 11 Jul 2018 17:43:15 +0000 (18:43 +0100)
If A-MSDU is enabled in transmit, the frame is translated
to MSDU sub frame format from Ethernet format.

But the MAC header in SKB is not updated and it causes
access to wrong offset for destination address.

The MAC header offset is corrected in such translation.

Change-Id: I509dd5754ccd1d179ca63b9e232264a0fdd76b0e
SCSC-Bug-Id: SQA-3156
Signed-off-by: Debabrata Purohit <d.purohit@samsung.com>
drivers/net/wireless/scsc/dev.h

index a144087ec5459f899065dca4f0c49eca8fa3530b..a29a86edf7eb693c27f94b009180e4bac391e8b0 100755 (executable)
@@ -90,6 +90,8 @@ static inline void ethr_ii_to_subframe_msdu(struct sk_buff *skb)
        memset(msduh.oui, 0x0, 3);
        msduh.type = ehdr->h_proto;
        (void)skb_push(skb, sizeof(struct msduhdr) - sizeof(struct ethhdr));
+       /* update SKB mac_header to point to start of MSDU header */
+       skb->mac_header -= (sizeof(struct msduhdr) - sizeof(struct ethhdr));
        memcpy(skb->data, &msduh, sizeof(struct msduhdr));
 }