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? --- Atsushi Nemoto