All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <briannorris@chromium.org>
To: Ganapathi Bhat <gbhat@marvell.com>
Cc: linux-wireless@vger.kernel.org, Cathy Luo <cluo@marvell.com>,
	Xinming Hu <huxm@marvell.com>, Zhiyuan Yang <yangzy@marvell.com>,
	James Cao <jcao@marvell.com>,
	Mangesh Malusare <mmangesh@marvell.com>
Subject: Re: [PATCH 2/2] mwifiex: handle race during mwifiex_usb_disconnect
Date: Fri, 1 Jun 2018 09:33:57 -0700	[thread overview]
Message-ID: <20180601163355.GA248677@rodete-desktop-imager.corp.google.com> (raw)
In-Reply-To: <1527849680-31445-2-git-send-email-gbhat@marvell.com>

Hi Ganapathi,

On Fri, Jun 01, 2018 at 04:11:20PM +0530, Ganapathi Bhat wrote:
> Race condition is observed during rmmod of mwifiex_usb:
> 
> 1. The rmmod thread will call mwifiex_usb_disconnect(), download
>    SHUTDOWN command and do wait_event_interruptible_timeout(),
>    waiting for response.
> 
> 2. The main thread will handle the response and will do a
>    wake_up_interruptible(), unblocking rmmod thread.
> 
> 3. On getting unblocked, rmmod thread  will make rx_cmd.urb = NULL in
>    mwifiex_usb_free().
> 
> 4. The main thread will try to resubmit rx_cmd.urb in
>    mwifiex_usb_submit_rx_urb(), which is NULL.
> 
> To fix this, move mwifiex_usb_free() from mwifiex_usb_disconnect
> to mwifiex_unregister_dev(). Function mwifiex_unregister_dev() is
> called after flushing the command and RX work queues.
> 
> Signed-off-by: Brian Norris <briannorris@chromium.org>

^^ I'm not sure if that line is quite accurate. While I nearly spelled
out what the patch would look like, you wrote it.

Anyway, patch seems good to me, assuming it tests out OK for you:

Reviewed-by: Brian Norris <briannorris@chromium.org>

and if Kalle hasn't applied this yet, an alternative to Signed-off-by:

Suggested-by: Brian Norris <briannorris@chromium.org>

> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
> ---
>  drivers/net/wireless/marvell/mwifiex/usb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c
> index bc475b8..88f4c89 100644
> --- a/drivers/net/wireless/marvell/mwifiex/usb.c
> +++ b/drivers/net/wireless/marvell/mwifiex/usb.c
> @@ -644,8 +644,6 @@ static void mwifiex_usb_disconnect(struct usb_interface *intf)
>  					 MWIFIEX_FUNC_SHUTDOWN);
>  	}
>  
> -	mwifiex_usb_free(card);
> -
>  	mwifiex_dbg(adapter, FATAL,
>  		    "%s: removing card\n", __func__);
>  	mwifiex_remove_card(adapter);
> @@ -1353,6 +1351,8 @@ static void mwifiex_unregister_dev(struct mwifiex_adapter *adapter)
>  {
>  	struct usb_card_rec *card = (struct usb_card_rec *)adapter->card;
>  
> +	mwifiex_usb_free(card);
> +
>  	mwifiex_usb_cleanup_tx_aggr(adapter);
>  
>  	card->adapter = NULL;
> -- 
> 1.9.1
> 

  reply	other threads:[~2018-06-01 16:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-01 10:41 [PATCH 1/2] Revert "mwifiex: handle race during mwifiex_usb_disconnect" Ganapathi Bhat
2018-06-01 10:41 ` [PATCH 2/2] mwifiex: handle race during mwifiex_usb_disconnect Ganapathi Bhat
2018-06-01 16:33   ` Brian Norris [this message]
2018-06-18 14:41     ` Kalle Valo
2018-06-01 15:56 ` [PATCH 1/2] Revert "mwifiex: handle race during mwifiex_usb_disconnect" Kalle Valo
2018-06-24 17:01 ` [1/2] " Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180601163355.GA248677@rodete-desktop-imager.corp.google.com \
    --to=briannorris@chromium.org \
    --cc=cluo@marvell.com \
    --cc=gbhat@marvell.com \
    --cc=huxm@marvell.com \
    --cc=jcao@marvell.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mmangesh@marvell.com \
    --cc=yangzy@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.