]> git.baikalelectronics.ru Git - kernel.git/commit
s390/pci: do not require AIS facility
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 30 Oct 2017 13:38:58 +0000 (14:38 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 8 Nov 2017 08:47:39 +0000 (09:47 +0100)
commit147673353da7a75b675c2bb5e25f4918bcbb8a0c
treec8496aa6e3177a1114fa3431f83e38ab6cb517f3
parent5dfb4f0d243b659de20cc98a98e7df628f698818
s390/pci: do not require AIS facility

As of today QEMU does not provide the AIS facility to its guest.  This
prevents Linux guests from using PCI devices as the ais facility is
checked during init. As this is just a performance optimization, we can
move the ais check into the code where we need it (calling the SIC
instruction). This is used at initialization and on interrupt. Both
places do not require any serialization, so we can simply skip the
instruction.

Since we will now get all interrupts, we can also avoid the 2nd scan.
As we can have multiple interrupts in parallel we might trigger spurious
irqs more often for the non-AIS case but the core code can handle that.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Acked-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/include/asm/pci_insn.h
arch/s390/pci/pci.c
arch/s390/pci/pci_insn.c