On 1/14/22 21:31, Matthew Rosato wrote:
Initial setup for Adapter Event Notification Interpretation for zPCI passthrough devices. Specifically, allocate a structure for forwarding of adapter events and pass the address of this structure to firmware. Signed-off-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxx> --- arch/s390/include/asm/pci.h | 4 + arch/s390/include/asm/pci_insn.h | 12 +++ arch/s390/kvm/interrupt.c | 14 +++ arch/s390/kvm/kvm-s390.c | 9 ++ arch/s390/kvm/pci.c | 144 +++++++++++++++++++++++++++++++ arch/s390/kvm/pci.h | 42 +++++++++ arch/s390/pci/pci.c | 6 ++ 7 files changed, 231 insertions(+) create mode 100644 arch/s390/kvm/pci.h
...snip...
new file mode 100644 index 000000000000..b2000ed7b8c3 --- /dev/null +++ b/arch/s390/kvm/pci.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * s390 kvm PCI passthrough support + * + * Copyright IBM Corp. 2021 + * + * Author(s): Matthew Rosato <mjrosato@xxxxxxxxxxxxx> + */ + +#ifndef __KVM_S390_PCI_H +#define __KVM_S390_PCI_H + +#include <linux/pci.h> +#include <linux/mutex.h> +#include <asm/airq.h> +#include <asm/kvm_pci.h> + +struct zpci_gaite { + u32 gisa; + u8 gisc; + u8 count; + u8 reserved; + u8 aisbo; + u64 aisb; +}; + +struct zpci_aift { + struct zpci_gaite *gait; + struct airq_iv *sbv; + struct kvm_zdev **kzdev; + spinlock_t gait_lock; /* Protects the gait, used during AEN forward */ + struct mutex lock; /* Protects the other structures in aift */
To facilitate review and debug, can we please rename the lock aift_lock?
+}; + +extern struct zpci_aift *aift; +
...snip... -- Pierre Morel IBM Lab Boeblingen