diff options
author | Niklas Schnelle <schnelle@linux.ibm.com> | 2021-07-08 16:43:13 +0300 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2021-07-27 10:39:19 +0300 |
commit | 7e8403ecaf884f307b627f3c371475913dd29292 (patch) | |
tree | 5ecd9ac93b4b7e5f0308e6a04956a68daf338be7 /arch/s390/kernel | |
parent | 3322ba0d7bea1e24ae464418626f6a15b69533ab (diff) | |
download | linux-7e8403ecaf884f307b627f3c371475913dd29292.tar.xz |
s390: add HWCAP_S390_PCI_MIO to ELF hwcaps
In order to support the use of enhanced PCI instructions in both kernel-
and userspace we need both hardware support and proper setup in the
kernel. The latter can be toggled off with the pci=nomio command line
option.
Thus availability of this feature in userspace depends on all of kernel
configuration (CONFIG_PCI), hardware support and the current kernel
command line and can thus not rely solely on a facility bit. Instead
let's introduce a new ELF hardware capability bit HWCAP_S390_PCI_MIO to
tell userspace whether these PCI instructions can be used.
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/processor.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c index 9cd63efce1c1..e6c297ec3e1d 100644 --- a/arch/s390/kernel/processor.c +++ b/arch/s390/kernel/processor.c @@ -115,7 +115,7 @@ static void show_cpu_summary(struct seq_file *m, void *v) static const char *hwcap_str[] = { "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh", "highgprs", "te", "vx", "vxd", "vxe", "gs", - "vxe2", "vxp", "sort", "dflt", "vxp2", "nnpa" + "vxe2", "vxp", "sort", "dflt", "vxp2", "nnpa", "pcimio" }; static const char * const int_hwcap_str[] = { "sie" diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 32ce8d40b2fb..1c0ab3030801 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -964,6 +964,8 @@ static int __init setup_hwcaps(void) */ if (MACHINE_HAS_GS) elf_hwcap |= HWCAP_S390_GS; + if (MACHINE_HAS_PCI_MIO) + elf_hwcap |= HWCAP_S390_PCI_MIO; get_cpu_id(&cpu_id); add_device_randomness(&cpu_id, sizeof(cpu_id)); |