mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-31 14:02:05 -06:00
hw/ppc/Kconfig: Imply VFIO_PCI
When the legacy and iommufd backends were introduced, a set of common vfio-pci routines were exported in pci.c for both backends to use : vfio_pci_pre_reset vfio_pci_get_pci_hot_reset_info vfio_pci_host_match vfio_pci_post_reset This introduced a build failure on PPC when --without-default-devices is use because VFIO is always selected in ppc/Kconfig but VFIO_PCI is not. Use an 'imply VFIO_PCI' in ppc/Kconfig and bypass compilation of the VFIO EEH hooks routines defined in hw/ppc/spapr_pci_vfio.c with CONFIG_VFIO_PCI. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
98dad2b019
commit
4278df9d1d
2 changed files with 37 additions and 1 deletions
|
@ -3,11 +3,11 @@ config PSERIES
|
||||||
imply PCI_DEVICES
|
imply PCI_DEVICES
|
||||||
imply TEST_DEVICES
|
imply TEST_DEVICES
|
||||||
imply VIRTIO_VGA
|
imply VIRTIO_VGA
|
||||||
|
imply VFIO_PCI if LINUX # needed by spapr_pci_vfio.c
|
||||||
select NVDIMM
|
select NVDIMM
|
||||||
select DIMM
|
select DIMM
|
||||||
select PCI
|
select PCI
|
||||||
select SPAPR_VSCSI
|
select SPAPR_VSCSI
|
||||||
select VFIO if LINUX # needed by spapr_pci_vfio.c
|
|
||||||
select XICS
|
select XICS
|
||||||
select XIVE
|
select XIVE
|
||||||
select MSI_NONBROKEN
|
select MSI_NONBROKEN
|
||||||
|
|
|
@ -26,10 +26,12 @@
|
||||||
#include "hw/pci/pci_device.h"
|
#include "hw/pci/pci_device.h"
|
||||||
#include "hw/vfio/vfio-common.h"
|
#include "hw/vfio/vfio-common.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
|
#include CONFIG_DEVICES /* CONFIG_VFIO_PCI */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Interfaces for IBM EEH (Enhanced Error Handling)
|
* Interfaces for IBM EEH (Enhanced Error Handling)
|
||||||
*/
|
*/
|
||||||
|
#ifdef CONFIG_VFIO_PCI
|
||||||
static bool vfio_eeh_container_ok(VFIOContainer *container)
|
static bool vfio_eeh_container_ok(VFIOContainer *container)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -314,3 +316,37 @@ int spapr_phb_vfio_eeh_configure(SpaprPhbState *sphb)
|
||||||
|
|
||||||
return RTAS_OUT_SUCCESS;
|
return RTAS_OUT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
bool spapr_phb_eeh_available(SpaprPhbState *sphb)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void spapr_phb_vfio_reset(DeviceState *qdev)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int spapr_phb_vfio_eeh_set_option(SpaprPhbState *sphb,
|
||||||
|
unsigned int addr, int option)
|
||||||
|
{
|
||||||
|
return RTAS_OUT_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int spapr_phb_vfio_eeh_get_state(SpaprPhbState *sphb, int *state)
|
||||||
|
{
|
||||||
|
return RTAS_OUT_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int spapr_phb_vfio_eeh_reset(SpaprPhbState *sphb, int option)
|
||||||
|
{
|
||||||
|
return RTAS_OUT_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
int spapr_phb_vfio_eeh_configure(SpaprPhbState *sphb)
|
||||||
|
{
|
||||||
|
return RTAS_OUT_NOT_SUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_VFIO_PCI */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue