mwifiex: correction in MSDU padding logic

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Sat Sep 29 10:59:16 EDT 2012


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=bda1b1b77918ea340bbfb2938a0fd7d5203e430c
Commit:     bda1b1b77918ea340bbfb2938a0fd7d5203e430c
Parent:     7d273ef32a0d68f2751f74f7401de78f3c95afa8
Author:     Yogesh Ashok Powar <yogeshp at marvell.com>
AuthorDate: Fri Aug 3 18:06:01 2012 -0700
Committer:  John W. Linville <linville at tuxdriver.com>
CommitDate: Mon Aug 6 15:12:47 2012 -0400

    mwifiex: correction in MSDU padding logic
    
    Padding arithmetic will always work for MSDUs provided first MSDU
    ends on 4-byte boundary. Fixing it by making sure that all MSDU ends
    on 4-byte boundary.
    
    Signed-off-by: Yogesh Ashok Powar <yogeshp at marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar at marvell.com>
    Signed-off-by: Kiran Divekar <dkiran at marvell.com>
    Signed-off-by: Bing Zhao <bzhao at marvell.com>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>
---
 drivers/net/wireless/mwifiex/11n_aggr.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/11n_aggr.c b/drivers/net/wireless/mwifiex/11n_aggr.c
index 04222f2..395f1bf 100644
--- a/drivers/net/wireless/mwifiex/11n_aggr.c
+++ b/drivers/net/wireless/mwifiex/11n_aggr.c
@@ -82,8 +82,8 @@ mwifiex_11n_form_amsdu_pkt(struct sk_buff *skb_aggr,
 	/* Add payload */
 	memcpy(skb_put(skb_aggr, skb_src->len), skb_src->data, skb_src->len);
 
-	*pad = (((skb_src->len + LLC_SNAP_LEN) & 3)) ? (4 - (((skb_src->len +
-						      LLC_SNAP_LEN)) & 3)) : 0;
+	/* Add padding for new MSDU to start from 4 byte boundary */
+	*pad = (4 - ((unsigned long)skb_aggr->tail & 0x3)) % 4;
 
 	return skb_aggr->len + *pad;
 }



More information about the linux-mtd-cvs mailing list