openrisc: uaccess: Use static inline function in access_ok
As suggested by Linus when reviewing commit 9cb2feb4d2
("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>
This commit is contained in:
parent
17fcd83c2b
commit
af84b16e34
|
@ -48,16 +48,19 @@
|
||||||
/* Ensure that the range from addr to addr+size is all within the process'
|
/* Ensure that the range from addr to addr+size is all within the process'
|
||||||
* address space
|
* 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 */
|
/* Ensure that addr is below task's addr_limit */
|
||||||
#define __addr_ok(addr) ((unsigned long) addr < get_fs())
|
#define __addr_ok(addr) ((unsigned long) addr < get_fs())
|
||||||
|
|
||||||
#define access_ok(addr, size) \
|
#define access_ok(addr, size) \
|
||||||
({ \
|
({ \
|
||||||
unsigned long __ao_addr = (unsigned long)(addr); \
|
__range_ok((unsigned long)(addr), (size)); \
|
||||||
unsigned long __ao_size = (unsigned long)(size); \
|
|
||||||
__range_ok(__ao_addr, __ao_size); \
|
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue