firewire: use in_compat_syscall to check ioctl compatness
authorAndy Lutomirski <luto@kernel.org>
Tue, 22 Mar 2016 21:25:13 +0000 (14:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Mar 2016 22:36:02 +0000 (15:36 -0700)
Firewire was using is_compat_task to check whether it was in a compat
ioctl or a non-compat ioctl.  Use is_compat_syscall instead so it works
properly on all architectures.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/firewire/core-cdev.c

index 36a7c2d..aee149b 100644 (file)
@@ -221,7 +221,7 @@ struct inbound_phy_packet_event {
 #ifdef CONFIG_COMPAT
 static void __user *u64_to_uptr(u64 value)
 {
-       if (is_compat_task())
+       if (in_compat_syscall())
                return compat_ptr(value);
        else
                return (void __user *)(unsigned long)value;
@@ -229,7 +229,7 @@ static void __user *u64_to_uptr(u64 value)
 
 static u64 uptr_to_u64(void __user *ptr)
 {
-       if (is_compat_task())
+       if (in_compat_syscall())
                return ptr_to_compat(ptr);
        else
                return (u64)(unsigned long)ptr;