diff -Nru linux/arch/mips/kernel/scall_o32.S.orig linux/arch/mips/kernel/scall_o32.S --- linux/arch/mips/kernel/scall_o32.S.orig Sat Dec 8 13:04:24 2001 +++ linux/arch/mips/kernel/scall_o32.S Thu Jan 10 16:55:26 2002 @@ -230,8 +230,25 @@ * At this point the page should be readable and writable unless * there was no more memory available. */ + + /* + * turn off interrupt so that interrupt handler can't mess the value + */ + mfc0 t0, CP0_STATUS + ori t1, t0, 1 + xori t1, 1 + mtc0 t1, CP0_STATUS + nop + nop + nop + 1: lw v0, (a1) 2: sw a2, (a1) + + /* + * restore interrupt status + */ + mtc0 t0, CP0_STATUS .section __ex_table,"a" PTR 1b, no_mem