* kernel/rseq.c:480:41: sparse: sparse: cast removes address space '__user' of expression
@ 2026-08-30 6:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-30 6:24 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "bisect to a FBC not belonging to original linux-review patches: branch: linux-review/odion-efficios-com/rseq-uapi-add-rseq-operation-definitions/20260828-113339, commit: e8494bc5b81ab087f8fda3da91fb0349f6e08b83"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Olivier Dion <odion@efficios.com>
CC: 0day robot <lkp@intel.com>
tree: https://github.com/intel-lab-lkp/linux/commits/odion-efficios-com/rseq-uapi-add-rseq-operation-definitions/20260828-113339
head: 6442a4dd9f55ba8a0f39522b330200e1b8548bd5
commit: e8494bc5b81ab087f8fda3da91fb0349f6e08b83 rseq: register and unregister operations via prctl
date: 2 days ago
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: loongarch-randconfig-r131-20260829 (https://download.01.org/0day-ci/archive/20260830/202608301410.KXaPc9oO-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 52774473867e49b5891ab9381accf4e5a3ce0024)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260830/202608301410.KXaPc9oO-lkp@intel.com/reproduce)
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@intel.com>
| Closes: https://lore.kernel.org/r/202608301410.KXaPc9oO-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> kernel/rseq.c:480:41: sparse: sparse: cast removes address space '__user' of expression
vim +/__user +480 kernel/rseq.c
0f085b41880e314 Thomas Gleixner 2025-10-27 431
99428157dcf32fd Thomas Gleixner 2026-04-26 432 static long rseq_register(struct rseq __user * rseq, u32 rseq_len, int flags, u32 sig)
d7822b1e24f2df5 Mathieu Desnoyers 2018-06-02 433 {
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 434 u32 rseqfl = 0;
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 435 u8 version = 1;
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 436
96d4f267e40f950 Linus Torvalds 2019-01-03 437 if (!access_ok(rseq, rseq_len))
d7822b1e24f2df5 Mathieu Desnoyers 2018-06-02 438 return -EFAULT;
fd881d0a085fc54 Michael Jeanson 2025-03-06 439
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 440 /*
99428157dcf32fd Thomas Gleixner 2026-04-26 441 * Architectures, which use the generic IRQ entry code (at least) enable
99428157dcf32fd Thomas Gleixner 2026-04-26 442 * registrations with a size greater than the original v1 fixed sized
99428157dcf32fd Thomas Gleixner 2026-04-26 443 * @rseq_len, which has been validated already to utilize the optimized
99428157dcf32fd Thomas Gleixner 2026-04-26 444 * v2 ABI mode which also enables extended RSEQ features beyond MMCID.
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 445 */
99428157dcf32fd Thomas Gleixner 2026-04-26 446 if (IS_ENABLED(CONFIG_GENERIC_IRQ_ENTRY) && rseq_len > ORIG_RSEQ_SIZE)
99428157dcf32fd Thomas Gleixner 2026-04-26 447 version = 2;
99428157dcf32fd Thomas Gleixner 2026-04-26 448
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 449 if (IS_ENABLED(CONFIG_RSEQ_SLICE_EXTENSION) && version > 1) {
010b7723c0a3b9a Thomas Gleixner 2026-04-28 450 if (rseq_slice_extension_enabled()) {
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 451 rseqfl |= RSEQ_CS_FLAG_SLICE_EXT_AVAILABLE;
010b7723c0a3b9a Thomas Gleixner 2026-04-28 452 if (flags & RSEQ_FLAG_SLICE_EXT_DEFAULT_ON)
d6200245c75e832 Peter Zijlstra 2026-01-19 453 rseqfl |= RSEQ_CS_FLAG_SLICE_EXT_ENABLED;
d6200245c75e832 Peter Zijlstra 2026-01-19 454 }
010b7723c0a3b9a Thomas Gleixner 2026-04-28 455 }
e8494bc5b81ab08 Olivier Dion 2026-08-28 456 if (version > 1)
e8494bc5b81ab08 Olivier Dion 2026-08-28 457 rseqfl |= RSEQ_CS_FLAG_RSEQ_OP_AVAILABLE;
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 458
0f085b41880e314 Thomas Gleixner 2025-10-27 459 scoped_user_write_access(rseq, efault) {
fd881d0a085fc54 Michael Jeanson 2025-03-06 460 /*
fd881d0a085fc54 Michael Jeanson 2025-03-06 461 * If the rseq_cs pointer is non-NULL on registration, clear it to
fd881d0a085fc54 Michael Jeanson 2025-03-06 462 * avoid a potential segfault on return to user-space. The proper thing
fd881d0a085fc54 Michael Jeanson 2025-03-06 463 * to do would have been to fail the registration but this would break
fd881d0a085fc54 Michael Jeanson 2025-03-06 464 * older libcs that reuse the rseq area for new threads without
067b3b41b4dd5bf Thomas Gleixner 2025-10-27 465 * clearing the fields. Don't bother reading it, just reset it.
fd881d0a085fc54 Michael Jeanson 2025-03-06 466 */
0f085b41880e314 Thomas Gleixner 2025-10-27 467 unsafe_put_user(0UL, &rseq->rseq_cs, efault);
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 468 unsafe_put_user(rseqfl, &rseq->flags, efault);
0f085b41880e314 Thomas Gleixner 2025-10-27 469 /* Initialize IDs in user space */
0f085b41880e314 Thomas Gleixner 2025-10-27 470 unsafe_put_user(RSEQ_CPU_ID_UNINITIALIZED, &rseq->cpu_id_start, efault);
0f085b41880e314 Thomas Gleixner 2025-10-27 471 unsafe_put_user(RSEQ_CPU_ID_UNINITIALIZED, &rseq->cpu_id, efault);
0f085b41880e314 Thomas Gleixner 2025-10-27 472 unsafe_put_user(0U, &rseq->node_id, efault);
0f085b41880e314 Thomas Gleixner 2025-10-27 473 unsafe_put_user(0U, &rseq->mm_cid, efault);
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 474
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 475 /*
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 476 * All fields past mm_cid are only valid for non-legacy v2
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 477 * registrations.
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 478 */
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 479 if (version > 1) {
e8494bc5b81ab08 Olivier Dion 2026-08-28 @480 u64 sentinel = (u64)&rseq->rseq_op_list;
e8494bc5b81ab08 Olivier Dion 2026-08-28 481
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 482 if (IS_ENABLED(CONFIG_RSEQ_SLICE_EXTENSION))
d7a5da7a0f7fa7f Thomas Gleixner 2025-12-15 483 unsafe_put_user(0U, &rseq->slice_ctrl.all, efault);
e8494bc5b81ab08 Olivier Dion 2026-08-28 484 /*
e8494bc5b81ab08 Olivier Dion 2026-08-28 485 * Initialize the rseq operation list sentinel as an
e8494bc5b81ab08 Olivier Dion 2026-08-28 486 * empty circular doubly-linked list pointing to itself.
e8494bc5b81ab08 Olivier Dion 2026-08-28 487 */
e8494bc5b81ab08 Olivier Dion 2026-08-28 488 unsafe_put_user(sentinel, &rseq->rseq_op_list.next, efault);
e8494bc5b81ab08 Olivier Dion 2026-08-28 489 unsafe_put_user(sentinel, &rseq->rseq_op_list.prev, efault);
0f085b41880e314 Thomas Gleixner 2025-10-27 490 }
b9eac6a9d93c952 Thomas Gleixner 2026-04-25 491 }
fd881d0a085fc54 Michael Jeanson 2025-03-06 492
dc0a241ceaf3b7d Michael Jeanson 2025-02-19 493 /*
dc0a241ceaf3b7d Michael Jeanson 2025-02-19 494 * Activate the registration by setting the rseq area address, length
dc0a241ceaf3b7d Michael Jeanson 2025-02-19 495 * and signature in the task struct.
dc0a241ceaf3b7d Michael Jeanson 2025-02-19 496 */
faba9d250eaec7a Thomas Gleixner 2025-10-27 497 current->rseq.usrptr = rseq;
faba9d250eaec7a Thomas Gleixner 2025-10-27 498 current->rseq.len = rseq_len;
faba9d250eaec7a Thomas Gleixner 2025-10-27 499 current->rseq.sig = sig;
dc0a241ceaf3b7d Michael Jeanson 2025-02-19 500
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-30 6:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-30 6:24 kernel/rseq.c:480:41: sparse: sparse: cast removes address space '__user' of expression kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.