From: Lee Jones <lee.jones@linaro.org>
To: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Cc: sameo@linux.intel.com, patches@opensource.wolfsonmicro.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/4] mfd: arizona: Add additional dummy IRQ callbacks
Date: Tue, 2 Sep 2014 15:26:52 +0100 [thread overview]
Message-ID: <20140902142652.GE870@lee--X1> (raw)
In-Reply-To: <20140902140925.GK12043@opensource.wolfsonmicro.com>
On Tue, 02 Sep 2014, Charles Keepax wrote:
> On Thu, Aug 21, 2014 at 12:56:31PM +0100, Lee Jones wrote:
> > On Tue, 12 Aug 2014, Charles Keepax wrote:
> >
> > > We use a dummy IRQ chip to dispatch interrupts to the two seperate IRQ
> > > domains on the Arizona devices. Currently only the enable and disable
> > > callbacks are defined however, there are some situations where additional
> > > callbacks will be used from the IRQ core, which currently results in an
> > > NULL pointer deference. Add handlers for more of the IRQ callbacks and
> > > combine these into a single function since they are all identical.
> > >
> > > Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> > > ---
> >
> > If you provide .irq_enable(), then .irq_unmask becomes redundant
> > and/or is checked for before invoking. There is a chance of
> > .irq_mask() being called, but if this is a problem, it should be fixed
> > in the IRQ Chip code. There is also one unprotected invocation of
> > .irq_ack(), but I think this should be fixed rather than forcing each
> > user of IRQ Chip to provide all of these call-backs.
>
> So I have been looking at this further and going back over things
> from when the issue was discovered and it looks like it was
> probably the unprotected irq_ack call (in handle_edge_irq) that
> was the problem. But thinking about this more I am fairly
> convinced that the call is unprotected because it is expected that
> an edge IRQ will always have an ack, as it doesn't really make
> sense for an edge IRQ to not have an ack.
>
> The IRQ chip here is just a software device to distribute the IRQ
> to the two sub-domains. As such I think the problem lies here:
>
> irq_set_chip_and_handler(virq, &arizona_irq_chip, handle_edge_irq);
>
> I am pretty sure the correct fix is to change this to a
> handle_simple_irq as it is just a software dummy and there is
> nothing really edge triggered about it. Do you see any problems
> with that as a solution?
I don't pretend to be an expert on the IRQ framework, but this
certainly looks a lot less hacky than your previous submission.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
prev parent reply other threads:[~2014-09-02 14:27 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-12 13:51 [PATCH 1/4] mfd: arizona: Add additional dummy IRQ callbacks Charles Keepax
2014-08-12 13:51 ` [PATCH 2/4] mfd: arizona: Propagate irq_wake through to parent IRQ Charles Keepax
2014-08-21 11:57 ` Lee Jones
2014-08-12 13:51 ` [PATCH 3/4] mfd: arizona: Avoid use of legacy IRQ mapping Charles Keepax
2014-08-21 11:59 ` Lee Jones
2014-08-12 13:51 ` [PATCH 4/4] mfd: arizona: Mark additional registers as volatile Charles Keepax
2014-08-13 9:22 ` Charles Keepax
2014-08-21 11:56 ` [PATCH 1/4] mfd: arizona: Add additional dummy IRQ callbacks Lee Jones
2014-08-21 12:05 ` Charles Keepax
2014-09-02 14:09 ` Charles Keepax
2014-09-02 14:26 ` Lee Jones [this message]
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=20140902142652.GE870@lee--X1 \
--to=lee.jones@linaro.org \
--cc=ckeepax@opensource.wolfsonmicro.com \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@opensource.wolfsonmicro.com \
--cc=sameo@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox