On Mon, 30 Oct 2017 14:48:23 +0100 Christian Borntraeger <borntrae...@de.ibm.com> wrote:
> FWIW, I am testing a guest patch that enables zPCI without AIS. Its as simple > as > > > diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c > index 7b30af5..9b24836 100644 > --- a/arch/s390/pci/pci.c > +++ b/arch/s390/pci/pci.c > @@ -953,7 +953,7 @@ static int __init pci_base_init(void) > if (!s390_pci_probe) > return 0; > > - if (!test_facility(69) || !test_facility(71) || !test_facility(72)) > + if (!test_facility(69) || !test_facility(71)) > return 0; > > rc = zpci_debug_init(); > diff --git a/arch/s390/pci/pci_insn.c b/arch/s390/pci/pci_insn.c > index ea34086..61f8c82 100644 > --- a/arch/s390/pci/pci_insn.c > +++ b/arch/s390/pci/pci_insn.c > @@ -7,6 +7,7 @@ > #include <linux/export.h> > #include <linux/errno.h> > #include <linux/delay.h> > +#include <asm/facility.h> > #include <asm/pci_insn.h> > #include <asm/pci_debug.h> > #include <asm/processor.h> > @@ -93,6 +94,8 @@ int zpci_refresh_trans(u64 fn, u64 addr, u64 range) > /* Set Interruption Controls */ > void zpci_set_irq_ctrl(u16 ctl, char *unused, u8 isc) > { > + if (!test_facility(72)) > + return; > asm volatile ( > " .insn rsy,0xeb00000000d1,%[ctl],%[isc],%[u]\n" > : : [ctl] "d" (ctl), [isc] "d" (isc << 27), [u] "Q" > (*unused)); > Sounds good. Presumably this makes the adapter interrupt handling work as for virtio (and qdio)? Is there any ais-less pci hardware out in the wild?