From: Brian Norris <briannorris@chromium.org> To: Marc Zyngier <marc.zyngier@arm.com> Cc: Amitkumar Karwar <amitkarwar@gmail.com>, Enric Balletbo i Serra <enric.balletbo@collabora.com>, Ganapathi Bhat <gbhat@marvell.com>, Heiko Stuebner <heiko@sntech.de>, Kalle Valo <kvalo@codeaurora.org>, Nishant Sarmukadam <nishants@marvell.com>, Rob Herring <robh+dt@kernel.org>, Xinming Hu <huxinming820@gmail.com>, "David S. Miller" <davem@davemloft.net>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH 3/4] mwifiex: Flag wake-up interrupt as IRQ_NOAUTOEN rather than disabling it too late Date: Tue, 26 Feb 2019 15:31:31 -0800 [thread overview] Message-ID: <20190226233130.GB174696@google.com> (raw) In-Reply-To: <20190224140426.3267-4-marc.zyngier@arm.com> Hi Marc, On Sun, Feb 24, 2019 at 02:04:25PM +0000, Marc Zyngier wrote: > The mwifiex driver makes unsafe assumptions about the state of the > wake-up interrupt. It requests it and only then disable it. Of > course, the interrupt may be screaming for whatever reason at that > time, and the handler will then be called without the interrupt > having been registered with the PM/wakeup subsystem. Oops. > > The right way to handle this kind of situation is to flag the > interrupt with IRQ_NOAUTOEN before requesting it. It will then > stay disabled until someone (the wake-up subsystem) enables it. > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> This could be: Fixes: 853402a00823 ("mwifiex: Enable WoWLAN for both sdio and pcie") although, that was just borrowing the existing antipattern from SDIO code.. Reviewed-by: Brian Norris <briannorris@chromium.org> Thanks. > --- > drivers/net/wireless/marvell/mwifiex/main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c > index 2105c2b7c627..82cf35e50579 100644 > --- a/drivers/net/wireless/marvell/mwifiex/main.c > +++ b/drivers/net/wireless/marvell/mwifiex/main.c > @@ -1610,6 +1610,7 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter) > "wake-up interrupt outside 'wake-up' subnode of %pOF\n", > adapter->dt_node); > > + irq_set_status_flags(adapter->irq_wakeup, IRQ_NOAUTOEN); > ret = devm_request_irq(dev, adapter->irq_wakeup, > mwifiex_irq_wakeup_handler, IRQF_TRIGGER_LOW, > "wifi_wake", adapter); > @@ -1619,7 +1620,6 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter) > goto err_exit; > } > > - disable_irq(adapter->irq_wakeup); > if (device_init_wakeup(dev, true)) { > dev_err(dev, "fail to init wakeup for mwifiex\n"); > goto err_exit; > -- > 2.20.1 >
WARNING: multiple messages have this Message-ID (diff)
From: Brian Norris <briannorris@chromium.org> To: Marc Zyngier <marc.zyngier@arm.com> Cc: Ganapathi Bhat <gbhat@marvell.com>, Heiko Stuebner <heiko@sntech.de>, devicetree@vger.kernel.org, Xinming Hu <huxinming820@gmail.com>, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Amitkumar Karwar <amitkarwar@gmail.com>, linux-rockchip@lists.infradead.org, Nishant Sarmukadam <nishants@marvell.com>, Rob Herring <robh+dt@kernel.org>, linux-arm-kernel@lists.infradead.org, Enric Balletbo i Serra <enric.balletbo@collabora.com>, "David S. Miller" <davem@davemloft.net>, Kalle Valo <kvalo@codeaurora.org> Subject: Re: [PATCH 3/4] mwifiex: Flag wake-up interrupt as IRQ_NOAUTOEN rather than disabling it too late Date: Tue, 26 Feb 2019 15:31:31 -0800 [thread overview] Message-ID: <20190226233130.GB174696@google.com> (raw) In-Reply-To: <20190224140426.3267-4-marc.zyngier@arm.com> Hi Marc, On Sun, Feb 24, 2019 at 02:04:25PM +0000, Marc Zyngier wrote: > The mwifiex driver makes unsafe assumptions about the state of the > wake-up interrupt. It requests it and only then disable it. Of > course, the interrupt may be screaming for whatever reason at that > time, and the handler will then be called without the interrupt > having been registered with the PM/wakeup subsystem. Oops. > > The right way to handle this kind of situation is to flag the > interrupt with IRQ_NOAUTOEN before requesting it. It will then > stay disabled until someone (the wake-up subsystem) enables it. > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> This could be: Fixes: 853402a00823 ("mwifiex: Enable WoWLAN for both sdio and pcie") although, that was just borrowing the existing antipattern from SDIO code.. Reviewed-by: Brian Norris <briannorris@chromium.org> Thanks. > --- > drivers/net/wireless/marvell/mwifiex/main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c > index 2105c2b7c627..82cf35e50579 100644 > --- a/drivers/net/wireless/marvell/mwifiex/main.c > +++ b/drivers/net/wireless/marvell/mwifiex/main.c > @@ -1610,6 +1610,7 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter) > "wake-up interrupt outside 'wake-up' subnode of %pOF\n", > adapter->dt_node); > > + irq_set_status_flags(adapter->irq_wakeup, IRQ_NOAUTOEN); > ret = devm_request_irq(dev, adapter->irq_wakeup, > mwifiex_irq_wakeup_handler, IRQF_TRIGGER_LOW, > "wifi_wake", adapter); > @@ -1619,7 +1620,6 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter) > goto err_exit; > } > > - disable_irq(adapter->irq_wakeup); > if (device_init_wakeup(dev, true)) { > dev_err(dev, "fail to init wakeup for mwifiex\n"); > goto err_exit; > -- > 2.20.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-02-26 23:31 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-24 14:04 [PATCH 0/4] mwifiex PCI/wake-up interrupt fixes Marc Zyngier 2019-02-24 14:04 ` Marc Zyngier 2019-02-24 14:04 ` [PATCH 1/4] dt-bindings/marvell-8xxx: Allow wake-up interrupt to be placed in a separate node Marc Zyngier 2019-02-24 14:04 ` Marc Zyngier 2019-02-24 14:04 ` [PATCH 2/4] mwifiex: Fetch wake-up interrupt from 'wake-up' subnode when it exists Marc Zyngier 2019-02-24 14:04 ` Marc Zyngier 2019-02-24 14:04 ` [PATCH 3/4] mwifiex: Flag wake-up interrupt as IRQ_NOAUTOEN rather than disabling it too late Marc Zyngier 2019-02-24 14:04 ` Marc Zyngier 2019-02-26 23:31 ` Brian Norris [this message] 2019-02-26 23:31 ` Brian Norris 2019-02-26 23:34 ` Brian Norris 2019-02-26 23:34 ` Brian Norris 2019-04-04 10:22 ` Kalle Valo 2019-04-04 10:22 ` Kalle Valo 2019-04-04 10:22 ` Kalle Valo 2019-04-04 10:22 ` Kalle Valo 2019-02-24 14:04 ` [PATCH 4/4] arm64: dts: rockchip: gru: Move wifi wake-up interrupt into its own subnode Marc Zyngier 2019-02-24 14:04 ` Marc Zyngier 2019-02-25 12:45 ` [PATCH 0/4] mwifiex PCI/wake-up interrupt fixes Ard Biesheuvel 2019-02-25 12:45 ` Ard Biesheuvel 2019-02-25 14:52 ` Marc Zyngier 2019-02-25 14:52 ` Marc Zyngier 2019-02-26 16:21 ` Ard Biesheuvel 2019-02-26 16:21 ` Ard Biesheuvel 2019-02-26 16:21 ` Ard Biesheuvel 2019-02-26 17:14 ` Marc Zyngier 2019-02-26 17:14 ` Marc Zyngier 2019-02-26 23:44 ` Brian Norris 2019-02-26 23:44 ` Brian Norris 2019-02-26 23:44 ` Brian Norris 2019-02-27 9:27 ` Marc Zyngier 2019-02-27 9:27 ` Marc Zyngier 2019-02-27 9:27 ` Marc Zyngier 2019-02-26 23:28 ` Brian Norris 2019-02-26 23:28 ` Brian Norris 2019-02-27 10:02 ` Marc Zyngier 2019-02-27 10:02 ` Marc Zyngier 2019-02-27 10:16 ` Ard Biesheuvel 2019-02-27 10:16 ` Ard Biesheuvel 2019-02-27 10:16 ` Ard Biesheuvel 2019-02-27 10:16 ` Ard Biesheuvel 2019-02-27 20:57 ` Brian Norris 2019-02-27 20:57 ` Brian Norris 2019-02-27 20:57 ` Brian Norris 2019-02-27 23:03 ` Rafael J. Wysocki 2019-02-27 23:03 ` Rafael J. Wysocki 2019-02-27 23:03 ` Rafael J. Wysocki 2019-02-28 2:29 ` Brian Norris 2019-02-28 2:29 ` Brian Norris 2019-02-28 2:29 ` Brian Norris 2019-02-28 11:03 ` Rafael J. Wysocki 2019-02-28 11:03 ` Rafael J. Wysocki 2019-02-28 11:03 ` Rafael J. Wysocki 2019-02-27 20:51 ` Brian Norris 2019-02-27 20:51 ` Brian Norris 2019-03-08 8:26 ` Kalle Valo 2019-03-08 8:26 ` Kalle Valo 2019-03-08 8:26 ` Kalle Valo 2019-03-08 9:02 ` Marc Zyngier 2019-03-08 9:02 ` Marc Zyngier 2019-03-08 9:36 ` Kalle Valo 2019-03-08 9: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=20190226233130.GB174696@google.com \ --to=briannorris@chromium.org \ --cc=amitkarwar@gmail.com \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=enric.balletbo@collabora.com \ --cc=gbhat@marvell.com \ --cc=heiko@sntech.de \ --cc=huxinming820@gmail.com \ --cc=kvalo@codeaurora.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=linux-wireless@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=netdev@vger.kernel.org \ --cc=nishants@marvell.com \ --cc=robh+dt@kernel.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: linkBe 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.