Kernel-2.6.22 ntp bug

From: Hanoch Haim (hhaim)
Date: Mon Sep 22 2008 - 05:07:16 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/