projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9fa2df6
)
ARM: OMAP3+: fix oops triggered in omap_prcm_register_chain_handler(v1)
author
Ming Lei
<tom.leiming@gmail.com>
Thu, 22 Mar 2012 01:23:37 +0000
(09:23 +0800)
committer
Kevin Hilman
<khilman@ti.com>
Thu, 22 Mar 2012 23:11:17 +0000
(16:11 -0700)
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: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/prm_common.c
patch
|
blob
|
blame
|
history
diff --git
a/arch/arm/mach-omap2/prm_common.c
b/arch/arm/mach-omap2/prm_common.c
index 860118ab43e2fe096780ddd9fa44f688ddf7024f..de58b8b878e3abaf9716962ea5ec78abfac3a6e9 100644
(file)
--- a/
arch/arm/mach-omap2/prm_common.c
+++ b/
arch/arm/mach-omap2/prm_common.c
@@
-291,7
+291,7
@@
int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)
goto err;
}
- for (i = 0; i <
=
irq_setup->nr_regs; i++) {
+ for (i = 0; i < irq_setup->nr_regs; i++) {
gc = irq_alloc_generic_chip("PRCM", 1,
irq_setup->base_irq + i * 32, prm_base,
handle_level_irq);