Re: [PATCH v1 02/15] powerpc/uaccess: Define ___get_user_instr() for ppc32
From: Daniel Axtens <hidden>
Date: 2021-03-02 07:11:41
Also in:
lkml
Hi Christophe,
quoted hunk ↗ jump to hunk
+#else /* !CONFIG_PPC64 */ +#define ___get_user_instr(gu_op, dest, ptr) \ + gu_op((dest).val, (u32 __user *)(ptr)) +#endif /* CONFIG_PPC64 */ #define get_user_instr(x, ptr) \ ___get_user_instr(get_user, x, ptr)@@ -91,18 +95,6 @@ static inline bool __access_ok(unsigned long addr, unsigned long size) #define __get_user_instr_inatomic(x, ptr) \ ___get_user_instr(__get_user_inatomic, x, ptr) -#else /* !CONFIG_PPC64 */ -#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)) - -#endif /* CONFIG_PPC64 */
The previous version of __get_user_instr called __get_user_nocheck, this version calls __get_user. Likewise __get_user_instr_inatomic called __get_user_nosleep and now it calls __get_user_inatomic. I was confused by this until I chased the macro definitions and realised that both names refer to the same thing: #define __get_user(x, ptr) \ __get_user_nocheck((x), (ptr), sizeof(*(ptr)), true) #define __get_user_inatomic(x, ptr) \ __get_user_nosleep((x), (ptr), sizeof(*(ptr))) (I don't think you need to do anything here, I'm just documenting what I considered while reviewing your patch.) As such: Reviewed-by: Daniel Axtens <redacted> Kind regards, Daniel
- extern long __put_user_bad(void); #define __put_user_size(x, ptr, size, retval) \ -- 2.25.0