From: Jisheng Zhang Date: Tue, 12 Sep 2023 15:40:40 +0000 (+0800) Subject: riscv: don't probe unaligned access speed if already done X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c20d36cc2a2073d4cdcda92bd7a1bb9b3b3b7c79;p=linux.git riscv: don't probe unaligned access speed if already done If misaligned_access_speed percpu var isn't so called "HWPROBE MISALIGNED UNKNOWN", it means the probe has happened(this is possible for example, hotplug off then hotplug on one cpu), and the percpu var has been set, don't probe again in this case. Signed-off-by: Jisheng Zhang Fixes: 584ea6564bca ("RISC-V: Probe for unaligned access speed") Reviewed-by: Conor Dooley Link: https://lore.kernel.org/r/20230912154040.3306-1-jszhang@kernel.org Signed-off-by: Palmer Dabbelt --- diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 970a71422beea..6a01ded615cdb 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -572,6 +572,10 @@ void check_unaligned_access(int cpu) if (check_unaligned_access_emulated(cpu)) return; + /* We are already set since the last check */ + if (per_cpu(misaligned_access_speed, cpu) != RISCV_HWPROBE_MISALIGNED_UNKNOWN) + return; + page = alloc_pages(GFP_NOWAIT, get_order(MISALIGNED_BUFFER_SIZE)); if (!page) { pr_warn("Can't alloc pages to measure memcpy performance");