riscv fixes for 6.16-rc4

- A fix for a percpu variable that may lie in the vmalloc region and on which we used __pa()
 - A fix to require at least clang-17 to prevent build issues with previous versions on kCFI
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQgN2CKhD/Nf5v80u9kP7K8koXvigUCaGUntQAKCRBkP7K8koXv
 ik9lAP9Qkpw1DDDcBcaX2ADpV6vXPW078QDCqRhTuGAtXCtpqAD9FVk6DwYpOynf
 X10CZ++iRAc1WiEmzcSKHtQc5zATBgI=
 =hLOv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCAA3FiEEKzw3R0RoQ7JKlDp6LhMZ81+7GIkFAmhlcYoZHHBhbG1lcmRh
 YmJlbHRAZ29vZ2xlLmNvbQAKCRAuExnzX7sYiY2JD/4zUmEMhMsYPyy8188HU3cT
 eOnqaJ7thWoPAE2bJ+dLyr4dV9R7oc7+63M3NHDcQPS8MjEi3t4PtFLnwOJHUbL0
 FR9B9P0ySYQW3nWbG3cAE6teZHHLVrd2H0D74R5CAqT34vDHdcQM7NVKo7rUXj/H
 xR8tHk0L+xAAyyCN8v4ARq/b61K1+kfZLfgvcChLn7mSDppigghDLtLNz/qS92GG
 1vpYcXGcMoQSwWmUXVXlgpFDRor3Zpx/Rfq5Yi9fM4I42I6MTJR7uBCafZXqy5rB
 cqzVCnHNNBMMt5polgjSo96f3d3ptwkQplafLvfUXvd21F5XOUZi3z0tv7lD0DKz
 jtH4kQSpslX8BA4xCfC215SK61vW3TMqp0+lVT0PbK2QCYyOnvEuLanuJ/isVtKu
 vOGu+HyFYp/He4fuRUYE1ka3SmEI0G+fe7gsKPExKDbHkpmhliI6LvO0eJF/MJDB
 iW3Q/SgOvoVnR4mrxP9jaSsM0kk4+9FU4a2nOfLAU7fFd5iOB7T3lkQ1aCUA8B1d
 Jo2HIChOQ7KEJX/V8khb02FNZ8O5EMUQWVrVt0atYTB5dh565YDh4cppA9Osomij
 +uHUEx6hqn1XZ1zwwcUhZo0vInhbtshnjkqyIiGi+YyLRKnUmDiFU3Ve8sFYYB/5
 Ar3MgYUTYm/kp82/N/OnCg==
 =f7kw
 -----END PGP SIGNATURE-----

Merge tag 'riscv-fixes-6.16-rc4' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/alexghiti/linux into fixes

riscv fixes for 6.16-rc4

- A fix for a percpu variable that may lie in the vmalloc region and on which we used __pa()
- A fix to require at least clang-17 to prevent build issues with previous versions on kCFI

* tag 'riscv-fixes-6.16-rc4' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/alexghiti/linux:
  riscv: cpu_ops_sbi: Use static array for boot_data
  riscv: Require clang-17 or newer for kCFI
This commit is contained in:
Palmer Dabbelt 2025-07-02 10:51:00 -07:00
commit 5903a7452e
2 changed files with 5 additions and 4 deletions

View File

@ -63,7 +63,8 @@ config RISCV
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
select ARCH_STACKWALK
select ARCH_SUPPORTS_ATOMIC_RMW
select ARCH_SUPPORTS_CFI_CLANG
# clang >= 17: https://github.com/llvm/llvm-project/commit/62fa708ceb027713b386c7e0efda994f8bdc27e2
select ARCH_SUPPORTS_CFI_CLANG if CLANG_VERSION >= 170000
select ARCH_SUPPORTS_DEBUG_PAGEALLOC if MMU
select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
select ARCH_SUPPORTS_HUGETLBFS if MMU

View File

@ -18,10 +18,10 @@ const struct cpu_operations cpu_ops_sbi;
/*
* Ordered booting via HSM brings one cpu at a time. However, cpu hotplug can
* be invoked from multiple threads in parallel. Define a per cpu data
* be invoked from multiple threads in parallel. Define an array of boot data
* to handle that.
*/
static DEFINE_PER_CPU(struct sbi_hart_boot_data, boot_data);
static struct sbi_hart_boot_data boot_data[NR_CPUS];
static int sbi_hsm_hart_start(unsigned long hartid, unsigned long saddr,
unsigned long priv)
@ -67,7 +67,7 @@ static int sbi_cpu_start(unsigned int cpuid, struct task_struct *tidle)
unsigned long boot_addr = __pa_symbol(secondary_start_sbi);
unsigned long hartid = cpuid_to_hartid_map(cpuid);
unsigned long hsm_data;
struct sbi_hart_boot_data *bdata = &per_cpu(boot_data, cpuid);
struct sbi_hart_boot_data *bdata = &boot_data[cpuid];
/* Make sure tidle is updated */
smp_mb();