Hi all!
I was just wondering if calling do_gettimeofday in an ADEOS interrupt
handler might cause any problems whatsoever ?
My ISR:
flags = adeos_critical_enter (NULL);
[...]
do_gettimeofday()
[...]
adeos_critical_exit (flags);
I saw that the code for do_gettimeofday is different in kernel 2.4 and
kernel 2.6:
Kernel 2.4:
void do_gettimeofday(struct timeval *tv) {
[...]
read_lock_irqsave(&xtime_lock, flags);
[...]
read_unlock_irqrestore(&xtime_lock, flags);
Kernel 2.6:
void do_gettimeofday(struct timeval *tv) {
[...]
do {
[...]
seq = read_seqbegin(&xtime_lock);
[...]
} while (read_seqretry(&xtime_lock, seq));
Well, read_lock_irqsave in 2.4 looks like a possible source for trouble,
while read_seqbegin in 2.6 doesn't do anything with interrupts, right ?
Thanks for all comments!
Best regards,
Hannes.