]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - arch/alpha/include/asm/uaccess.h
get rid of legacy 'get_ds()' function
[mirror_ubuntu-hirsute-kernel.git] / arch / alpha / include / asm / uaccess.h
index e69c4e13c3283577579e21239653a01bef64fd26..1fe2b56cb861fe4150785699ded8f29fc8132baf 100644 (file)
@@ -18,7 +18,6 @@
 #define USER_DS                ((mm_segment_t) { -0x40000000000UL })
 
 #define get_fs()  (current_thread_info()->addr_limit)
-#define get_ds()  (KERNEL_DS)
 #define set_fs(x) (current_thread_info()->addr_limit = (x))
 
 #define segment_eq(a, b)       ((a).seg == (b).seg)
  * Address valid if:
  *  - "addr" doesn't have any high-bits set
  *  - AND "size" doesn't have any high-bits set
- *  - AND "addr+size" doesn't have any high-bits set
+ *  - AND "addr+size-(size != 0)" doesn't have any high-bits set
  *  - OR we are in kernel mode.
  */
-#define __access_ok(addr, size) \
-       ((get_fs().seg & (addr | size | (addr+size))) == 0)
+#define __access_ok(addr, size) ({                             \
+       unsigned long __ao_a = (addr), __ao_b = (size);         \
+       unsigned long __ao_end = __ao_a + __ao_b - !!__ao_b;    \
+       (get_fs().seg & (__ao_a | __ao_b | __ao_end)) == 0; })
 
 #define access_ok(addr, size)                          \
 ({                                                     \