MIPS: Make access_ok() sideeffect proof.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
1699e5c9c4
Коммит
d0aab922b1
|
@ -104,11 +104,21 @@
|
||||||
|
|
||||||
#define __access_mask get_fs().seg
|
#define __access_mask get_fs().seg
|
||||||
|
|
||||||
#define __access_ok(addr, size, mask) \
|
#define __access_ok(addr, size, mask) \
|
||||||
(((signed long)((mask) & ((addr) | ((addr) + (size)) | __ua_size(size)))) == 0)
|
({ \
|
||||||
|
const volatile void __user *__up = addr; \
|
||||||
|
unsigned long __addr = (unsigned long) __up; \
|
||||||
|
unsigned long __size = size; \
|
||||||
|
unsigned long __mask = mask; \
|
||||||
|
unsigned long __ok; \
|
||||||
|
\
|
||||||
|
__ok = (signed long)(__mask & (__addr | (__addr + __size) | \
|
||||||
|
__ua_size(__size))); \
|
||||||
|
__ok == 0; \
|
||||||
|
})
|
||||||
|
|
||||||
#define access_ok(type, addr, size) \
|
#define access_ok(type, addr, size) \
|
||||||
likely(__access_ok((unsigned long)(addr), (size), __access_mask))
|
likely(__access_ok((addr), (size), __access_mask))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* put_user: - Write a simple value into user space.
|
* put_user: - Write a simple value into user space.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче