diff -urN lowlat-ref/arch/i386/lib/usercopy.c lowlat/arch/i386/lib/usercopy.c --- lowlat-ref/arch/i386/lib/usercopy.c Thu Sep 14 02:04:52 2000 +++ lowlat/arch/i386/lib/usercopy.c Thu Sep 14 02:11:03 2000 @@ -54,6 +54,7 @@ "=&D" (__d2) \ : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ : "memory"); \ + conditional_schedule(); \ } while (0) long @@ -97,6 +98,7 @@ ".previous" \ : "=&c"(size), "=&D" (__d0) \ : "r"(size & 3), "0"(size / 4), "1"(addr), "a"(0)); \ + conditional_schedule(); \ } while (0) unsigned long @@ -143,5 +145,6 @@ :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) :"0" (n), "1" (s), "2" (0), "3" (mask) :"cc"); + conditional_schedule(); return res & mask; } diff -urN lowlat-ref/include/asm-i386/uaccess.h lowlat/include/asm-i386/uaccess.h --- lowlat-ref/include/asm-i386/uaccess.h Thu Sep 14 02:04:52 2000 +++ lowlat/include/asm-i386/uaccess.h Thu Sep 14 01:45:01 2000 @@ -6,6 +6,7 @@ */ #include #include +#include #include #define VERIFY_READ 0 @@ -270,6 +271,7 @@ : "=&c"(size), "=&D" (__d0), "=&S" (__d1) \ : "r"(size & 3), "0"(size / 4), "1"(to), "2"(from) \ : "memory"); \ + conditional_schedule(); \ } while (0) #define __copy_user_zeroing(to,from,size) \ @@ -298,6 +300,7 @@ : "=&c"(size), "=&D" (__d0), "=&S" (__d1) \ : "r"(size & 3), "0"(size / 4), "1"(to), "2"(from) \ : "memory"); \ + conditional_schedule(); \ } while (0) /* We let the __ versions of copy_from/to_user inline, because they're often @@ -338,6 +341,7 @@ : "=c"(size), "=&S" (__d0), "=&D" (__d1)\ : "1"(from), "2"(to), "0"(size/4) \ : "memory"); \ + conditional_schedule(); \ break; \ case 1: \ __asm__ __volatile__( \ @@ -428,6 +432,7 @@ : "=c"(size), "=&S" (__d0), "=&D" (__d1)\ : "1"(from), "2"(to), "0"(size/4) \ : "memory"); \ + conditional_schedule(); \ break; \ case 1: \ __asm__ __volatile__( \