X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fasm-parisc%2Fuaccess.h;h=d973e8b3466ca805afbdf52a846211434f2e8269;hb=5b0a2075adb04846870a7fc1e62b08a532054ba6;hp=c1b5bdea53ee078773584f3842393b8640740ed0;hpb=325a479c4c110db278ef3361460a48c4093252cc;p=powerpc.git diff --git a/include/asm-parisc/uaccess.h b/include/asm-parisc/uaccess.h index c1b5bdea53..d973e8b346 100644 --- a/include/asm-parisc/uaccess.h +++ b/include/asm-parisc/uaccess.h @@ -40,10 +40,6 @@ static inline long access_ok(int type, const void __user * addr, return 1; } -#define verify_area(type,addr,size) (0) /* FIXME: all users should go away soon, - * and use access_ok instead, then this - * should be removed. */ - #define put_user __put_user #define get_user __get_user @@ -176,7 +172,11 @@ struct exception_data { /* * The "__put_user/kernel_asm()" macros tell gcc they read from memory * instead of writing. This is because they do not write to any memory - * gcc knows about, so there are no aliasing issues. + * gcc knows about, so there are no aliasing issues. These macros must + * also be aware that "fixup_put_user_skip_[12]" are executed in the + * context of the fault, and any registers used there must be listed + * as clobbers. In this case only "r1" is used by the current routines. + * r8/r9 are already listed as err/val. */ #ifdef __LP64__ @@ -187,7 +187,8 @@ struct exception_data { "\t.dword\t1b,fixup_put_user_skip_1\n" \ "\t.previous" \ : "=r"(__pu_err) \ - : "r"(ptr), "r"(x), "0"(__pu_err)) + : "r"(ptr), "r"(x), "0"(__pu_err) \ + : "r1") #define __put_user_asm(stx,x,ptr) \ __asm__ __volatile__ ( \