diff options
author | Anand Gadiyar <gadiyar@ti.com> | 2010-10-14 22:59:57 +0530 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-10-16 18:22:03 +0200 |
commit | 05d0ca85c91013d5f73c43fb566bde09a9718019 (patch) | |
tree | a67eb38f8120bd89be8bae8b89e35b7bcab48c43 /arch/arm/kernel/irq.c | |
parent | c0a19ebc018222ffd1dd93af5b53d9efd779c19b (diff) | |
download | blackbird-op-linux-05d0ca85c91013d5f73c43fb566bde09a9718019.tar.gz blackbird-op-linux-05d0ca85c91013d5f73c43fb566bde09a9718019.zip |
genirq, ARM: Fix boot on ARM platforms
Commit b683de2b3 in linux-next as of 20101014 (genirq: Query
arch for number of early descriptors) seems to have broken
bootup on several ARM boards - my beagleboard gives the
following dump with earlyprintk:
NR_IRQS:402
Unable to handle kernel NULL pointer dereference at virtual
address 00000028 pgd = c0004000
[00000028] *pgd=00000000
Internal error: Oops: 5 [#1]
last sysfs file:
Modules linked in:
CPU: 0 Not tainted
(2.6.36-rc7-next-20101014-linux-next-20101012+ #40) PC is at
init_IRQ+0x14/0x48 LR is at start_kernel+0x150/0x2c0
[...]
We seem to be using desc->status without assigning desc to
anything. Fix this by adding back the code that was originally
there.
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Tested-by: Linus Walleij <linus.walleij@stericsson.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org
LKML-Reference: <1287077397-21781-1-git-send-email-gadiyar@ti.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/arm/kernel/irq.c')
-rw-r--r-- | arch/arm/kernel/irq.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 5456d11d6ae4..0e65d7ec8209 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c @@ -157,8 +157,10 @@ void __init init_IRQ(void) struct irq_desc *desc; int irq; - for (irq = 0; irq < nr_irqs; irq++) + for (irq = 0; irq < nr_irqs; irq++) { + desc = irq_to_desc_alloc_node(irq, 0); desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE; + } init_arch_irq(); } |