[PATCH] RISC-V: uaccess: Wrap the get_user_8 uaccess macro
Alexandre Ghiti
alex at ghiti.fr
Wed Jun 11 00:31:18 PDT 2025
On 6/10/25 23:30, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <palmer at dabbelt.com>
>
> I must have lost this rebasing things during the merge window, I know I
> got it at some point but it's not here now. Without this I get warnings
> along the lines of
>
> include/linux/fs.h:3975:15: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
> 3975 | if (unlikely(get_user(c, path)))
> | ^
> arch/riscv/include/asm/uaccess.h:274:3: note: expanded from macro 'get_user'
> 274 | __get_user((x), __p) : \
> | ^
> arch/riscv/include/asm/uaccess.h:244:2: note: expanded from macro '__get_user'
> 244 | __get_user_error(__gu_val, __gu_ptr, __gu_err); \
> | ^
> arch/riscv/include/asm/uaccess.h:207:2: note: expanded from macro '__get_user_error'
> 207 | __ge LD [M] net/802/psnap.ko
> t_user_nocheck(x, ptr, __gu_failed); \
> | ^
> arch/riscv/include/asm/uaccess.h:196:3: note: expanded from macro '__get_user_nocheck'
> 196 | __get_user_8((x), __gu_ptr, label); \
> | ^
> arch/riscv/include/asm/uaccess.h:130:2: note: expanded from macro '__get_user_8'
> 130 | u32 __user *__ptr = (u32 __user *)(ptr); \
> | ^
>
> Signed-off-by: Palmer Dabbelt <palmer at dabbelt.com>
> ---
> arch/riscv/include/asm/uaccess.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/include/asm/uaccess.h b/arch/riscv/include/asm/uaccess.h
> index d472da4450e6..525e50db24f7 100644
> --- a/arch/riscv/include/asm/uaccess.h
> +++ b/arch/riscv/include/asm/uaccess.h
> @@ -127,6 +127,7 @@ do { \
>
> #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
> #define __get_user_8(x, ptr, label) \
> +do { \
> u32 __user *__ptr = (u32 __user *)(ptr); \
> u32 __lo, __hi; \
> asm_goto_output( \
> @@ -141,7 +142,7 @@ do { \
> : : label); \
> (x) = (__typeof__(x))((__typeof__((x) - (x)))( \
> (((u64)__hi << 32) | __lo))); \
> -
> +} while (0)
> #else /* !CONFIG_CC_HAS_ASM_GOTO_OUTPUT */
> #define __get_user_8(x, ptr, label) \
> do { \
I had come up with the same fix so:
Reviewed-by: Alexandre Ghiti <alexghiti at rivosinc.com>
More information about the linux-riscv
mailing list