summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2021-07-21 14:03:33 +0200
committerHeiko Carstens <hca@linux.ibm.com>2021-07-27 09:39:21 +0200
commit7e82523f2583e9813e4109df3656707162541297 (patch)
tree9f851ca4f155581042310025459cb10cb3a826e9
parent98ac9169e5407510c70621a2106005b26d4d304a (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.h14
-rw-r--r--arch/s390/kernel/processor.c12
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;
}