From: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
To: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: <linux-wireless@vger.kernel.org>, <ath6kl-devel@qualcomm.com>,
Raja Mani <rmani@qca.qualcomm.com>
Subject: Re: [PATCH] ath6kl: Fix random system lockup
Date: Tue, 28 Feb 2012 10:58:14 +0530 [thread overview]
Message-ID: <20120228052811.GC2892@vasanth-laptop> (raw)
In-Reply-To: <4F4B9085.6080603@qca.qualcomm.com>
On Mon, Feb 27, 2012 at 04:17:41PM +0200, Kalle Valo wrote:
> On 02/09/2012 09:27 AM, Vasanthakumar Thiagarajan wrote:
> > From: Raja Mani <rmani@qca.qualcomm.com>
> >
> > The commit "ath6kl: Use a mutex_lock to avoid
> > race in diabling and handling irq" introduces a
> > state where ath6kl_sdio_irq_handler() would be waiting
> > to claim the sdio function for receive indefinitely
> > when things happen in the following order.
> >
> > ath6kl_sdio_irq_handler()
> > - aquires mtx_irq
> > - sdio_release_host()
> > ath6kl_sdio_irq_disable()
> > - sdio_claim_host()
> > - sleep on mtx_irq
> > ath6kl_hif_intr_bh_handler()
> > - (indefinitely) wait for the sdio
> > function to be released to exclusively claim
> > it again for receive operation.
> >
> > Fix this by replacing the mtx_irq with an atomic
> > variable and a wait_queue.
> >
> > Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
> > Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
>
> I would really like to avoid using atomic variable if at all possible. I
> was trying to think other options and what if we take in
> ath6kl_sdio_irq_disable() mtx_irq before calling sdio_claim_host().
> Wouldn't that solve the deadlock?
Ok, the goal is to process any pending interrupts before disabling the interrupt.
Taking mutex before sdio_claim_host() would have a deadlock condition like the following
sdio_claim_host() ath6kl_sdio_irq_disable()
- Acquire mtx_irq
ath6kl_sdio_irq_handler() - Trying to claim sdio func()
- waiting on mtx_irq
Vasanth
next prev parent reply other threads:[~2012-02-28 5:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-09 7:27 [PATCH] ath6kl: Fix random system lockup Vasanthakumar Thiagarajan
2012-02-27 14:17 ` Kalle Valo
2012-02-28 5:28 ` Vasanthakumar Thiagarajan [this message]
2012-02-28 7:57 ` Kalle Valo
2012-03-01 7:35 ` 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=20120228052811.GC2892@vasanth-laptop \
--to=vthiagar@qca.qualcomm.com \
--cc=ath6kl-devel@qualcomm.com \
--cc=kvalo@qca.qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
--cc=rmani@qca.qualcomm.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.