linux/arch/arm/mach-imx
Shawn Guo bdb1b5f2dd ARM: imx: initialize clk_init_data.flags for clk-fixup-mux
The clk_init_data.flags of clk-fixup-mux is left there without
initialization.  It may hold some random data and cause clock framework
interpret the clock in an unexpected way.  At least on imx6sl, the
following division by zero error with sched_clock is seen because of it.

Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.11.0-rc3+ #19
Backtrace:
[<80011af0>] (dump_backtrace+0x0/0x10c) from [<80011c90>] (show_stack+0x18/0x1c)
 r6:3b9aca00 r5:00000020 r4:00000000 r3:00000000
[<80011c78>] (show_stack+0x0/0x1c) from [<8055e02c>] (dump_stack+0x78/0x94)
[<8055dfb4>] (dump_stack+0x0/0x94) from [<80011924>] (__div0+0x18/0x20)
 r4:00000000 r3:00000000
[<8001190c>] (__div0+0x0/0x20) from [<8026c408>] (Ldiv0_64+0x8/0x18)
[<8006330c>] (clocks_calc_mult_shift+0x0/0xf8) from [<8072f604>] (setup_sched_clock+0x88/0x1f0)
[<8072f57c>] (setup_sched_clock+0x0/0x1f0) from [<8071ad48>] (mxc_timer_init+0xe8/0x17c)
[<8071ac60>] (mxc_timer_init+0x0/0x17c) from [<807290b0>] (imx6sl_clocks_init+0x1db8/0x1dc0)
 r8:807a9ca4 r7:00000000 r6:80777564 r5:8100c1f4 r4:c0820000
[<807272f8>] (imx6sl_clocks_init+0x0/0x1dc0) from [<807420ac>] (of_clk_init+0x40/0x6c)
[<8074206c>] (of_clk_init+0x0/0x6c) from [<807290cc>] (imx6sl_timer_init+0x14/0x18)
 r5:807a8e80 r4:ffffffff
[<807290b8>] (imx6sl_timer_init+0x0/0x18) from [<80716e1c>] (time_init+0x24/0x34)
[<80716df8>] (time_init+0x0/0x34) from [<80713738>] (start_kernel+0x1b0/0x310)
[<80713588>] (start_kernel+0x0/0x310) from [<80008074>] (0x80008074)
 r7:80770b08 r6:80754cd4 r5:8076c8c4 r4:10c53c7d
sched_clock: 32 bits at 0 Hz, resolution 0ns, wraps every 0ms

