[avpatel:riscv_sbi_dbtr_v3 71/72] arch/riscv/kernel/hw_breakpoint.c:441:22: sparse: sparse: incorrect type in assignment (different base types)
kernel test robot <[email protected]> Fri, 31 Jul 2026 14:45:01 +0800
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
tree: https://github.com/avpatel/linux.git riscv_sbi_dbtr_v3 head: beda8d39b4166d1ca21e78d4ff92e8e8ec11ea6a commit: d24c3a0af904b9db5fdfddac9594f357e94d426d [71/72] riscv: Introduce support for hardware break/watchpoints config: riscv-randconfig-r112-20260731 (https://download.01.org/0day-ci/archive/20260731/[email protected]/config) compiler: riscv64-linux-gcc (GCC) 12.5.0 sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260731/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ sparse warnings: (new ones prefixed by >>) WARNING: invalid argument to '-march': '_zacas_zabha' >> arch/riscv/kernel/hw_breakpoint.c:441:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata1 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:441:22: sparse: expected unsigned long tdata1 arch/riscv/kernel/hw_breakpoint.c:441:22: sparse: got restricted __le64 [usertype] >> arch/riscv/kernel/hw_breakpoint.c:442:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata2 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:442:22: sparse: expected unsigned long tdata2 arch/riscv/kernel/hw_breakpoint.c:442:22: sparse: got restricted __le64 [usertype] >> arch/riscv/kernel/hw_breakpoint.c:443:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata3 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:443:22: sparse: expected unsigned long tdata3 arch/riscv/kernel/hw_breakpoint.c:443:22: sparse: got restricted __le64 [usertype] >> arch/riscv/kernel/hw_breakpoint.c:454:15: sparse: sparse: cast to restricted __le64 arch/riscv/kernel/hw_breakpoint.c:558:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata1 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:558:22: sparse: expected unsigned long tdata1 arch/riscv/kernel/hw_breakpoint.c:558:22: sparse: got restricted __le64 [usertype] arch/riscv/kernel/hw_breakpoint.c:559:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata2 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:559:22: sparse: expected unsigned long tdata2 arch/riscv/kernel/hw_breakpoint.c:559:22: sparse: got restricted __le64 [usertype] arch/riscv/kernel/hw_breakpoint.c:560:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long tdata3 @@ got restricted __le64 [usertype] @@ arch/riscv/kernel/hw_breakpoint.c:560:22: sparse: expected unsigned long tdata3 arch/riscv/kernel/hw_breakpoint.c:560:22: sparse: got restricted __le64 [usertype] vim +441 arch/riscv/kernel/hw_breakpoint.c 423 424 /* atomic: counter->ctx->lock is held */ 425 int arch_install_hw_breakpoint(struct perf_event *event) 426 { 427 struct arch_hw_breakpoint *bp = counter_arch_bp(event); 428 union sbi_dbtr_shmem_entry *shmem = this_cpu_ptr(sbi_dbtr_shmem); 429 struct sbi_dbtr_data_msg *xmit; 430 struct sbi_dbtr_id_msg *recv; 431 struct perf_event **slot; 432 unsigned long idx; 433 struct sbiret ret; 434 int err = 0; 435 436 raw_spin_lock_irqsave(this_cpu_ptr(&ecall_lock), 437 *this_cpu_ptr(&ecall_lock_flags)); 438 439 xmit = &shmem->data; 440 recv = &shmem->id; > 441 xmit->tdata1 = cpu_to_le(bp->tdata1); > 442 xmit->tdata2 = cpu_to_le(bp->tdata2); > 443 xmit->tdata3 = cpu_to_le(bp->tdata3); 444 445 ret = sbi_ecall(SBI_EXT_DBTR, SBI_EXT_DBTR_TRIG_INSTALL, 446 1, 0, 0, 0, 0, 0); 447 448 if (ret.error) { 449 pr_warn("%s: failed to install trigger\n", __func__); 450 err = -EIO; 451 goto done; 452 } 453 > 454 idx = le_to_cpu(recv->idx); 455 if (idx >= dbtr_total_num) { 456 pr_warn("%s: invalid trigger index %lu\n", __func__, idx); 457 err = -EINVAL; 458 goto done; 459 } 460 461 slot = this_cpu_ptr(&pcpu_hw_bp_events[idx]); 462 if (*slot) { 463 pr_warn("%s: slot %lu is in use\n", __func__, idx); 464 err = -EBUSY; 465 goto done; 466 } 467 468 pr_debug("Trigger %lu installed at index 0x%lx\n", bp->tdata2, idx); 469 470 /* Save the event - to be looked up in handler */ 471 *slot = event; 472 473 done: 474 raw_spin_unlock_irqrestore(this_cpu_ptr(&ecall_lock), 475 *this_cpu_ptr(&ecall_lock_flags)); 476 return err; 477 } 478 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki