ping On 9/6/19 8:13 PM, Matthew Rosato wrote: > Note: These patches by Pierre got lost in the ether a few months back > as he has been unavailable to carry them forward. I've made changes > based upon comments received on his last version. > > We define a new configuration entry for VFIO/PCI, VFIO_PCI_ZDEV > to configure access to a zPCI region dedicated for retrieving > zPCI features. > > When the VFIO_PCI_ZDEV feature is configured we initialize > a new device region, VFIO_REGION_SUBTYPE_ZDEV_CLP, to hold > the information from the ZPCI device the userland needs to > give to a guest driving the zPCI function. > > > Note that in the current state we do not use the CLP instructions > to access the firmware but get the information directly from > the zdev device. > > -This means that the patch 1, "s390: pci: Exporting access to CLP PCI > function and PCI group" is not used and can be let out of this series > without denying the good working of the other patches. > - But we will need this later, eventually in the next iteration > to retrieve values not being saved inside the zdev structure. > like maxstbl and the PCI supported version > > To share the code with arch/s390/pci/pci_clp.c the original functions > in pci_clp.c to query PCI functions and PCI functions group are > modified so that they can be exported. > > A new function clp_query_pci() replaces clp_query_pci_fn() and > the previous calls to clp_query_pci_fn() and clp_query_pci_fngrp() > are replaced with calls to zdev_query_pci_fn() and zdev_query_pci_fngrp() > using a zdev pointer as argument. > > Changes since v3: > - New patch: define maxstbl > - Remove CLP_UTIL_STR_LEN references from uapi header > - Fix broken ifdef CONFIG_VFIO_PCI_ZDEV > - Change Kconfig option from tristate to bool > - Remove VFIO_REGION_TYPE_IBM_ZDEV, move VFIO_REGION_SUBTYPE_ZDEV_CLP to a 1014 subtype > - reject iswrite in .rw callback > - Remove rw restriction on identical buffer sizes > - Allow arbitrary sized read > > Pierre Morel (4): > s390: pci: Exporting access to CLP PCI function and PCI group > s390: pci: Define the maxstbl CLP response entry > vfio: zpci: defining the VFIO headers > vfio: pci: Using a device region to retrieve zPCI information > > arch/s390/include/asm/pci.h | 3 ++ > arch/s390/include/asm/pci_clp.h | 2 +- > arch/s390/pci/pci_clp.c | 71 ++++++++++++++++--------------- > drivers/vfio/pci/Kconfig | 7 +++ > drivers/vfio/pci/Makefile | 1 + > drivers/vfio/pci/vfio_pci.c | 9 ++++ > drivers/vfio/pci/vfio_pci_private.h | 10 +++++ > drivers/vfio/pci/vfio_pci_zdev.c | 85 +++++++++++++++++++++++++++++++++++++ > include/uapi/linux/vfio.h | 1 + > include/uapi/linux/vfio_zdev.h | 35 +++++++++++++++ > 10 files changed, 189 insertions(+), 35 deletions(-) > create mode 100644 drivers/vfio/pci/vfio_pci_zdev.c > create mode 100644 include/uapi/linux/vfio_zdev.h >