diff -urN uml-ref/arch/um/kernel/time.c uml/arch/um/kernel/time.c --- uml-ref/arch/um/kernel/time.c Wed Feb 20 00:38:57 2002 +++ uml/arch/um/kernel/time.c Wed Feb 20 00:39:11 2002 @@ -17,7 +17,7 @@ #include "process.h" #include "signal_user.h" -extern struct timeval xtime; +extern volatile struct timeval xtime; void timer_handler(int sig, void *sc, int usermode) { diff -urN uml-ref/arch/um/kernel/trap_kern.c uml/arch/um/kernel/trap_kern.c --- uml-ref/arch/um/kernel/trap_kern.c Wed Feb 20 00:38:57 2002 +++ uml/arch/um/kernel/trap_kern.c Wed Feb 20 00:39:55 2002 @@ -46,7 +46,7 @@ if(!vma) goto bad; else if(vma->vm_start <= address) goto good_area; else if(!(vma->vm_flags & VM_GROWSDOWN)) goto bad; - else if(expand_stack(vma, address)) goto bad; + else if(expand_stack(vma, address, NULL)) goto bad; good_area: si.si_code = SEGV_ACCERR; diff -urN uml-ref/include/asm-um/rwsem.h uml/include/asm-um/rwsem.h --- uml-ref/include/asm-um/rwsem.h Wed Feb 20 00:38:57 2002 +++ uml/include/asm-um/rwsem.h Thu Jan 1 01:00:00 1970 @@ -1,10 +0,0 @@ -#ifndef __UM_RWSEM_H__ -#define __UM_RWSEM_H__ - -#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) -#define __builtin_expect(exp,c) (exp) -#endif - -#include "asm/arch/rwsem.h" - -#endif diff -urN uml-ref/include/asm-um/rwsem_xchgadd.h uml/include/asm-um/rwsem_xchgadd.h --- uml-ref/include/asm-um/rwsem_xchgadd.h Thu Jan 1 01:00:00 1970 +++ uml/include/asm-um/rwsem_xchgadd.h Wed Feb 20 00:39:12 2002 @@ -0,0 +1,6 @@ +#ifndef __UM_RWSEM_H__ +#define __UM_RWSEM_H__ + +#include "asm/arch/rwsem_xchgadd.h" + +#endif diff -urN uml-ref/include/asm-um/timex.h uml/include/asm-um/timex.h --- uml-ref/include/asm-um/timex.h Wed Feb 20 00:38:57 2002 +++ uml/include/asm-um/timex.h Wed Feb 20 00:39:12 2002 @@ -12,4 +12,8 @@ return 0; } +typedef long last_schedule_t; +#define get_last_schedule() ({ jiffies; }) +#define last_schedule_before(a, b) ({ a < b; }) + #endif