From: Grant Likely <grant.likely@linaro.org>
To: Olof Johansson <olof@lixom.net>
Cc: devicetree@vger.kernel.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Kevin Hilman <khilman@linaro.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [RFC 4/9] of/irq: Refactor interrupt-map parsing
Date: Fri, 01 Nov 2013 11:54:01 -0700 [thread overview]
Message-ID: <20131101185401.B298FC40868@trevor.secretlab.ca> (raw)
In-Reply-To: <20131101175317.A812AC40868@trevor.secretlab.ca>
On Fri, 01 Nov 2013 10:53:17 -0700, Grant Likely <grant.likely@linaro.org> wrote:
> On Thu, 31 Oct 2013 11:57:14 -0700, Olof Johansson <olof@lixom.net> wrote:
> > On Wed, Oct 30, 2013 at 02:25:21PM -0700, Grant Likely wrote:
> > > (Sorry for HTML mail)
> > >
> > > Can you put #define DEBUG at the top of drivers/of/irq.c and send me the
> > > log output from before and after the commit?
> >
> > Here you go, quite verbose log below.
> >
> > Looks like we're tripping the "no reg passed in" checks, not sure if related.
>
> I think I've found the bug. See if this helps...
That one was broken. Try this instead.
>From bcbffc3d16f49451ef505dc021480aa061465a15 Mon Sep 17 00:00:00 2001
From: Grant Likely <grant.likely@linaro.org>
Date: Fri, 1 Nov 2013 10:50:50 -0700
Subject: [PATCH] of: Fixup interrupt parsing failure.
Signed-off-by: Grant Likely <grant.likely@linaro.org>
---
drivers/of/irq.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 8cc62b4a7988..422f253b61c1 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -97,7 +97,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
__be32 initial_match_array[8];
const __be32 *match_array = initial_match_array;
- const __be32 *tmp, *imap, *imask, dummy_imask[] = { ~0, ~0, ~0, ~0, ~0 };
+ const __be32 *tmp, *imap, *imask, dummy_imask[] = { ~0, ~0, ~0, ~0, ~0, ~0, ~0, ~0 };
u32 intsize = 1, addrsize, newintsize = 0, newaddrsize = 0;
int imaplen, match, i;
@@ -147,18 +147,9 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
pr_debug(" -> addrsize=%d\n", addrsize);
- /* If we were passed no "reg" property and we attempt to parse
- * an interrupt-map, then #address-cells must be 0.
- * Fail if it's not.
- */
- if (addr == NULL && addrsize != 0) {
- pr_debug(" -> no reg passed in when needed !\n");
- return -EINVAL;
- }
-
- /* Precalculate the match array - this simplifies match loop */
+ /* Precalculate the initial match array to simplify match loop */
for (i = 0; i < addrsize; i++)
- initial_match_array[i] = addr[i];
+ initial_match_array[i] = addr ? addr[i] : 0;
for (i = 0; i < intsize; i++)
initial_match_array[addrsize + i] = cpu_to_be32(out_irq->args[i]);
@@ -174,6 +165,15 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
return 0;
}
+ /* If we were passed no "reg" property and we attempt to parse
+ * an interrupt-map, then #address-cells must be 0.
+ * Fail if it's not.
+ */
+ if (addrsize && !addr) {
+ pr_debug(" -> no reg passed in when needed !\n");
+ return -EINVAL;
+ }
+
/* Now look for an interrupt-map */
imap = of_get_property(ipar, "interrupt-map", &imaplen);
/* No interrupt map, check for an interrupt parent */
--
1.8.1.2
next prev parent reply other threads:[~2013-11-01 18:54 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-15 20:39 [RFC 0/9] of: refactor IRQ parsing and add interrupts-extended implementation Grant Likely
[not found] ` < 1381869563-16083-10-git-send-email-grant.likely@linaro.org>
[not found] ` < CAEgOgz6=HhBkb2KtxcmHpNdE_0sNngw0NaL2SnLWj1opZkO3SA@mail.gmail.com>
[not found] ` < 20131112065405.C75E8C42024@trevor.secretlab.ca>
[not found] ` < CAEgOgz6j8YsvFgq8ZbE20ocHPA0C-eUGBb7F1gNiVBvJXLa8_g@mail.gmail.com>
[not found] ` < 20131112085038.B6A75C421BB@trevor.secretlab.ca>
[not found] ` < CAEgOgz4dM1zQdFpOkUwZqAUMUBe2eh3j1Ah0KgomVAOGgrPsVw@mail.gmail.com>
[not found] ` < 20131113061425.667F9C41807@trevor.secretlab.ca>
[not found] ` < CAEgOgz5BWzo-LGddjG6ZUtKt6GHxLmDUEndFOdVrn+1HTPvpGQ@mail.gmail.com>
[not found] ` < 20131124213212.226B8C402C3@trevor.secretlab.ca>
2013-10-15 20:39 ` [RFC 1/9] of/irq: Rename of_irq_map_* functions to of_irq_parse_* Grant Likely
2013-10-16 10:47 ` Michal Simek
2013-10-15 20:39 ` [RFC 2/9] of/irq: Replace of_irq with of_phandle_args Grant Likely
2013-10-15 20:39 ` [RFC 3/9] of/irq: simplify args to irq_create_of_mapping Grant Likely
2013-10-15 20:39 ` [RFC 4/9] of/irq: Refactor interrupt-map parsing Grant Likely
2013-10-29 16:23 ` Olof Johansson
2013-10-31 1:19 ` Ming Lei
[not found] ` <CACxGe6uE+KvycQq3XBavRcvprff6PhBaxX54W_Cb1cfuVpMXvQ@mail.gmail.com>
2013-10-31 18:57 ` Olof Johansson
2013-11-01 14:48 ` Grant Likely
2013-11-01 17:53 ` Grant Likely
2013-11-01 18:54 ` Grant Likely [this message]
2013-11-02 4:16 ` Ming Lei
2013-11-04 5:04 ` Olof Johansson
2013-11-05 15:18 ` Tomasz Figa
2013-11-05 15:21 ` [PATCH 1/2] of: irq: Fix interrupt-map entry matching Tomasz Figa
2013-11-07 11:32 ` Tomasz Figa
2013-11-07 16:40 ` Rob Herring
2013-11-07 22:11 ` Tomasz Figa
2013-11-08 9:37 ` Grant Likely
2013-11-07 11:50 ` Sachin Kamat
2013-11-05 15:21 ` [PATCH 2/2] of: irq: Check for reg property presence only when parsing interrupt-map Tomasz Figa
2013-11-07 11:33 ` Tomasz Figa
2013-11-01 19:07 ` [RFC 4/9] of/irq: Refactor interrupt-map parsing Stephen Warren
2013-10-31 20:45 ` [RFC 4/9] of/irq: Refactor interrupt-map parsing [CPU hotplug clockevents issue] Stephen Warren
2013-10-15 20:39 ` [RFC 5/9] of: Add helper for printing an of_phandle_args structure Grant Likely
2013-10-15 20:39 ` [RFC 6/9] of: Add testcases for interrupt parsing Grant Likely
2013-10-15 20:39 ` [RFC 7/9] of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code Grant Likely
2013-10-15 20:39 ` [RFC 8/9] microblaze/pci: Drop PowerPC-ism from irq parsing Grant Likely
2013-10-15 20:39 ` [RFC 9/9] of/irq: create interrupts-extended property Grant Likely
2013-10-17 17:33 ` Tony Lindgren
2013-10-27 13:46 ` Grant Likely
2013-10-27 20:24 ` Rob Herring
2013-10-28 3:16 ` Mark Rutland
2013-10-28 6:54 ` Kumar Gala
2013-10-28 21:47 ` Stephen Warren
2013-10-28 22:49 ` Mark Rutland
2013-10-28 23:16 ` Benjamin Herrenschmidt
2013-10-28 6:54 ` Kumar Gala
2013-10-28 23:41 ` Grant Likely
2013-11-11 22:58 ` Peter Crosthwaite
2013-11-12 6:54 ` Grant Likely
2013-11-12 7:49 ` Peter Crosthwaite
2013-11-12 8:50 ` Grant Likely
2013-11-12 23:17 ` Peter Crosthwaite
2013-11-13 6:14 ` Grant Likely
2013-11-24 7:04 ` Peter Crosthwaite
2013-11-24 21:32 ` Grant Likely
2013-11-27 9:06 ` Peter Crosthwaite
2013-11-27 14:17 ` Grant Likely
2013-11-28 7:28 ` Peter Crosthwaite
2013-10-17 17:30 ` [RFC 0/9] of: refactor IRQ parsing and add interrupts-extended implementation Tony Lindgren
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=20131101185401.B298FC40868@trevor.secretlab.ca \
--to=grant.likely@linaro.org \
--cc=benh@kernel.crashing.org \
--cc=devicetree@vger.kernel.org \
--cc=khilman@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=olof@lixom.net \
/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
all inboxes | Powered by JetHome®