[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <mhng-6698D901-534C-4886-BDB3-BB4EDF14E7E8@palmerdabbelt-mac>
Date: Thu, 12 Jun 2025 12:42:32 -0700 (PDT)
From: Palmer Dabbelt <palmer@...belt.com>
To: Alexandre Ghiti <alex@...ti.fr>
CC: linux-riscv@...ts.infradead.org, Paul Walmsley <paul.walmsley@...ive.com>,
aou@...s.berkeley.edu, cyrilbur@...storrent.com, jszhang@...nel.org, cleger@...osinc.com,
samuel.holland@...ive.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] RISC-V: uaccess: Wrap the get_user_8 uaccess macro
On Wed, 11 Jun 2025 00:31:18 PDT (-0700), Alexandre Ghiti wrote:
> On 6/10/25 23:30, Palmer Dabbelt wrote:
>> From: Palmer Dabbelt <palmer@...belt.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@...belt.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@...osinc.com>
Thanks, and I guess it should also be
Fixes: f6bff7827a48 ("riscv: uaccess: use 'asm_goto_output' for get_user()")
I'm going to put it on fixes.
Powered by blists - more mailing lists