diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2021-07-21 14:03:33 +0200 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2021-07-27 09:39:21 +0200 |
commit | 7e82523f2583e9813e4109df3656707162541297 (patch) | |
tree | 9f851ca4f155581042310025459cb10cb3a826e9 | |
parent | 98ac9169e5407510c70621a2106005b26d4d304a (diff) |
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 <hca@linux.ibm.com>
-rw-r--r-- | arch/s390/include/asm/elf.h | 14 | ||||
-rw-r--r-- | 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; } |