All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@codeaurora.org>
To: Ganapathi Bhat <gbhat@marvell.com>
Cc: <linux-wireless@vger.kernel.org>,
	Brian Norris <briannorris@chromium.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>,
	Shrenik Shikhare <shrenik@marvell.com>,
	Ganapathi Bhat <gbhat@marvell.com>
Subject: Re: [1/2] mwifiex: schedule rx_work on RX interrupt for USB
Date: Thu, 25 Jan 2018 07:10:53 +0000 (UTC)	[thread overview]
Message-ID: <20180125071053.29F1C6032C@smtp.codeaurora.org> (raw)
In-Reply-To: <1516633497-6584-2-git-send-email-gbhat@marvell.com>

Ganapathi Bhat <gbhat@marvell.com> wrote:

> From: Shrenik Shikhare <shrenik@marvell.com>
> 
> There is race for data_received flag between main thread and
> RX data interrupt(mwifiex_usb_rx_complete()):
> 1. USB received an RX data interrupt, set data_received flag
> 2. main thread checks data_received, if set queues rx_work
> 3. rx worker thread independently start processing rx_data_q
> 4. rx work exits (once rx_data_q is empty)
> 5. main thread resets the data_received flag(after #2)
> 6. Now at the corner case there will be high RX data interrupts
> between #4 and #5
> 7. Driver stops submitting URBs to firmware, once rx_pending
> exceeds HIGH_RX_PENDING
> 8. The flag data_received(cleared in #5) will remain unset since
> there will be no interrupts from firmware to set it(after #7)
> 
> Above scenario causes RX stall in driver, which will finally
> result in command/TX timeouts in firmware.
> 
> As a fix, queue rx_work directly in mwifiex_usb_rx_complete()
> callback, instead in the main thread. This removes dependency
> of RX processing on data_received flag.
> 
> Signed-off-by: Cathy Luo <cluo@marvell.com>
> Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>

Brian, did you have a chance to review these two?

-- 
https://patchwork.kernel.org/patch/10178731/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

  reply	other threads:[~2018-01-25  7:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-22 15:04 [PATCH 0/2] mwifiex: fix RX data stall issue on USB interface Ganapathi Bhat
2018-01-22 15:04 ` [PATCH 1/2] mwifiex: schedule rx_work on RX interrupt for USB Ganapathi Bhat
2018-01-25  7:10   ` Kalle Valo [this message]
     [not found]   ` <20180125071052.E370660A4E@smtp.codeaurora.org>
2018-01-25 18:32     ` [1/2] " Brian Norris
2018-01-25 18:59   ` [PATCH 1/2] " Brian Norris
2018-01-29  7:21     ` [EXT] " Ganapathi Bhat
2018-01-22 15:04 ` [PATCH 2/2] mwifiex: use more_rx_task_flag to avoid USB RX stall Ganapathi Bhat
2018-01-25  7:12   ` [2/2] " Kalle Valo
2018-01-25  7:13     ` Kalle Valo
2018-01-25 10:02       ` [EXT] " Ganapathi Bhat
     [not found]   ` <20180125071202.0F39560A60@smtp.codeaurora.org>
2018-01-25  9:59     ` Ganapathi Bhat
2018-01-25 12:59       ` Kalle Valo
2018-01-25 13:26         ` Ganapathi Bhat
2018-01-25 18:33       ` Brian Norris
2018-01-29  7:17         ` Ganapathi Bhat
2018-01-29  7:19         ` Ganapathi Bhat
2018-01-29 22:08           ` Brian Norris
2018-01-30 15:25             ` Ganapathi Bhat
2018-01-31  6:59             ` Ganapathi Bhat

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=20180125071053.29F1C6032C@smtp.codeaurora.org \
    --to=kvalo@codeaurora.org \
    --cc=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=shrenik@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.