GIC irq_start detection breaks 3.2 boot on platforms without PPIs
Will Deacon
will.deacon at arm.com
Mon Nov 28 06:38:00 EST 2011
On Sun, Nov 27, 2011 at 01:00:16PM +0000, Will Deacon wrote:
> On Sat, Nov 26, 2011 at 10:08:34PM +0000, Russell King - ARM Linux wrote:
> > I've merged this into my fixes branch, but when I re-merge this with
> > Marc's irqchip consolidation, I get conflicts. I think I've fixed it
> > correctly, but please check the result, which you'll find in my for-next
> > branch.
>
> Thanks for merging this. I've just had a quick look and the resolution looks
> functionally correct to me (I'll try booting your for-next branch tomorrow).
I've tested on 1176, A8 and A9 platforms and your for-next branch seems to
be ok. I do get these compilation warnings on the UP CPUs:
arch/arm/mm/ioremap.c: In function ‘unmap_area_sections’:
arch/arm/mm/ioremap.c:80:3: warning: passing argument 1 of ‘pmd_offset’ from incompatible pointer type
/home/will/work/aarch32/linux/linux/arch/arm/include/asm/pgtable.h:181:22: note: expected ‘struct pud_t *’ but argument is of type ‘pmdval_t (*)[2]’
arch/arm/mm/ioremap.c: In function ‘remap_area_sections’:
arch/arm/mm/ioremap.c:130:3: warning: passing argument 1 of ‘pmd_offset’ from incompatible pointer type
/home/will/work/aarch32/linux/linux/arch/arm/include/asm/pgtable.h:181:22: note: expected ‘struct pud_t *’ but argument is of type ‘pmdval_t (*)[2]’
arch/arm/mm/ioremap.c: In function ‘remap_area_supersections’:
arch/arm/mm/ioremap.c:167:4: warning: passing argument 1 of ‘pmd_offset’ from incompatible pointer type
/home/will/work/aarch32/linux/linux/arch/arm/include/asm/pgtable.h:181:22: note: expected ‘struct pud_t *’ but argument is of type ‘pmdval_t (*)[2]’
and if I cat /proc/self/net/dev_mcast, then I get an OOPs:
[ 41.771296] Unable to handle kernel NULL pointer dereference at virtual address 00000010
[ 41.797076] pgd = c797c000
[ 41.806863] [00000010] *pgd=070e7831, *pte=00000000, *ppte=00000000
[ 41.827111] Internal error: Oops: 17 [#1] PREEMPT
[ 41.841221] Modules linked in:
[ 41.850392] CPU: 0 Tainted: G W (3.2.0-rc2+ #3)
[ 41.867681] PC is at dev_seq_next+0x14c/0x1dc
[ 41.880763] LR is at seq_read+0x43c/0x494
[ 41.892798] pc : [<c024d564>] lr : [<c00cee54>] psr: 60000013
[ 41.892826] sp : c79f3ed4 ip : 00006405 fp : 00008000
[ 41.927254] r10: 00000010 r9 : c79f3f80 r8 : 00000010
[ 41.942927] r7 : 00000000 r6 : 00000001 r5 : c041d100 r4 : 00000001
[ 41.962512] r3 : c024d418 r2 : c79f3f08 r1 : 00000001 r0 : c70e5640
[ 41.982100] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 42.003512] Control: 00c5387d Table: 0797c008 DAC: 00000015
[ 42.020750] Process cat (pid: 764, stack limit = 0xc79f22f0)
[ 42.037728] Stack: (0xc79f3ed4 to 0xc79f4000)
[ 42.050805] 3ec0: 00000000 00000001 c70e5640
[ 42.075369] 3ee0: c7091b00 00000000 c79f3f80 c79f3f08 c03f07c4 0138a000 c70e5668 00000000
[ 42.099931] 3f00: 00000000 400f1000 00000001 00000000 00000025 c7862000 c00cea18 0138a000
[ 42.124493] 3f20: c79f3f80 c79f2000 c79f2000 00000000 00000000 c00f6c2c 000000c5 c7091b00
[ 42.149059] 3f40: 0138a000 0138a000 c79f3f80 c7091b00 00008000 c00b0be8 00000003 c00a8124
[ 42.173621] 3f60: 00000001 c7091b00 0138a000 00000000 00000000 00008000 00000000 c00b0cf8
[ 42.198181] 3f80: 00000000 00000000 00000025 00000000 00008000 0138a000 00000003 00000003
[ 42.222745] 3fa0: c000e344 c000e1c0 00008000 0138a000 00000003 0138a000 00008000 0138a000
[ 42.247307] 3fc0: 00008000 0138a000 00000003 00000003 0138a000 00000000 400f1000 00000000
[ 42.271869] 3fe0: 7fffe000 be951b50 0000dea0 401f8a7c 60000010 00000003 00000000 00000000
[ 42.296468] [<c024d564>] (dev_seq_next+0x14c/0x1dc) from [<c03f07c4>] (0xc03f07c4)
[ 42.319206] Code: eaffffee e590803c e59f508c e1a0a008 (e5984000)
[ 42.343526] ---[ end trace 1b75b31a2719ed1f ]---
but I don't think that's your fault (excuse the pun)!
Will
More information about the linux-arm-kernel
mailing list