From: Stanislaw Gruszka <sgruszka@redhat.com>
To: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org,
Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Subject: Re: [PATCH 17/34] iwlagn: fix a race in the unmapping of the TFDs
Date: Tue, 11 Oct 2011 14:22:17 +0200 [thread overview]
Message-ID: <20111011122216.GA2218@redhat.com> (raw)
In-Reply-To: <1318256839-31837-18-git-send-email-wey-yi.w.guy@intel.com>
On Mon, Oct 10, 2011 at 07:27:02AM -0700, Wey-Yi Guy wrote:
> While inspecting the code, I saw that iwl_tx_queue_unmap modifies
> the read pointer of the Tx queue without taking any locks. This means
> that it can race with the reclaim flow. This can possibly lead to
> a DMA warning complaining that we unmap the same buffer twice.
>
> This is more a W/A than a fix since it is really weird to take
> sta_lock inside iwl_tx_queue_unmap, but it can help until we revamp
> the locking model in the transport layer.
>
> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
> ---
> drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> index 60067c7..f69aecb 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> @@ -406,6 +406,7 @@ static void iwl_tx_queue_unmap(struct iwl_trans *trans, int txq_id)
> struct iwl_tx_queue *txq = &trans_pcie->txq[txq_id];
> struct iwl_queue *q = &txq->q;
> enum dma_data_direction dma_dir;
> + unsigned long flags;
>
> if (!q->n_bd)
> return;
> @@ -418,12 +419,14 @@ static void iwl_tx_queue_unmap(struct iwl_trans *trans, int txq_id)
> else
> dma_dir = DMA_TO_DEVICE;
>
> + spin_lock_irqsave(&trans->shrd->sta_lock, flags);
sta_lock does not look like right lock to use.
Stanislaw
next prev parent reply other threads:[~2011-10-11 12:24 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-10 14:26 [PATCH 00/34] update for 3.2 Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 01/34] iwlagn: add cmd queue pointer info when timeout Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 02/34] iwlagn: add REPLY_ECHO host command Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 03/34] iwlagn: add WARN if tx cmd complete come back late Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 04/34] iwlagn: add "echo" test when command queue stuck Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 05/34] iwlagn: check rf kill in " Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 06/34] iwlagn: add "echo test" command to debugfs Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 07/34] iwlagn: update beacon smarter Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 08/34] iwlagn: don't assign seqno to QoS Null frames Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 09/34] iwlagn: send simple LQ command for WoWLAN Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 10/34] iwlagn: kill hw_params.max_stations Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 11/34] iwlagn: eliminate bus pointer from iwl_priv structure Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 12/34] iwlagn: stop interrupts when suspending Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 13/34] iwlagn: remove un-necessary step Wey-Yi Guy
2011-10-10 14:26 ` [PATCH 14/34] iwlagn: set rts retry limit Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 15/34] iwlagn: add "_d" sku to 6005 series of devices Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 16/34] iwlagn: Add "_d" sku to 105 " Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 17/34] iwlagn: fix a race in the unmapping of the TFDs Wey-Yi Guy
2011-10-11 12:22 ` Stanislaw Gruszka [this message]
2011-10-11 12:26 ` Grumbach, Emmanuel
2011-10-11 12:36 ` Stanislaw Gruszka
2011-10-11 12:38 ` Grumbach, Emmanuel
2011-10-11 12:58 ` Stanislaw Gruszka
2011-10-11 14:43 ` Grumbach, Emmanuel
2011-10-10 14:27 ` [PATCH 18/34] iwlagn: warn only once if AGG state is wrong Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 19/34] iwlagn: separate init calib and rt calib Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 20/34] iwlagn: do nothing when disable agg in wrong state Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 21/34] iwlagn: use low retry limit for WoWLAN Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 22/34] iwlwifi: update comments on how to enable debug flag Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 23/34] iwlagn: more info on warning for shutdown agg queue Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 24/34] iwlagn: don't stop rts/cts until last aggregation queue close Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 25/34] iwlagn: add debug for mac80211 callback Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 26/34] iwlagn: rename all the mac80211 callback functions Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 27/34] iwlagn: merge station management functions Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 28/34] iwlagn: rename iwl-rx.c to iwl-agn-rx.c Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 29/34] iwlagn: remove 5000 hw header Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 30/34] iwlagn: remove 6000 " Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 32/34] iwlagn: move iwl_enable_rfkill_int and kill iwl-helpers.h Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 33/34] iwlagn: remove uneeded include to iwl-dev.h Wey-Yi Guy
2011-10-10 14:27 ` [PATCH 34/34] iwlagn: add missing include to iwl-agn-rs.h Wey-Yi Guy
2011-10-12 18:24 ` [PATCH 00/34] update for 3.2 John W. Linville
2011-10-12 18:00 ` Guy, Wey-Yi
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=20111011122216.GA2218@redhat.com \
--to=sgruszka@redhat.com \
--cc=emmanuel.grumbach@intel.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=wey-yi.w.guy@intel.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.