linux-stable/arch
Paul Walmsley d8328f3b85 OMAP: counter_32k: init clocksource as part of machine timer init
After commit dc548fbbd2 ("ARM: omap: convert
sched_clock() to use new infrastructure"), OMAPs that use the 32KiHz
"synchronization timer" as their clocksource crash during boot:

[    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[    0.000000] pgd = c0004000
[    0.000000] [00000000] *pgd=00000000
[    0.000000] Internal error: Oops: 80000005 [#1] SMP
[    0.000000] last sysfs file:
[    0.000000] Modules linked in:
[    0.000000] CPU: 0    Tainted: G        W    (2.6.37-07734-g2467802 #7)
[    0.000000] PC is at 0x0
[    0.000000] LR is at sched_clock_poll+0x2c/0x3c
[    0.000000] pc : [<00000000>]    lr : [<c0060b74>]    psr: 600001d3
[    0.000000] sp : c058bfd0  ip : c058a000  fp : 00000000
[    0.000000] r10: 00000000  r9 : 411fc092  r8 : 800330c8
[    0.000000] r7 : c05a08e0  r6 : c0034c48  r5 : c05ffc40  r4 : c0034c4c
[    0.000000] r3 : c05ffe6c  r2 : c05a0bc0  r1 : c059f098  r0 : 00000000
[    0.000000] Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[    0.000000] Control: 10c53c7f  Table: 8000404a  DAC: 00000017

This is due to the recent ARM init_sched_clock() changes and the late
initialization of the counter_32k clock source.  More information here:

   http://marc.info/?l=linux-omap&m=129513468605208&w=2

Fix by initializing the counter_32k clocksource during the machine timer
initialization.

Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
Tested-by: Thomas Weber <weber@corscience.de>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2011-01-18 12:04:12 -07:00
..
alpha thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
arm OMAP: counter_32k: init clocksource as part of machine timer init 2011-01-18 12:04:12 -07:00
avr32 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6 2011-01-13 12:06:58 -08:00
blackfin Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
cris Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-01-13 10:05:56 -08:00
frv
h8300 Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
ia64 [IA64] fix ia64 build failure in pmdp_get_and_clear 2011-01-14 10:56:38 -08:00
m32r
m68k Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2011-01-13 10:24:52 -08:00
m68knommu m68knommu: Need to check __get_user()/__put_user() result 2011-01-07 14:07:00 +01:00
microblaze Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze 2011-01-11 11:13:46 -08:00
mips thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
mn10300 kernel: clean up USE_GENERIC_SMP_HELPERS 2011-01-13 08:03:08 -08:00
parisc parisc: fix compile breakage caused by inlining maybe_mkwrite 2011-01-16 15:05:44 -08:00
powerpc thp: alter compound get_page/put_page 2011-01-13 17:32:39 -08:00
s390 Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 2011-01-14 08:47:26 -08:00
score
sh Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-01-13 20:15:18 -08:00
sparc thp: pte alloc trans splitting 2011-01-13 17:32:40 -08:00
tile arch/tile: handle rt_sigreturn() more cleanly 2010-12-17 16:59:29 -05:00
um thp: pte alloc trans splitting 2011-01-13 17:32:40 -08:00
x86 Merge branches 'core-fixes-for-linus', 'x86-fixes-for-linus', 'timers-fixes-for-linus' and 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-15 12:45:00 -08:00
xtensa thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
.gitignore
Kconfig [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00