From: Paul Walmsley Date: Fri, 10 Apr 2009 02:20:41 +0000 (-0600) Subject: OMAP2xxx clock: init osc_ck, sys_ck internal lists early X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=be99ca4dd45b5ffc3ff30b2c80d7103aa1451afc;p=linux-2.6-omap-h63xx.git OMAP2xxx clock: init osc_ck, sys_ck internal lists early Commit 3f0a820c4c0b4670fb5f164baa5582e23c2ef118 breaks OMAP2xxx boot during initial propagate_rate() on osc_ck and sys_ck. Fix by calling clk_init_one() for these clocks first. Resolves <1>Unable to handle kernel NULL pointer dereference at virtual address 00000000 <1>pgd = c0004000 <1>[00000000] *pgd=00000000 Internal error: Oops: 5 [#1] Modules linked in: CPU: 0 Not tainted (2.6.29-omap1 #37) PC is at propagate_rate+0x10/0x60 LR is at omap2_clk_init+0x30/0x218 ... Signed-off-by: Paul Walmsley Tested-by: Jarkko Nikula Cc: Russell King --- diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c index 1e839c5a28c..3b7ecc6c43e 100644 --- a/arch/arm/mach-omap2/clock24xx.c +++ b/arch/arm/mach-omap2/clock24xx.c @@ -720,6 +720,8 @@ int __init omap2_clk_init(void) clk_init(&omap2_clk_functions); + clk_init_one(&osc_ck); + clk_init_one(&sys_ck); osc_ck.rate = omap2_osc_clk_recalc(&osc_ck); propagate_rate(&osc_ck); sys_ck.rate = omap2_sys_clk_recalc(&sys_ck);