On Tue, 23 Oct 2007, Atsushi Nemoto wrote: > Added Thomas Gleixner for CC list. > > On Tue, 23 Oct 2007 11:15:58 +0900, Yoichi Yuasa <yoichi_yuasa@xxxxxxxxxxxxxx> wrote: > > > > > These clockevent routines are always called with interrupt disabled, > > > > > so I suppose those spin_lock_irqsave/spin_unlock_irqrestore pairs can > > > > > be omitted. (or this timer can be used on SMP?) > > > > > > > > Yes, it can be used on Malta(SMP). > > > > > > Then spin_lock()/spin_unlock() is enough, isn't it? > > > > The timer control register(GT_TC_CONTROL_OFS) is shared with 4 timers. > > The 4 timers are connected with separate IRQ. > > > > clockevents_program_event() and clockevents_set_mode() can be called from > > anywhere(in the kernel). > > > > I think that it's necessary for it. > > Hmm... clockevents_set_mode() must be called with interrupt disabled > as stated in its comment. There are no such a comment for > clockevents_program_event(), but it is always called with interrupt > disabled if the interrupt for the event was registered with > IRQF_DISABLED flag. > > I agree that saving/restoring irq_flag would be safer, but I think it > can be omitted at least for now. > > If clockevents_program_event() could be called with interrupt enabled, > mips_next_event() in cevt-r4k.c should be fixed. > > > Thomas, clockevents_program_event() (or ->set_next_event() method for > clock_event_device) is supposed to be called with interrupt enabled? Actually all call sites have interrupts disabled right now and I can not think of a reason why we would ever call with interrupts enabled. Time to add some comment. tglx