openrisc: uaccess: Use static inline function in access_ok
authorStafford Horne <shorne@gmail.com>
Tue, 4 Aug 2020 00:35:24 +0000 (09:35 +0900)
committerStafford Horne <shorne@gmail.com>
Sat, 8 Aug 2020 22:57:05 +0000 (07:57 +0900)
As suggested by Linus when reviewing commit 9cb2feb4d21d
("arch/openrisc: Fix issues with access_ok()") last year; making
__range_ok an inline function also fixes the used twice issue that the
commit was fixing.  I agree it's a good cleanup.  This patch addresses
that as I am currently working on the access_ok macro to fixup sparse
annotations in OpenRISC.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Stafford Horne <shorne@gmail.com>
Reviewed-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
arch/openrisc/include/asm/uaccess.h

index f2fc5c4..4b59dc9 100644 (file)
 /* Ensure that the range from addr to addr+size is all within the process'
  * address space
  */
-#define __range_ok(addr, size) (size <= get_fs() && addr <= (get_fs()-size))
+static inline int __range_ok(unsigned long addr, unsigned long size)
+{
+       const mm_segment_t fs = get_fs();
+
+       return size <= fs && addr <= (fs - size);
+}
 
 /* Ensure that addr is below task's addr_limit */
 #define __addr_ok(addr) ((unsigned long) addr < get_fs())
 
 #define access_ok(addr, size)                                          \
 ({                                                                     \
-       unsigned long __ao_addr = (unsigned long)(addr);                \
-       unsigned long __ao_size = (unsigned long)(size);                \
-       __range_ok(__ao_addr, __ao_size);                               \
+       __range_ok((unsigned long)(addr), (size));                      \
 })
 
 /*