Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9964f396 authored by Sebastian Ott's avatar Sebastian Ott Committed by Vasily Gorbik
Browse files

s390: fix setting of mio addressing control



Move enablement of mio addressing control from detect_machine_facilities
to pci_base_init. detect_machine_facilities runs so early that the
static branches have not been toggled yet, thus mio addressing control
was always off. In pci_base_init we have to use the SMP aware
ctl_set_bit though.

Fixes: 833b441e ("s390: enable processes for mio instructions")
Signed-off-by: default avatarSebastian Ott <sebott@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 1b2be207
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -143,14 +143,4 @@ static inline int zpci_set_irq_ctrl(u16 ctl, u8 isc)
	return __zpci_set_irq_ctrl(ctl, isc, &iib);
}

#ifdef CONFIG_PCI
static inline void enable_mio_ctl(void)
{
	if (static_branch_likely(&have_mio))
		__ctl_set_bit(2, 5);
}
#else /* CONFIG_PCI */
static inline void enable_mio_ctl(void) {}
#endif /* CONFIG_PCI */

#endif
+0 −2
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@
#include <asm/sclp.h>
#include <asm/facility.h>
#include <asm/boot_data.h>
#include <asm/pci_insn.h>
#include "entry.h"

/*
@@ -236,7 +235,6 @@ static __init void detect_machine_facilities(void)
		clock_comparator_max = -1ULL >> 1;
		__ctl_set_bit(0, 53);
	}
	enable_mio_ctl();
}

static inline void save_vector_registers(void)
+3 −1
Original line number Diff line number Diff line
@@ -890,8 +890,10 @@ static int __init pci_base_init(void)
	if (!test_facility(69) || !test_facility(71))
		return 0;

	if (test_facility(153) && !s390_pci_no_mio)
	if (test_facility(153) && !s390_pci_no_mio) {
		static_branch_enable(&have_mio);
		ctl_set_bit(2, 5);
	}

	rc = zpci_debug_init();
	if (rc)