• Ming Lei's avatar
    ARM: OMAP3+: fix oops triggered in omap_prcm_register_chain_handler(v1) · 4ba7c3c3
    Ming Lei authored
    This patch fixes the oops below[1].
    
    Obviously, the count of "struct irq_chip_generic" instances to be
    allocated and setup should be irq_setup->nr_regs instead of
    irq_setup->nr_regs plus one, so just fix the iterator to avoid
    the oops.
    
    [1], oops log.
    
    [    1.790242] Unable to handle kernel NULL pointer dereference at virtual address 00000004
    [    1.798632] pgd = c0004000
    [    1.801638] [00000004] *pgd=00000000
    [    1.805400] Internal error: Oops: 805 [#1] PREEMPT SMP THUMB2
    [    1.811381] Modules linked in:
    [    1.814601] CPU: 1    Not tainted  (3.3.0-next-20120320+ #733)
    [    1.820683] PC is at irq_setup_generic_chip+0x6a/0x84
    [    1.825951] LR is at irq_get_irq_data+0x7/0x8
    [    1.830508] pc : [<c006465e>]    lr : [<c0063a03>]    psr: 20000133
    [    1.830512] sp : ee04ff58  ip : 00000000  fp : 00000000
    [    1.842461] r10: 00000000  r9 : 00000000  r8 : 00000800
    [    1.847905] r7 : c064e260  r6 : 000001dc  r5 : 00000001  r4 : ee0accc0
    [    1.854687] r3 : 00000002  r2 : 00000800  r1 : 000001dc  r0 : 00000000
    [    1.861472] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment kernel
    [    1.869234] Control: 50c5387d  Table: 8000404a  DAC: 00000015
    [    1.875215] Process swapper/0 (pid: 1, stack limit = 0xee04e2f8)
    [    1.881463] Stack: (0xee04ff58 to 0xee050000)
    [    1.886017] ff40: c061b668 00000008
    [    1.894497] ff60: c0682090 ee0accc0 00000003 c001c637 00000000 00000000 00000201 00000000
    [    1.902976] ff80: 00000004 c0473820 c0473800 c0459e8d c0680ac0 c000866d 00000004 00000004
    [    1.911455] ffa0: ee04ffa8 00000004 c047381c 00000004 c0473820 c0473800 c0680ac0 00000082
    [    1.919934] ffc0: c0489694 c045265f 00000004 00000004 c0452135 c000d105 00000033 00000000
    [    1.928413] ffe0: c04525b5 c000d111 00000033 00000000 00000000 c000d111 aaaaaaaa aaaaaaaa
    [    1.936912] [<c006465e>] (irq_setup_generic_chip+0x6a/0x84) from [<c001c637>] (omap_prcm_register_chain_handler+0x147/0x1a0)
    [    1.948516] [<c001c637>] (omap_prcm_register_chain_handler+0x147/0x1a0) from [<c000866d>] (do_one_initcall+0x65/0xf4)
    [    1.959500] [<c000866d>] (do_one_initcall+0x65/0xf4) from [<c045265f>] (kernel_init+0xab/0x138)
    [    1.968529] [<c045265f>] (kernel_init+0xab/0x138) from [<c000d111>] (kernel_thread_exit+0x1/0x6)
    [    1.977632] Code: f7ff f9d1 6b23 1af3 (6043) 086d
    [    1.982684] ---[ end trace 1b75b31a2719ed1c ]---
    [    1.987526] Kernel panic - not syncing: Attempted to kill init!
    exitcode=0x0000000b
    Acked-by: default avatarTero Kristo <t-kristo@ti.com>
    Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
    Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
    4ba7c3c3
prm_common.c 8.64 KB