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: 833b441ec0
("s390: enable processes for mio instructions")
Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
1b2be2071a
commit
9964f396f1
@ -143,14 +143,4 @@ static inline int zpci_set_irq_ctrl(u16 ctl, u8 isc)
|
|||||||
return __zpci_set_irq_ctrl(ctl, isc, &iib);
|
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
|
#endif
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
#include <asm/sclp.h>
|
#include <asm/sclp.h>
|
||||||
#include <asm/facility.h>
|
#include <asm/facility.h>
|
||||||
#include <asm/boot_data.h>
|
#include <asm/boot_data.h>
|
||||||
#include <asm/pci_insn.h>
|
|
||||||
#include "entry.h"
|
#include "entry.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -236,7 +235,6 @@ static __init void detect_machine_facilities(void)
|
|||||||
clock_comparator_max = -1ULL >> 1;
|
clock_comparator_max = -1ULL >> 1;
|
||||||
__ctl_set_bit(0, 53);
|
__ctl_set_bit(0, 53);
|
||||||
}
|
}
|
||||||
enable_mio_ctl();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void save_vector_registers(void)
|
static inline void save_vector_registers(void)
|
||||||
|
@ -890,8 +890,10 @@ static int __init pci_base_init(void)
|
|||||||
if (!test_facility(69) || !test_facility(71))
|
if (!test_facility(69) || !test_facility(71))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (test_facility(153) && !s390_pci_no_mio)
|
if (test_facility(153) && !s390_pci_no_mio) {
|
||||||
static_branch_enable(&have_mio);
|
static_branch_enable(&have_mio);
|
||||||
|
ctl_set_bit(2, 5);
|
||||||
|
}
|
||||||
|
|
||||||
rc = zpci_debug_init();
|
rc = zpci_debug_init();
|
||||||
if (rc)
|
if (rc)
|
||||||
|
Loading…
Reference in New Issue
Block a user