I get this when I activate NTP and ntp "sync" the time the I2C HW clock.
BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
LR = cpu_idle+0xec/0xf0[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438
I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif
kernel 2.6.19-rc5
Jocke
On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:
I get this when I activathte NTP and ntp "sync" the time the I2C HW clock.
You may be better off posting this to lkml and copy the i2c list (and rtc if one exists). Since its more a driver issue than anything really ppc specific. Clearly we are doing schedules() in mpc_xfer() and maybe we shouldn't be.
- kumar
quoted hunk
BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
LR = cpu_idle+0xec/0xf0[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438
I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif
kernel 2.6.19-rc5
Jocke
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
Kumar Gala wrote:
On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:
quoted
I get this when I activathte NTP and ntp "sync" the time the I2C HW clock.
You may be better off posting this to lkml and copy the i2c list (and rtc if one exists). Since its more a driver issue than anything really ppc specific. Clearly we are doing schedules() in mpc_xfer() and maybe we shouldn't be.
It's interrupt unsafe before that; rtc_set_time calls mutex_lock_interruptible. If the RTC must be set from an interrupt, it should be via a workqueue.
-Scott
Joakim,
We are having the exact same problem. And if I understand correctly, the
schedule call in i2c-mpc driver is because we are waiting for the interrupt
signaling a byte transfer complete. If the interrupt does not yet come, the
driver call schedule to wait, both for polling mode and interrupt mode. I
am not sure if it is some problem occurs making the interrupt not coming
quick enough. We still try to resolve. Please let us know if you find a
solution and we definitely will post our finding if we can resolve.
-Ngo
On 11/17/06, Kumar Gala [off-list ref] wrote:
On Nov 17, 2006, at 10:38 AM, Joakim Tjernlund wrote:
quoted
I get this when I activathte NTP and ntp "sync" the time the I2C HW
clock.
You may be better off posting this to lkml and copy the i2c list (and
rtc if one exists). Since its more a driver issue than anything
really ppc specific. Clearly we are doing schedules() in mpc_xfer()
and maybe we shouldn't be.
- kumar
quoted
BUG: scheduling while atomic: swapper/0x00010000/0
Call Trace:^M
[C0245C80] [C000860C] show_stack+0x48/0x194 (unreliable)
[C0245CB0] [C01BEFF4] schedule+0x5d4/0x618
[C0245CF0] [C01BF9C8] schedule_timeout+0x70/0xd0
[C0245D30] [C014416C] i2c_wait+0x164/0x1d8
[C0245D80] [C0144490] mpc_xfer+0x2b0/0x3a8
[C0245DD0] [C01423E8] i2c_transfer+0x58/0x7c
[C0245DF0] [C0141124] ds1307_set_time+0x1bc/0x234
[C0245E00] [C013F82C] rtc_set_time+0xb0/0xb8^M
[C0245E20] [C000BFC4] set_rtc_class_time+0x34/0x58
[C0245E40] [C000C8D0] timer_interrupt+0x5a0/0x5fc
[C0245EE0] [C000F7B0] ret_from_except+0x0/0x14
--- Exception: 901 at cpu_idle+0xc8/0xf0
LR = cpu_idle+0xec/0xf0[C0245FC0] [C000388C] rest_init+0x28/0x38
[C0245FD0] [C01F36E0] start_kernel+0x1d8/0x228
[C0245FF0] [00003438] 0x3438
I have activated RTC CLASS and have this in my board file:
#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif
kernel 2.6.19-rc5
Jocke
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev