From 7e82523f2583e9813e4109df3656707162541297 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Wed, 21 Jul 2021 14:03:33 +0200 Subject: [PATCH] s390/hwcaps: make sie capability regular hwcap Commit 7f16d7e787b7 ("s390: show virtualization support in /proc/cpuinfo") introduced special handling for sie capability, saying this should not be exposed via hwcaps, without giving a reason. However this leads to an inconsistent /proc/cpuinfo features line where all features except the sie capability are also present in hwcaps. I really don't see a reason to not add that to hwcaps - it might be quite pointless, but at least this way it is possible to get rid of some special handling. Signed-off-by: Heiko Carstens --- arch/s390/include/asm/elf.h | 14 ++------------ arch/s390/kernel/processor.c | 12 ++---------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h index f02273831473..70a30ae258b7 100644 --- a/arch/s390/include/asm/elf.h +++ b/arch/s390/include/asm/elf.h @@ -114,6 +114,7 @@ enum { HWCAP_NR_VXRS_PDE2 = 19, HWCAP_NR_NNPA = 20, HWCAP_NR_PCI_MIO = 21, + HWCAP_NR_SIE = 22, HWCAP_NR_MAX }; @@ -140,14 +141,7 @@ enum { #define HWCAP_VXRS_PDE2 BIT(HWCAP_NR_VXRS_PDE2) #define HWCAP_NNPA BIT(HWCAP_NR_NNPA) #define HWCAP_PCI_MIO BIT(HWCAP_NR_PCI_MIO) - -enum { - HWCAP_INT_NR_SIE = 0, - HWCAP_INT_NR_MAX -}; - -/* Internal bits, not exposed via elf */ -#define HWCAP_INT_SIE BIT(HWCAP_INT_NR_SIE) +#define HWCAP_SIE BIT(HWCAP_NR_SIE) /* * These are used to set parameters in the core dumps. @@ -243,10 +237,6 @@ struct arch_elf_state { extern unsigned long elf_hwcap; #define ELF_HWCAP (elf_hwcap) -/* Internal hardware capabilities, not exposed via elf */ - -extern unsigned long int_hwcap; - /* This yields a string that ld.so will use to load implementation specific libraries for optimization. This is more specific in intent than poking at uname or /proc/cpuinfo. diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c index 4ee697d83bc7..eccd565044c7 100644 --- a/arch/s390/kernel/processor.c +++ b/arch/s390/kernel/processor.c @@ -30,8 +30,6 @@ unsigned long __read_mostly elf_hwcap; char elf_platform[ELF_PLATFORM_SIZE]; -unsigned long int_hwcap; - struct cpu_info { unsigned int cpu_mhz_dynamic; unsigned int cpu_mhz_static; @@ -142,14 +140,11 @@ static void show_cpu_summary(struct seq_file *m, void *v) [HWCAP_NR_VXRS_PDE2] = "vxp2", [HWCAP_NR_NNPA] = "nnpa", [HWCAP_NR_PCI_MIO] = "pcimio", - }; - static const char * const int_hwcap_str[] = { - [HWCAP_INT_NR_SIE] = "sie", + [HWCAP_NR_SIE] = "sie", }; int i, cpu; BUILD_BUG_ON(ARRAY_SIZE(hwcap_str) != HWCAP_NR_MAX); - BUILD_BUG_ON(ARRAY_SIZE(int_hwcap_str) != HWCAP_INT_NR_MAX); seq_printf(m, "vendor_id : IBM/S390\n" "# processors : %i\n" "bogomips per cpu: %lu.%02lu\n", @@ -160,9 +155,6 @@ static void show_cpu_summary(struct seq_file *m, void *v) for (i = 0; i < ARRAY_SIZE(hwcap_str); i++) if (hwcap_str[i] && (elf_hwcap & (1UL << i))) seq_printf(m, "%s ", hwcap_str[i]); - for (i = 0; i < ARRAY_SIZE(int_hwcap_str); i++) - if (int_hwcap_str[i] && (int_hwcap & (1UL << i))) - seq_printf(m, "%s ", int_hwcap_str[i]); seq_puts(m, "\n"); show_facilities(m); show_cacheinfo(m); @@ -257,7 +249,7 @@ static int __init setup_hwcaps(void) /* virtualization support */ if (sclp.has_sief2) - int_hwcap |= HWCAP_INT_SIE; + elf_hwcap |= HWCAP_SIE; return 0; }