On Tue, Nov 05, 2013 at 07:51:21AM -0800, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > This is a note to let you know that I've just added the patch titled > > mwifiex: fix SDIO interrupt lost issue > > to the 3.4-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > mwifiex-fix-sdio-interrupt-lost-issue.patch > and it can be found in the queue-3.4 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let <stable@xxxxxxxxxxxxxxx> know about it. > Although this patch seems to be applicable, it has been tagged for stable 3.7+. But maybe the authors may help clarifying this. Cheers, -- Luis > > From 453b0c3f6910672f79da354077af728d92f95c5b Mon Sep 17 00:00:00 > 2001 From: Amitkumar Karwar <akarwar@xxxxxxxxxxx> Date: Fri, 27 Sep > 2013 10:55:38 -0700 Subject: mwifiex: fix SDIO interrupt lost issue > > From: Amitkumar Karwar <akarwar@xxxxxxxxxxx> > > commit 453b0c3f6910672f79da354077af728d92f95c5b upstream. > > 601216e "mwifiex: process RX packets in SDIO IRQ thread directly" > introduced a command timeout issue which can be reproduced easily on > an AM33xx platform using a test application written by Daniel Mack: > > https://gist.github.com/zonque/6579314 > > mwifiex_main_process() is called from both the SDIO handler and > the workqueue. In case an interrupt occurs right after the > int_status check, but before updating the mwifiex_processing flag, > this interrupt gets lost, resulting in a command timeout and > consequently a card reset. > > Let main_proc_lock protect both int_status and mwifiex_processing > flag. This fixes the interrupt lost issue. > > Reported-by: Sven Neumann <s.neumann@xxxxxxxxxxxx> > Reported-by: Andreas Fenkart <andreas.fenkart@xxxxxxxxxxxxxxxxxxx> > Tested-by: Daniel Mack <zonque@xxxxxxxxx> > Reviewed-by: Dylan Reid <dgreid@xxxxxxxxxxxx> > Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx> > Signed-off-by: Bing Zhao <bzhao@xxxxxxxxxxx> > Signed-off-by: Paul Stewart <pstew@xxxxxxxxxxxx> > Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > --- > drivers/net/wireless/mwifiex/main.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > --- a/drivers/net/wireless/mwifiex/main.c > +++ b/drivers/net/wireless/mwifiex/main.c > @@ -261,10 +261,12 @@ process_start: > } > } while (true); > > - if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) > + spin_lock_irqsave(&adapter->main_proc_lock, flags); > + if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) { > + spin_unlock_irqrestore(&adapter->main_proc_lock, flags); > goto process_start; > + } > > - spin_lock_irqsave(&adapter->main_proc_lock, flags); > adapter->mwifiex_processing = false; > spin_unlock_irqrestore(&adapter->main_proc_lock, flags); > > > > Patches currently in stable-queue which might be from akarwar@xxxxxxxxxxx are > > queue-3.4/mwifiex-fix-sdio-interrupt-lost-issue.patch > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html