[PATCH 1/2] s390/hwcaps: Add HWCAP_UV

From: Steffen Eiden
Date: Fri Jul 01 2022 - 06:02:33 EST


This patch adds a hardware capability for the Ultravisor.
This capability will be present if facility 158 is enabled.

Signed-off-by: Steffen Eiden <seiden@xxxxxxxxxxxxx>
---
arch/s390/include/asm/elf.h | 2 ++
arch/s390/kernel/processor.c | 5 +++++
2 files changed, 7 insertions(+)

diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
index 70a30ae258b7..3a5e89ce4fd0 100644
--- a/arch/s390/include/asm/elf.h
+++ b/arch/s390/include/asm/elf.h
@@ -115,6 +115,7 @@ enum {
HWCAP_NR_NNPA = 20,
HWCAP_NR_PCI_MIO = 21,
HWCAP_NR_SIE = 22,
+ HWCAP_NR_UV = 23,
HWCAP_NR_MAX
};

@@ -142,6 +143,7 @@ enum {
#define HWCAP_NNPA BIT(HWCAP_NR_NNPA)
#define HWCAP_PCI_MIO BIT(HWCAP_NR_PCI_MIO)
#define HWCAP_SIE BIT(HWCAP_NR_SIE)
+#define HWCAP_UV BIT(HWCAP_NR_UV)

/*
* These are used to set parameters in the core dumps.
diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c
index aa0e0e7fc773..80ccd57a2b00 100644
--- a/arch/s390/kernel/processor.c
+++ b/arch/s390/kernel/processor.c
@@ -141,6 +141,7 @@ static void show_cpu_summary(struct seq_file *m, void *v)
[HWCAP_NR_NNPA] = "nnpa",
[HWCAP_NR_PCI_MIO] = "pcimio",
[HWCAP_NR_SIE] = "sie",
+ [HWCAP_NR_UV] = "uv",
};
int i, cpu;

@@ -249,6 +250,10 @@ static int __init setup_hwcaps(void)
if (sclp.has_sief2)
elf_hwcap |= HWCAP_SIE;

+ /* ultravisor-call (secure execution) */
+ if (test_facility(158))
+ elf_hwcap |= HWCAP_UV;
+
return 0;
}
arch_initcall(setup_hwcaps);
--
2.35.3