Commit 7e8403ec authored by Niklas Schnelle's avatar Niklas Schnelle Committed by Heiko Carstens
Browse files

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: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 3322ba0d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@
#define HWCAP_S390_DFLT		262144
#define HWCAP_S390_VXRS_PDE2	524288
#define HWCAP_S390_NNPA		1048576
#define HWCAP_S390_PCI_MIO	2097152

/* Internal bits, not exposed via elf */
#define HWCAP_INT_SIE		1UL
+1 −1
Original line number Diff line number Diff line
@@ -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"
+2 −0
Original line number Diff line number Diff line
@@ -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));