From: Brian Norris <briannorris@chromium.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Shawn Lin <shawn.lin@rock-chips.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Linux PCI <linux-pci@vger.kernel.org>,
"open list:ARM/Rockchip SoC..."
<linux-rockchip@lists.infradead.org>,
Jeffy Chen <jeffy.chen@rock-chips.com>, Tejun Heo <tj@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@codeaurora.org>,
linux-clk@vger.kernel.org
Subject: Re: [PATCH v5 04/10] PCI: rockchip: fix system hang up if activating CONFIG_DEBUG_SHIRQ
Date: Thu, 24 Aug 2017 18:44:05 -0700 [thread overview]
Message-ID: <20170825014403.GA100450@google.com> (raw)
In-Reply-To: <CAKdAkRRFxsAfJrzr=rjo_mtMzP0y9-cRz9Vz+M92AhbYd5B=ww@mail.gmail.com>
On Thu, Aug 24, 2017 at 02:10:52PM -0700, Dmitry Torokhov wrote:
> On Thu, Aug 24, 2017 at 1:21 PM, Bjorn Helgaas <helgaas@kernel.org> wrote:
> > [+cc Tejun, Dmitry, Michael, Stephen, linux-clk for devm/clk questions]
> >
> > On Wed, Aug 23, 2017 at 03:02:38PM +0800, Shawn Lin wrote:
> >> With CONFIG_DEBUG_SHIRQ enabled, the irq tear down routine
> >> would still access the irq handler registed as a shard irq.
> >> Per the comment within the function of __free_irq, it says
> >> "It's a shared IRQ -- the driver ought to be prepared for
> >> an IRQ event to happen even now it's being freed". However
> >> when failing to probe the driver, it may disable the clock
> >> for accessing the register and the following check for shared
> >> irq state would call the irq handler which accesses the register
> >> w/o the clk enabled. That will hang the system forever.
Side note: why is this driver even requesting a shared IRQ? This is for
rk3399, and the IRQ is a dedicated GIC interrupt for the PCIe
controller. It shouldn't need to be 'shared'.
The problem still might not be *only* theoretical though, since it's
still possible for this non-shared interrupt to
(a) trigger
(b) concurrently, we remove/tear down (including disable clocks)
(c) we service the IRQ <-- dead, because clock is disabled
(d) if we ever got here... free_irq()
Brian
next prev parent reply other threads:[~2017-08-25 1:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-23 7:01 [PATCH v5 0/10] Some cleanup and bug fix for pcie-rockchip Shawn Lin
2017-08-23 7:02 ` [PATCH v5 01/10] PCI: rockchip: spilt out rockchip_pcie_setup_irq Shawn Lin
2017-08-23 7:02 ` [PATCH v5 02/10] PCI: rockchip: spilt out rockchip_pcie_enable_clocks Shawn Lin
2017-08-23 7:02 ` [PATCH v5 03/10] PCI: rockchip: spilt out rockchip_pcie_disable_clocks Shawn Lin
2017-08-23 7:02 ` [PATCH v5 04/10] PCI: rockchip: fix system hang up if activating CONFIG_DEBUG_SHIRQ Shawn Lin
2017-08-24 20:21 ` Bjorn Helgaas
2017-08-24 21:10 ` Dmitry Torokhov
2017-08-25 1:44 ` Brian Norris [this message]
2017-08-25 1:05 ` jeffy
2017-08-25 1:38 ` Shawn Lin
2017-08-23 7:02 ` [PATCH v5 05/10] PCI: rockchip: spilt out rockchip_pcie_deinit_phys Shawn Lin
2017-08-23 7:02 ` [PATCH v5 06/10] PCI: rockchip: fix missing phy manipulation for legacy phy Shawn Lin
2017-08-25 21:18 ` Bjorn Helgaas
2017-08-23 7:03 ` [PATCH v5 07/10] PCI: rockchip: Clean up PHY if driver probe or resume fails Shawn Lin
2017-08-23 7:03 ` [PATCH v5 08/10] PCI: rockchip: disable vpcie0v9 for resume_noirq error handling path Shawn Lin
2017-08-23 7:03 ` [PATCH v5 09/10] PCI: rockchip: remove irq domain if failing to probe Shawn Lin
2017-08-23 7:03 ` [PATCH v5 10/10] PCI: rockchip: umap io space " Shawn Lin
2017-08-25 21:38 ` [PATCH v5 0/10] Some cleanup and bug fix for pcie-rockchip Bjorn Helgaas
2017-08-28 2:22 ` Shawn Lin
2017-08-28 18:33 ` Bjorn Helgaas
2017-08-29 0:47 ` Shawn Lin
2017-08-29 18:25 ` Bjorn Helgaas
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=20170825014403.GA100450@google.com \
--to=briannorris@chromium.org \
--cc=bhelgaas@google.com \
--cc=dmitry.torokhov@gmail.com \
--cc=helgaas@kernel.org \
--cc=jeffy.chen@rock-chips.com \
--cc=linux-clk@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mturquette@baylibre.com \
--cc=sboyd@codeaurora.org \
--cc=shawn.lin@rock-chips.com \
--cc=tj@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: 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.