asm-generic: optimize generic uaccess for 8-byte loads and stores
authorChristoph Hellwig <hch@lst.de>
Tue, 23 Apr 2019 16:38:09 +0000 (18:38 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 23 Apr 2019 19:51:41 +0000 (21:51 +0200)
On 64-bit architectures we can also use the direct load/store trick for
8-byte values.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
include/asm-generic/uaccess.h

index 3dcabfc..e935318 100644 (file)
@@ -24,6 +24,11 @@ raw_copy_from_user(void *to, const void __user * from, unsigned long n)
                case 4:
                        *(u32 *)to = *(u32 __force *)from;
                        return 0;
+#ifdef CONFIG_64BIT
+               case 8:
+                       *(u64 *)to = *(u64 __force *)from;
+                       return 0;
+#endif
                }
        }
 
@@ -45,6 +50,11 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n)
                case 4:
                        *(u32 __force *)to = *(u32 *)from;
                        return 0;
+#ifdef CONFIG_64BIT
+               case 8:
+                       *(u64 __force *)to = *(u64 *)from;
+                       return 0;
+#endif
                default:
                        break;
                }