[3.11.y.z extended stable] Patch "mwifiex: fix Tx timeout issue" has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Wed Jul 30 12:46:58 UTC 2014


This is a note to let you know that I have just added a patch titled

    mwifiex: fix Tx timeout issue

to the linux-3.11.y-queue branch of the 3.11.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.11.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.11.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 5f7692fd6c95e5109fe763ae5320c09a53428a89 Mon Sep 17 00:00:00 2001
From: Amitkumar Karwar <akarwar at marvell.com>
Date: Fri, 20 Jun 2014 11:45:25 -0700
Subject: mwifiex: fix Tx timeout issue

commit d76744a93246eccdca1106037e8ee29debf48277 upstream.

https://bugzilla.kernel.org/show_bug.cgi?id=70191
https://bugzilla.kernel.org/show_bug.cgi?id=77581

It is observed that sometimes Tx packet is downloaded without
adding driver's txpd header. This results in firmware parsing
garbage data as packet length. Sometimes firmware is unable
to read the packet if length comes out as invalid. This stops
further traffic and timeout occurs.

The root cause is uninitialized fields in tx_info(skb->cb) of
packet used to get garbage values. In this case if
MWIFIEX_BUF_FLAG_REQUEUED_PKT flag is mistakenly set, txpd
header was skipped. This patch makes sure that tx_info is
correctly initialized to fix the problem.

Reported-by: Andrew Wiley <wiley.andrew.j at gmail.com>
Reported-by: Linus Gasser <list at markas-al-nour.org>
Reported-by: Michael Hirsch <hirsch at teufel.de>
Tested-by: Xinming Hu <huxm at marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar at marvell.com>
Signed-off-by: Maithili Hinge <maithili at marvell.com>
Signed-off-by: Avinash Patil <patila at marvell.com>
Signed-off-by: Bing Zhao <bzhao at marvell.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 drivers/net/wireless/mwifiex/main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c
index 02cc93b673c1..29cadf29af78 100644
--- a/drivers/net/wireless/mwifiex/main.c
+++ b/drivers/net/wireless/mwifiex/main.c
@@ -603,6 +603,7 @@ mwifiex_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	}

 	tx_info = MWIFIEX_SKB_TXCB(skb);
+	memset(tx_info, 0, sizeof(*tx_info));
 	tx_info->bss_num = priv->bss_num;
 	tx_info->bss_type = priv->bss_type;

--
1.9.1





More information about the kernel-team mailing list