From c275169919d16c1db23324199b00a71e1e6ea950 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Fri, 7 Feb 2025 15:49:03 +0100 Subject: s390/diag: Convert MACHINE_HAS_DIAG9C to machine_has_diag9c() Use static branch(es) to implement and use machine_has_diag9c() instead of a runtime check via MACHINE_HAS_DIAG9C. Reviewed-by: Vasily Gorbik Signed-off-by: Heiko Carstens Signed-off-by: Vasily Gorbik --- arch/s390/kernel/early.c | 18 ------------------ arch/s390/kernel/smp.c | 3 ++- 2 files changed, 2 insertions(+), 19 deletions(-) (limited to 'arch/s390/kernel') diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index cc4e3d4dc55f..59b15f6a0a02 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c @@ -203,23 +203,6 @@ static noinline __init void setup_lowcore_early(void) lc->return_mcck_lpswe = gen_lpswe(__LC_RETURN_MCCK_PSW); } -static __init void detect_diag9c(void) -{ - unsigned int cpu_address; - int rc; - - cpu_address = stap(); - diag_stat_inc(DIAG_STAT_X09C); - asm volatile( - " diag %2,0,0x9c\n" - "0: la %0,0\n" - "1:\n" - EX_TABLE(0b,1b) - : "=d" (rc) : "0" (-EOPNOTSUPP), "d" (cpu_address) : "cc"); - if (!rc) - get_lowcore()->machine_flags |= MACHINE_FLAG_DIAG9C; -} - static __init void detect_machine_facilities(void) { if (test_facility(129)) @@ -269,7 +252,6 @@ void __init startup_init(void) detect_machine_type(); setup_arch_string(); setup_boot_command_line(); - detect_diag9c(); detect_machine_facilities(); save_vector_registers(); setup_topology(); diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 2bf45d95165b..f2f05c5277f4 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -417,7 +418,7 @@ EXPORT_SYMBOL(arch_vcpu_is_preempted); void notrace smp_yield_cpu(int cpu) { - if (!MACHINE_HAS_DIAG9C) + if (!machine_has_diag9c()) return; diag_stat_inc_norecursion(DIAG_STAT_X09C); asm volatile("diag %0,0,0x9c" -- cgit v1.2.3