diff options
| author | Heiko Carstens <hca@linux.ibm.com> | 2025-02-07 15:49:03 +0100 |
|---|---|---|
| committer | Vasily Gorbik <gor@linux.ibm.com> | 2025-03-04 17:18:06 +0100 |
| commit | c275169919d16c1db23324199b00a71e1e6ea950 (patch) | |
| tree | 2d722981737efca23dc2465db6144815bf537372 /arch/s390/kernel | |
| parent | aaab4a4ff3220ef4c3bd7d23c5017e5eabde8aa5 (diff) | |
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 <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
| -rw-r--r-- | arch/s390/kernel/early.c | 18 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 3 |
2 files changed, 2 insertions, 19 deletions
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 <linux/kprobes.h> #include <asm/access-regs.h> #include <asm/asm-offsets.h> +#include <asm/machine.h> #include <asm/ctlreg.h> #include <asm/pfault.h> #include <asm/diag.h> @@ -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" |
