Messages in this thread |  | | | Subject | RE: Kernel-2.6.22 ntp bug | | Date | Mon, 22 Sep 2008 15:28:12 +0200 | | From | "Hanoch Haim (hhaim)" <> |
| |
Another option is to change all the drivers to be interrupts safe
Hanoh
-----Original Message----- From: Hanoch Haim (hhaim) Sent: Monday, September 22, 2008 12:07 PM To: linux-kernel@vger.kernel.org Cc: cl@linux-foundation.org; Hanoch Haim (hhaim) Subject: Kernel-2.6.22 ntp bug 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
|  |