From: Rico Derrer <rico.derrer@neratec.com>
To: Felix Fietkau <nbd@openwrt.org>
Cc: linux-wireless@vger.kernel.org, kvalo@codeaurora.org
Subject: Re: [PATCH 3.19] ath9k: fix race condition in irq processing during hardware reset
Date: Mon, 19 Jan 2015 09:26:57 +0100 (CET) [thread overview]
Message-ID: <1748015898.90209.1421656017853.JavaMail.zimbra@neratec.com> (raw)
In-Reply-To: <1998405401.90208.1421656011302.JavaMail.zimbra@neratec.com>
> On 2015-01-16 09:00, Rico Derrer wrote:
>> Hi Felix
>>
>> Felix Fietkau wrote:
>>> diff --git a/drivers/net/wireless/ath/ath9k/main.c
>>> b/drivers/net/wireless/ath/ath9k/main.c
>>> index 9a72640..62b0bf4 100644
>>> --- a/drivers/net/wireless/ath/ath9k/main.c
>>> +++ b/drivers/net/wireless/ath/ath9k/main.c
>>> @@ -285,6 +285,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct
>>> ath9k_channel *hchan)
>>>
>>> __ath_cancel_work(sc);
>>>
>>> + disable_irq(sc->irq);
>>> tasklet_disable(&sc->intr_tq);
>>> tasklet_disable(&sc->bcon_tasklet);
>>> spin_lock_bh(&sc->sc_pcu_lock);
>>> @@ -331,6 +332,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct
>>> ath9k_channel *hchan)
>>> r = -EIO;
>>>
>>> out:
>>> + enable_irq(sc->irq);
>>> spin_unlock_bh(&sc->sc_pcu_lock);
>>> tasklet_enable(&sc->bcon_tasklet);
>>> tasklet_enable(&sc->intr_tq);
>>
>> This part completely blocks the system on a AR9350. Loading the
>> module works but configuring it hangs the system until watchdog restarts it.
> What kernel/software are you running on there? When I committed this
> patch to OpenWrt, it uncovered IRQ handling bugs in MIPS kernel code
> (both generic and in the ath79 platform code).
>
> You can find the fixes that I've made here:
> http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/generic/patches-3.14/130-mips_cpu_irq_disable.patch
> http://git.openwrt.org/?p=openwrt.git;a=blob_plain;f=target/linux/ar71xx/patches-3.14/736-MIPS-ath79-fix-chained-irq-disable.patch
>
> I've already submitted the first one to linux-mips.
>
> - Felix
Thank you, these patches fixed the problem.
Rico
next prev parent reply other threads:[~2015-01-19 8:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-14 13:17 [PATCH 3.19] ath9k: fix race condition in irq processing during hardware reset Felix Fietkau
2015-01-15 9:09 ` Sujith Manoharan
2015-01-15 9:46 ` Felix Fietkau
[not found] ` <1459283661.83111.1421395216463.JavaMail.zimbra@neratec.com>
2015-01-16 8:00 ` Rico Derrer
2015-01-16 10:41 ` Felix Fietkau
[not found] ` <1998405401.90208.1421656011302.JavaMail.zimbra@neratec.com>
2015-01-19 8:26 ` Rico Derrer [this message]
2015-01-19 12:37 ` Kalle Valo
2015-01-19 12:36 ` 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=1748015898.90209.1421656017853.JavaMail.zimbra@neratec.com \
--to=rico.derrer@neratec.com \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=nbd@openwrt.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).