Fix the bug by initializing init.flags as zero.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2013-09-17 10:04:23 +08:00
..
devices ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
3ds_debugboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
3ds_debugboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
anatop.c ARM: imx: Move anatop related from board file to anatop driver 2013-08-22 23:20:51 +08:00
avic.c ARM: arm-soc cleanup for 3.10 2013-05-02 09:03:55 -07:00
board-mx31lilly.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31lite.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31moboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-pcm038.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
clk-busy.c ARM: arm-soc non-critical fixes for 3.10 2013-05-02 08:56:55 -07:00
clk-fixup-div.c ARM: imx: add common clock support for fixup div 2013-08-16 13:11:24 +08:00
clk-fixup-mux.c ARM: imx: initialize clk_init_data.flags for clk-fixup-mux 2013-09-17 10:04:23 +08:00
clk-gate2.c ARM: mach-imx: clk-gate2: Include "clk.h" 2013-04-01 16:17:50 +08:00
clk-imx1.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
clk-imx6q.c ARM: imx6q: remove board specific CLKO setup 2013-08-22 23:29:34 +08:00
clk-imx6sl.c ARM: imx6: change some clocks to fixup clocks 2013-08-16 13:11:25 +08:00
clk-imx21.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
clk-imx25.c ARM: i.MX25: clk: parent per5_clk to AHB clock 2013-02-05 10:54:35 +01:00
clk-imx27.c ARM: imx27 DT init cpufreq-cpu0 device 2013-04-09 22:52:56 +08:00
clk-imx31.c Linux 3.8-rc6 2013-02-04 22:56:41 -08:00
clk-imx35.c ARM: imx35 Bugfix admux clock 2013-04-09 19:46:30 +08:00
clk-imx51-imx53.c ARM: imx: add ocram clock for imx53 2013-08-22 23:29:46 +08:00
clk-pfd.c ARM: imx: add common clock support for pfd 2012-05-02 12:08:20 +02:00
clk-pllv1.c ARM: mach-imx: clk-pllv1: Staticize clk_pllv1_ops 2013-04-01 16:17:49 +08:00
clk-pllv2.c ARM: mach-imx: clk-pllv2: Staticize clk_pllv2_ops 2013-04-01 16:17:50 +08:00
clk-pllv3.c ARM: imx: clk-pllv3: improve the timeout waiting method 2013-08-16 13:11:25 +08:00
clk-vf610.c ARM: imx: fix vf610 enet module clock selection 2013-07-15 08:28:09 +08:00
clk.c ARM: imx6: change some clocks to fixup clocks 2013-08-16 13:11:25 +08:00
clk.h The common clk framework changes for 3.12 are dominated by clock driver 2013-09-09 15:49:04 -07:00
common.h ARM: imx: Move anatop related from board file to anatop driver 2013-08-22 23:20:51 +08:00
cpu-imx5.c ARM: mach-imx: cpu-imx5: Include "common.h" 2013-04-01 16:17:49 +08:00
cpu-imx25.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx31.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx35.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu.c ARM: mach-imx: cpu: Include "common.h" 2013-04-01 16:17:48 +08:00
cpuidle-imx5.c ARM: imx: cpuidle: use init/exit common routine 2013-04-23 13:45:23 +02:00
cpuidle-imx6q.c ARM: imx: cpuidle: use init/exit common routine 2013-04-23 13:45:23 +02:00
cpuidle.h ARM: imx: cpuidle: use init/exit common routine 2013-04-23 13:45:23 +02:00
crm-regs-imx5.h ARM i.MX53: Fix PLL4 base address 2012-06-04 15:23:57 +02:00
crmregs-imx3.h ARM i.MX3: Make ccm base address a variable 2012-04-25 17:03:45 +02:00
devices-imx1.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx21.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx25.h ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
devices-imx27.h ARM : i.MX27 : split code for allocation of ressources of camera and eMMA 2012-11-16 16:21:48 +01:00
devices-imx31.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx35.h ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
devices-imx51.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
ehci-imx5.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
ehci-imx25.c Merge branch 'next/cam-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc 2012-11-30 09:27:57 -08:00
ehci-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
ehci-imx31.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
ehci-imx35.c Merge branch 'next/cam-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc 2012-11-30 09:27:57 -08:00
epit.c ARM: use clockevents_config_and_register() where possible 2013-01-14 10:12:42 -08:00
eukrea_mbimx27-baseboard.c ARM: cpuimx27 and mbimx27: prepend CONFIG_ to Kconfig macro 2013-04-03 16:50:54 +08:00
eukrea_mbimxsd25-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea_mbimxsd35-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea_mbimxsd51-baseboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
eukrea-baseboards.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
gpc.c ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
hardware.h ARM: imx: include <asm/io.h> in hardware.h 2013-06-17 15:45:10 +08:00
headsmp.S ARM: imx: replicate the diagnostic register of boot cpu into secondary cores 2013-05-12 21:39:18 +08:00
hotplug.c ARM: imx: compile fix for hotplug.c 2013-05-09 13:05:22 -07:00
iim.h ARM: imx: include iim.h rather than mach/iim.h 2012-10-15 10:03:10 +08:00
imx25-dt.c ARM: imx: create mxc_arch_reset_init_dt() for DT boot 2013-06-17 15:45:10 +08:00
imx27-dt.c ARM: imx: create mxc_arch_reset_init_dt() for DT boot 2013-06-17 15:45:10 +08:00
imx31-dt.c ARM: imx: create mxc_arch_reset_init_dt() for DT boot 2013-06-17 15:45:10 +08:00
imx51-dt.c ARM: imx: create mxc_arch_reset_init_dt() for DT boot 2013-06-17 15:45:10 +08:00
iomux-imx31.c ARM: mach-imx: iomux-imx31: Staticize mxc_pin_alloc_map 2013-04-01 16:17:48 +08:00
iomux-mx1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx2x.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx3.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx21.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx25.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx27.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx35.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx51.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v1.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
iomux-v1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v3.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
iomux-v3.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
irq-common.c ARM: imx: irq-common: Include header to avoid sparse warning 2013-06-17 15:45:14 +08:00
irq-common.h ARM: imx: remove header file mach/irqs.h 2012-10-15 10:05:43 +08:00
Kconfig ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
mach-apf9328.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-armadillo5x0.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-bug.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-cpuimx27.c ARM: cpuimx27 and mbimx27: prepend CONFIG_ to Kconfig macro 2013-04-03 16:50:54 +08:00
mach-cpuimx35.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-cpuimx51sd.c ARM: imx: Remove cpufreq driver 2013-04-01 16:17:34 +08:00
mach-eukrea_cpuimx25.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-imx6q.c ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
mach-imx6sl.c ARM: imx: use imx specific L2 init function on imx6sl 2013-08-16 13:11:23 +08:00
mach-imx27_visstrim_m10.c gpio: (gpio-pca953x) move header to linux/platform_data/ 2013-08-29 12:33:52 -07:00
mach-imx27ipcam.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-imx27lite.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-imx53.c ARM: imx: move imx53-qsb audio codec clk lookup into DT 2013-06-17 16:04:15 +08:00
mach-kzm_arm11_01.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx1ads.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx21ads.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx25_3ds.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
mach-mx27_3ds.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx27ads.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx31_3ds.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx31ads.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx31lilly.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx31lite.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx31moboard.c leds: leds-mc13783: Prepare driver to support MC13892 LEDs 2013-06-20 16:21:34 -07:00
mach-mx35_3ds.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-mx51_babbage.c ARM: imx: Remove cpufreq driver 2013-04-01 16:17:34 +08:00
mach-mxt_td60.c gpio: (gpio-pca953x) move header to linux/platform_data/ 2013-08-29 12:33:52 -07:00
mach-pca100.c ARM: imx: Remove mxc specific ulpi access ops 2013-06-17 15:45:16 +08:00
mach-pcm037_eet.c ARM: imx: include common.h rather than mach/common.h 2012-10-15 10:03:10 +08:00
mach-pcm037.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-pcm038.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-pcm043.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
mach-qong.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-scb9328.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mach-vf610.c ARM: imx: add initial support for VF610 2013-06-17 15:45:16 +08:00
mach-vpr200.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
Makefile ARM: imx: add common clock support for fixup mux 2013-08-16 13:11:24 +08:00
mm-imx1.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx3.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-07-03 09:46:29 -07:00
mm-imx5.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-09-10 13:37:36 -07:00
mm-imx21.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx25.c ARM: i.MX: remove sdma script address arrays from platform data 2013-08-26 20:47:16 +05:30
mm-imx27.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mmdc.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mx1-camera-fiq-ksym.c ARM: imx: move platform_data definitions 2012-09-14 11:17:21 +02:00
mx1-camera-fiq.S ARM: imx: move mx1 support to mach-imx 2010-06-30 08:59:44 +02:00
mx1.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx2x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx3x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx21.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx25.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx27.h ARM: i.MX27: Typo fix 2013-07-15 08:28:07 +08:00
mx31.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31lilly-db.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31lite-db.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31moboard-devboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31moboard-marxbot.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31moboard-smartbot.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx35.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx51.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx53.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mxc.h ARM: imx: add initial imx6dl support 2013-04-12 19:28:15 +08:00
pcm037.h ARM: imx: use machine specific hook for late init 2012-05-08 20:36:16 +08:00
pcm970-baseboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
platsmp.c arm: delete __cpuinit/__CPUINIT usage from all ARM users 2013-07-14 19:36:52 -04:00
pm-imx3.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
pm-imx5.c ARM: mx53: Allow suspend/resume 2013-08-22 23:20:45 +08:00
pm-imx6q.c ARM: imx: enable anatop suspend/resume 2013-04-12 19:01:42 +08:00
pm-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
src.c ARM: arm-soc platform updates for 3.10, part 3 2013-05-07 11:02:18 -07:00
ssi-fiq-ksym.c ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
ssi-fiq.S ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
system.c ARM: imx: fix imx_init_l2cache storage class 2013-08-16 13:11:23 +08:00
time.c sched_clock: Make ARM's sched_clock generic for all architectures 2013-06-12 14:02:13 -07:00
tzic.c ARM: mach-imx: tzic: Staticize *tzic_base 2013-04-01 16:17:51 +08:00
ulpi.h ARM: imx: Remove mxc specific ulpi access ops 2013-06-17 15:45:16 +08:00