powerpc: Define and use get_user_instr() et. al.
Define specialised get_user_instr(), __get_user_instr() and __get_user_instr_inatomic() macros for reading instructions from user and/or kernel space. Signed-off-by: Jordan Niethe <jniethe5@gmail.com> Reviewed-by: Alistair Popple <alistair@popple.id.au> [mpe: Squash in addition of get_user_instr() & __user annotations] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200506034050.24806-17-jniethe5@gmail.com
This commit is contained in:
committed by
Michael Ellerman
parent
a8646f43ba
commit
5249385ad7
@@ -105,6 +105,15 @@ static inline int __access_ok(unsigned long addr, unsigned long size,
|
||||
#define __put_user_inatomic(x, ptr) \
|
||||
__put_user_nosleep((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
|
||||
|
||||
#define get_user_instr(x, ptr) \
|
||||
get_user((x).val, (u32 __user *)(ptr))
|
||||
|
||||
#define __get_user_instr(x, ptr) \
|
||||
__get_user_nocheck((x).val, (u32 __user *)(ptr), sizeof(u32), true)
|
||||
|
||||
#define __get_user_instr_inatomic(x, ptr) \
|
||||
__get_user_nosleep((x).val, (u32 __user *)(ptr), sizeof(u32))
|
||||
|
||||
extern long __put_user_bad(void);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user