Re: [PATCH 3/6] openrisc: uaccess: Use static inline function in access_ok

2020-08-04 Thread Luc Van Oostenryck
On Tue, Aug 04, 2020 at 01:23:51PM +0900, Stafford Horne wrote:
> 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 
> Signed-off-by: Stafford Horne 

Look good to me.

-- Luc


[PATCH 3/6] openrisc: uaccess: Use static inline function in access_ok

2020-08-03 Thread Stafford Horne
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 
Signed-off-by: Stafford Horne 
---
 arch/openrisc/include/asm/uaccess.h | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/openrisc/include/asm/uaccess.h 
b/arch/openrisc/include/asm/uaccess.h
index f2fc5c4b88c3..4b59dc9ad300 100644
--- a/arch/openrisc/include/asm/uaccess.h
+++ b/arch/openrisc/include/asm/uaccess.h
@@ -48,16 +48,19 @@
 /* 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));  \
 })
 
 /*
-- 
2.26.2