[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202506110256.SKiha1MS-lkp@intel.com>
Date: Wed, 11 Jun 2025 02:53:42 +0800
From: kernel test robot <lkp@...el.com>
To: Jisheng Zhang <jszhang@...nel.org>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org, Palmer Dabbelt <palmer@...osinc.com>,
Cyril Bur <cyrilbur@...storrent.com>,
Alexandre Ghiti <alexghiti@...osinc.com>
Subject: kernel/trace/trace_events_user.c:2404:8: warning: label followed by
a declaration is a C23 extension
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f09079bd04a924c72d555cd97942d5f8d7eca98c
commit: f6bff7827a48e59cff1ef98aae72452d65174e0c riscv: uaccess: use 'asm_goto_output' for get_user()
date: 5 weeks ago
config: riscv-randconfig-002-20250611
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build):
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506110256.SKiha1MS-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from kernel/trace/trace_events_user.c:10:
In file included from include/linux/cdev.h:8:
In file included from include/linux/device.h:32:
In file included from include/linux/device/driver.h:21:
In file included from include/linux/module.h:19:
In file included from include/linux/elf.h:6:
In file included from arch/riscv/include/asm/elf.h:12:
In file included from include/linux/compat.h:17:
include/linux/fs.h:3921:15: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
3921 | if (unlikely(get_user(c, path)))
| ^
arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
263 | __get_user((x), __p) : \
| ^
arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
233 | __get_user_error(__gu_val, __gu_ptr, __gu_err); \
| ^
arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
196 | __get_user_nocheck(x, ptr, __gu_failed); \
| ^
arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
185 | __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); \
| ^
>> kernel/trace/trace_events_user.c:2404:8: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
2404 | ret = get_user(size, &ureg->size);
| ^
arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
263 | __get_user((x), __p) : \
| ^
arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
233 | __get_user_error(__gu_val, __gu_ptr, __gu_err); \
| ^
arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
196 | __get_user_nocheck(x, ptr, __gu_failed); \
| ^
arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
185 | __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); \
| ^
kernel/trace/trace_events_user.c:2566:8: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
2566 | ret = get_user(size, &ureg->size);
| ^
arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
263 | __get_user((x), __p) : \
| ^
arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
233 | __get_user_error(__gu_val, __gu_ptr, __gu_err); \
| ^
arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
196 | __get_user_nocheck(x, ptr, __gu_failed); \
| ^
arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
185 | __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); \
| ^
3 warnings generated.
vim +2404 kernel/trace/trace_events_user.c
7f5a08c79df35e Beau Belgrave 2022-01-18 2398
7f5a08c79df35e Beau Belgrave 2022-01-18 2399 static long user_reg_get(struct user_reg __user *ureg, struct user_reg *kreg)
7f5a08c79df35e Beau Belgrave 2022-01-18 2400 {
7f5a08c79df35e Beau Belgrave 2022-01-18 2401 u32 size;
7f5a08c79df35e Beau Belgrave 2022-01-18 2402 long ret;
7f5a08c79df35e Beau Belgrave 2022-01-18 2403
7f5a08c79df35e Beau Belgrave 2022-01-18 @2404 ret = get_user(size, &ureg->size);
7f5a08c79df35e Beau Belgrave 2022-01-18 2405
7f5a08c79df35e Beau Belgrave 2022-01-18 2406 if (ret)
7f5a08c79df35e Beau Belgrave 2022-01-18 2407 return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18 2408
7f5a08c79df35e Beau Belgrave 2022-01-18 2409 if (size > PAGE_SIZE)
7f5a08c79df35e Beau Belgrave 2022-01-18 2410 return -E2BIG;
7f5a08c79df35e Beau Belgrave 2022-01-18 2411
39d6d08b2edf99 Beau Belgrave 2022-07-28 2412 if (size < offsetofend(struct user_reg, write_index))
39d6d08b2edf99 Beau Belgrave 2022-07-28 2413 return -EINVAL;
39d6d08b2edf99 Beau Belgrave 2022-07-28 2414
39d6d08b2edf99 Beau Belgrave 2022-07-28 2415 ret = copy_struct_from_user(kreg, sizeof(*kreg), ureg, size);
39d6d08b2edf99 Beau Belgrave 2022-07-28 2416
39d6d08b2edf99 Beau Belgrave 2022-07-28 2417 if (ret)
39d6d08b2edf99 Beau Belgrave 2022-07-28 2418 return ret;
39d6d08b2edf99 Beau Belgrave 2022-07-28 2419
a65442edb47a6d Beau Belgrave 2023-06-14 2420 /* Ensure only valid flags */
a65442edb47a6d Beau Belgrave 2023-06-14 2421 if (kreg->flags & ~(USER_EVENT_REG_MAX-1))
7235759084a4f8 Beau Belgrave 2023-03-28 2422 return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28 2423
7235759084a4f8 Beau Belgrave 2023-03-28 2424 /* Ensure supported size */
7235759084a4f8 Beau Belgrave 2023-03-28 2425 switch (kreg->enable_size) {
7235759084a4f8 Beau Belgrave 2023-03-28 2426 case 4:
7235759084a4f8 Beau Belgrave 2023-03-28 2427 /* 32-bit */
7235759084a4f8 Beau Belgrave 2023-03-28 2428 break;
7235759084a4f8 Beau Belgrave 2023-03-28 2429 #if BITS_PER_LONG >= 64
7235759084a4f8 Beau Belgrave 2023-03-28 2430 case 8:
7235759084a4f8 Beau Belgrave 2023-03-28 2431 /* 64-bit */
7235759084a4f8 Beau Belgrave 2023-03-28 2432 break;
7235759084a4f8 Beau Belgrave 2023-03-28 2433 #endif
7235759084a4f8 Beau Belgrave 2023-03-28 2434 default:
7235759084a4f8 Beau Belgrave 2023-03-28 2435 return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28 2436 }
7235759084a4f8 Beau Belgrave 2023-03-28 2437
7235759084a4f8 Beau Belgrave 2023-03-28 2438 /* Ensure natural alignment */
7235759084a4f8 Beau Belgrave 2023-03-28 2439 if (kreg->enable_addr % kreg->enable_size)
7235759084a4f8 Beau Belgrave 2023-03-28 2440 return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28 2441
7235759084a4f8 Beau Belgrave 2023-03-28 2442 /* Ensure bit range for size */
7235759084a4f8 Beau Belgrave 2023-03-28 2443 if (kreg->enable_bit > (kreg->enable_size * BITS_PER_BYTE) - 1)
7235759084a4f8 Beau Belgrave 2023-03-28 2444 return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28 2445
7235759084a4f8 Beau Belgrave 2023-03-28 2446 /* Ensure accessible */
7235759084a4f8 Beau Belgrave 2023-03-28 2447 if (!access_ok((const void __user *)(uintptr_t)kreg->enable_addr,
7235759084a4f8 Beau Belgrave 2023-03-28 2448 kreg->enable_size))
7235759084a4f8 Beau Belgrave 2023-03-28 2449 return -EFAULT;
7235759084a4f8 Beau Belgrave 2023-03-28 2450
39d6d08b2edf99 Beau Belgrave 2022-07-28 2451 kreg->size = size;
39d6d08b2edf99 Beau Belgrave 2022-07-28 2452
39d6d08b2edf99 Beau Belgrave 2022-07-28 2453 return 0;
7f5a08c79df35e Beau Belgrave 2022-01-18 2454 }
7f5a08c79df35e Beau Belgrave 2022-01-18 2455
:::::: The code at line 2404 was first introduced by commit
:::::: 7f5a08c79df35e68f1a43033450c5050f12bc155 user_events: Add minimal support for trace_event into ftrace
:::::: TO: Beau Belgrave <beaub@...ux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@...dmis.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
View attachment "reproduce" of type "text/plain" (903 bytes)
View attachment "config" of type "text/plain" (127779 bytes)
Powered by blists - more mailing lists