Messages in this thread | | | Subject | Kernel-2.6.22 ntp bug | Date | Mon, 22 Sep 2008 11:06:57 +0200 | From | "Hanoch Haim (hhaim)" <> |
| |
Hi All, I'm new to this mailing list.
I think there is a bug in the kernel/time/ntp.c
The code call to the function update_persistent_clock(struct timespec now); the driver below might be implement with i2c (driver of rtc ) which is not interrupt safe.
I have changed the ntp to use work_queue what do you think ?
attached the changed code:
+ fail = dpc_update_persistent_clock(now);
instead of
- update_persistent_clock(now); // this is called to function that might be block. you can't do that in interrupt context
the function call schedule_work
extern int dpc_update_persistent_clock(struct timespec now){
my_ntp.now=now;
return(schedule_work(&my_ntp.update_rtc_queue));
}
another option is to change the wrapper function for the set_rtc_xx but in this case you will need to change all the platforms that uses it ( powerpc)
Hanoh
| |