s390x/pci: get zPCI function info from host
commit1e7552ff5c34972a7a17d2b06900a0b66c79a68b
authorMatthew Rosato <mjrosato@linux.ibm.com>
Mon, 26 Oct 2020 15:34:41 +0000 (26 11:34 -0400)
committerAlex Williamson <alex.williamson@redhat.com>
Sun, 1 Nov 2020 19:30:52 +0000 (1 12:30 -0700)
treecf45f711a925437b91fb72777310f558fb33e8bf
parent92fe289ace3e559e2d18d0c2e49cdfb4cbd5a59b
s390x/pci: get zPCI function info from host

We use the capability chains of the VFIO_DEVICE_GET_INFO ioctl to retrieve
the CLP information that the kernel exports.

To be compatible with previous kernel versions we fall back on previous
predefined values, same as the emulation values, when the ioctl is found
to not support capability chains. If individual CLP capabilities are not
found, we fall back on default values for only those capabilities missing
from the chain.

This patch is based on work previously done by Pierre Morel.

Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
[aw: non-Linux build fixes]
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
hw/s390x/s390-pci-bus.c
hw/s390x/s390-pci-vfio.c
hw/s390x/trace-events
include/hw/s390x/s390-pci-bus.h
include/hw/s390x/s390-pci-clp.h
include/hw/s390x/s390-pci-vfio.h