ARM: omap: fix oops in arch/arm/mach-omap2/vp.c when pmic is not found
When the PMIC is not found, voltdm->pmic will be NULL. vp.c's
initialization function tries to dereferences this, which causes an
oops:
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd =
c0004000
[
00000000] *pgd=
00000000
Internal error: Oops: 5 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (3.3.0-rc2+ #204)
PC is at omap_vp_init+0x5c/0x15c
LR is at omap_vp_init+0x58/0x15c
pc : [<
c03db880>] lr : [<
c03db87c>] psr:
60000013
sp :
c181ff30 ip :
c181ff68 fp :
c181ff64
r10:
c0407808 r9 :
c040786c r8 :
c0407814
r7 :
c0026868 r6 :
c00264fc r5 :
c040ad6c r4 :
00000000
r3 :
00000040 r2 :
000032c8 r1 :
0000fa00 r0 :
000032c8
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control:
10c5387d Table:
80004019 DAC:
00000015
Process swapper (pid: 1, stack limit = 0xc181e2e8)
Stack: (0xc181ff30 to 0xc1820000)
ff20:
c0381d00 c02e9c6d c0383582 c040786c
ff40:
c040ad6c c00264fc c0026868 c0407814 00000000 c03d9de4 c181ff8c c181ff68
ff60:
c03db448 c03db830 c02e982c c03fdfb8 c03fe004 c0039988 00000013 00000000
ff80:
c181ff9c c181ff90 c03d9df8 c03db390 c181ffdc c181ffa0 c0008798 c03d9df0
ffa0:
c181ffc4 c181ffb0 c0055a44 c0187050 c0039988 c03fdfb8 c03fe004 c0039988
ffc0:
00000013 00000000 00000000 00000000 c181fff4 c181ffe0 c03d1284 c0008708
ffe0:
00000000 c03d1208 00000000 c181fff8 c0039988 c03d1214 1077ce40 01f7ee08
Backtrace:
[<
c03db824>] (omap_vp_init+0x0/0x15c) from [<
c03db448>] (omap_voltage_late_init+0xc4/0xfc)
[<
c03db384>] (omap_voltage_late_init+0x0/0xfc) from [<
c03d9df8>] (omap2_common_pm_late_init+0x14/0x54)
r8:
00000000 r7:
00000013 r6:
c0039988 r5:
c03fe004 r4:
c03fdfb8
[<
c03d9de4>] (omap2_common_pm_late_init+0x0/0x54) from [<
c0008798>] (do_one_initcall+0x9c/0x164)
[<
c00086fc>] (do_one_initcall+0x0/0x164) from [<
c03d1284>] (kernel_init+0x7c/0x120)
[<
c03d1208>] (kernel_init+0x0/0x120) from [<
c0039988>] (do_exit+0x0/0x2cc)
r5:
c03d1208 r4:
00000000
Code:
e5ca300b e5900034 ebf69027 e5994024 (
e5941000)
---[ end trace
aed617dddaf32c3d ]---
Kernel panic - not syncing: Attempted to kill init!
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>