Re: [PATCH V2 4/7] clocksource: bcm2835: Migrate to new 'set-state' interface

Stephen Warren
2015-06-16T02:57:26Z

On 06/12/2015 02:00 AM, Viresh Kumar wrote:
> Migrate bcm2835 driver to the new 'set-state' interface provided by
> the clockevents core, the earlier 'set-mode' interface is marked
> obsolete now.
>
> This also enables us to implement callbacks for new states of clockevent
> devices, for example: ONESHOT_STOPPED.
>
> We weren't doing anything in the ->set_mode() callback. So, this patch
> doesn't provide any set-state callbacks.

This generates a panic at boot (on top of 4.1.0-rc8+, which certainly at
least booted fine):

> [ 0.008586] clocksource timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
> [ 0.018080] ------------[ cut here ]------------
> [ 0.022843] kernel BUG at kernel/time/clockevents.c:480!
> [ 0.028299] Internal error: Oops - BUG: 0 [#1] ARM
> [ 0.033237] CPU: 0 PID: 0 Comm: swapper Not tainted 4.1.0-rc8+ #46
> [ 0.039567] Hardware name: BCM2835
> [ 0.043092] task: c06fb648 ti: c06f6000 task.ti: c06f6000
> [ 0.048668] PC is at clockevents_register_device+0x15c/0x174
> [ 0.054481] LR is at clockevents_config_and_register+0x2c/0x30
> [ 0.060467] pc : [<c00665e0>] lr : [<c00666b4>] psr: 600001d3
> [ 0.060467] sp : c06f7f18 ip : c0066498 fp : c06f7f34
> [ 0.072243] r10: cdffc660 r9 : 410fb767 r8 : c06db128
> [ 0.077611] r7 : 0000001b r6 : f0003018 r5 : cde38ed4 r4 : cd422020
> [ 0.084294] r3 : 00000002 r2 : 00000000 r1 : 000003e7 r0 : cd422020
> [ 0.090979] Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
> [ 0.098627] Control: 00c5387d Table: 00004008 DAC: 00000015
> [ 0.104521] Process swapper (pid: 0, stack limit = 0xc06f6188)
> [ 0.110502] Stack: (0xc06f7f18 to 0xc06f8000)
> [ 0.114993] 7f00: 000003e7 cd422020
> [ 0.123354] 7f20: cde38ed4 f0003018 c06f7f4c c06f7f38 c00666b4 c0066490 ffffffff cd422000
> [ 0.131715] 7f40: c06f7f7c c06f7f50 c06c3358 c0066694 00000020 c03429ac c06f7f7c 000f4240
> [ 0.140076] 7f60: cde38ed4 00000001 c06f7f84 ffffffff c06f7fa4 c06f7f80 c06c3124 c06c321c
> [ 0.148436] 7f80: 00000001 c06f4ea0 ffffffff 00000000 00000001 c075aea0 c06f7fb4 c06f7fa8
> [ 0.156798] 7fa0: c06988e4 c06c30dc c06f7ff4 c06f7fb8 c0695b90 c06988c0 ffffffff ffffffff
> [ 0.165159] 7fc0: c06956e4 00000000 00000000 c06db128 c075b014 c06f8024 c06db124 c06fc910
> [ 0.173518] 7fe0: 00004008 006d9fcc 00000000 c06f7ff8 00008074 c069597c 00000000 00000000
> [ 0.181910] [<c00665e0>] (clockevents_register_device) from [<c00666b4>] (clockevents_config_and_register+0x2c/0x30)
> [ 0.192661] [<c00666b4>] (clockevents_config_and_register) from [<c06c3358>] (bcm2835_timer_init+0x148/0x19c)
> [ 0.202785] [<c06c3358>] (bcm2835_timer_init) from [<c06c3124>] (clocksource_of_init+0x54/0x98)
> [ 0.211693] [<c06c3124>] (clocksource_of_init) from [<c06988e4>] (time_init+0x30/0x38)
> [ 0.219798] [<c06988e4>] (time_init) from [<c0695b90>] (start_kernel+0x220/0x3a4)
> [ 0.227459] [<c0695b90>] (start_kernel) from [<00008074>] (0x8074)
> [ 0.233803] Code: e5943078 e3530000 1affffd5 eaffffd2 (e7f001f2)
> [ 0.240103] ---[ end trace cb88537fdc8fa200 ]---
> [ 0.244866] Kernel panic - not syncing: Attempted to kill the idle task!
> [ 0.251730] ---[ end Kernel panic - not syncing: Attempted to kill the idle task!