]> err.no Git - linux-2.6/commitdiff
[POWERPC] powerpc oprofile __user annotations
authorAl Viro <viro@ftp.linux.org.uk>
Sat, 23 Sep 2006 00:37:41 +0000 (01:37 +0100)
committerPaul Mackerras <paulus@samba.org>
Tue, 26 Sep 2006 05:25:33 +0000 (15:25 +1000)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/oprofile/backtrace.c

index 75f57bc96b404416480d410a537eccfcdbcfe4b6..b4278cfd1f80cccb5596f29b6c5068961aad06c2 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/sched.h>
 #include <asm/processor.h>
 #include <asm/uaccess.h>
+#include <asm/compat.h>
 
 #define STACK_SP(STACK)                *(STACK)
 
@@ -26,8 +27,9 @@
 static unsigned int user_getsp32(unsigned int sp, int is_first)
 {
        unsigned int stack_frame[2];
+       void __user *p = compat_ptr(sp);
 
-       if (!access_ok(VERIFY_READ, sp, sizeof(stack_frame)))
+       if (!access_ok(VERIFY_READ, p, sizeof(stack_frame)))
                return 0;
 
        /*
@@ -35,8 +37,7 @@ static unsigned int user_getsp32(unsigned int sp, int is_first)
         * which means that we've done all that we can do from
         * interrupt context.
         */
-       if (__copy_from_user_inatomic(stack_frame, (void *)(long)sp,
-                                       sizeof(stack_frame)))
+       if (__copy_from_user_inatomic(stack_frame, p, sizeof(stack_frame)))
                return 0;
 
        if (!is_first)
@@ -54,10 +55,10 @@ static unsigned long user_getsp64(unsigned long sp, int is_first)
 {
        unsigned long stack_frame[3];
 
-       if (!access_ok(VERIFY_READ, sp, sizeof(stack_frame)))
+       if (!access_ok(VERIFY_READ, (void __user *)sp, sizeof(stack_frame)))
                return 0;
 
-       if (__copy_from_user_inatomic(stack_frame, (void *)sp,
+       if (__copy_from_user_inatomic(stack_frame, (void __user *)sp,
                                        sizeof(stack_frame)))
                return 0;