Please disregard this, I jumped the gun on this one. These routines are only ever called from arch/mips/kernel/irq.c, which always safely calls these routines under the irq_desc's spinlock (or in the case of ack(), do_IRQ() is already invoked with interrupts turned off). I'll be sure to grep a little more carefully next time. ;o) Will On Mon, May 20, 2002 at 06:41:51PM -0700, William Jhun wrote: > The mips_cpu_irq_*() routines in arch/mips/kernel/irq_cpu.c seem to not be > safe; {clear,set}_cp0_*() don't provide interrupt safety while changing the cp0 > register. Is this not wrong? Is there a case where an interrupt handler may > change CP0 status? If so, the patch below (against linux_2_4) simply disables > interrupts during these operations. > > Thanks, > Will