The VFIO subsystem is about securely passing host PCI devices to a guest, so all the classes should be presumed to be offering a security boundary.
Signed-off-by: Daniel P. Berrangé <[email protected]> --- hw/vfio-user/pci.c | 1 + hw/vfio/ap.c | 1 + hw/vfio/ccw.c | 1 + hw/vfio/container.c | 1 + hw/vfio/igd.c | 1 + hw/vfio/iommufd.c | 2 ++ hw/vfio/pci.c | 3 +++ hw/vfio/spapr.c | 1 + 8 files changed, 11 insertions(+) diff --git a/hw/vfio-user/pci.c b/hw/vfio-user/pci.c index e7573d4a9f..ae26160f72 100644 --- a/hw/vfio-user/pci.c +++ b/hw/vfio-user/pci.c @@ -482,6 +482,7 @@ static const TypeInfo vfio_user_pci_info = { .class_init = vfio_user_pci_class_init, .instance_init = vfio_user_pci_init, .instance_finalize = vfio_user_pci_finalize, + .secure = true, }; static void register_vfio_user_dev_type(void) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 6e2a1223ea..4b9d522f7b 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -352,6 +352,7 @@ static const TypeInfo vfio_ap_info = { .instance_size = sizeof(VFIOAPDevice), .instance_init = vfio_ap_instance_init, .class_init = vfio_ap_class_init, + .secure = true, }; static void vfio_ap_type_init(void) diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index c3dc7c1962..7a241aa02a 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -721,6 +721,7 @@ static const TypeInfo vfio_ccw_info = { .instance_size = sizeof(VFIOCCWDevice), .instance_init = vfio_ccw_instance_init, .class_init = vfio_ccw_class_init, + .secure = true, }; static void register_vfio_ccw_type(void) diff --git a/hw/vfio/container.c b/hw/vfio/container.c index d09a663732..d4f20c6c81 100644 --- a/hw/vfio/container.c +++ b/hw/vfio/container.c @@ -336,6 +336,7 @@ static const TypeInfo types[] = { .instance_size = sizeof(VFIOContainer), .class_size = sizeof(VFIOIOMMUClass), .abstract = true, + .secure = true, }, }; diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 413a49aae9..e9cef355f9 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -311,6 +311,7 @@ static const TypeInfo vfio_pci_igd_lpc_bridge_info = { .name = "vfio-pci-igd-lpc-bridge", .parent = TYPE_PCI_DEVICE, .class_init = vfio_pci_igd_lpc_bridge_class_init, + .secure = true, .interfaces = (const InterfaceInfo[]) { { INTERFACE_CONVENTIONAL_PCI_DEVICE }, { }, diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c index 242644aa00..64e588fe51 100644 --- a/hw/vfio/iommufd.c +++ b/hw/vfio/iommufd.c @@ -1051,10 +1051,12 @@ static const TypeInfo types[] = { .parent = TYPE_VFIO_IOMMU, .instance_size = sizeof(VFIOIOMMUFDContainer), .class_init = vfio_iommu_iommufd_class_init, + .secure = true, }, { .name = TYPE_HOST_IOMMU_DEVICE_IOMMUFD_VFIO, .parent = TYPE_HOST_IOMMU_DEVICE_IOMMUFD, .class_init = hiod_iommufd_vfio_class_init, + .secure = true, } }; diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 428ab2f069..b38877a1a8 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3854,6 +3854,7 @@ static const TypeInfo vfio_pci_device_info = { .parent = TYPE_PCI_DEVICE, .instance_size = sizeof(VFIOPCIDevice), .abstract = true, + .secure = true, .class_init = vfio_pci_device_class_init, .interfaces = (const InterfaceInfo[]) { { INTERFACE_PCIE_DEVICE }, @@ -4110,6 +4111,7 @@ static const TypeInfo vfio_pci_info = { .class_init = vfio_pci_class_init, .instance_init = vfio_pci_init, .instance_finalize = vfio_pci_finalize, + .secure = true, }; static const Property vfio_pci_nohotplug_properties[] = { @@ -4146,6 +4148,7 @@ static const TypeInfo vfio_pci_nohotplug_info = { .parent = TYPE_VFIO_PCI, .instance_size = sizeof(VFIOPCIDevice), .class_init = vfio_pci_nohotplug_class_init, + .secure = true, }; static void register_vfio_pci_dev_type(void) diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c index 42690e4323..1027c434c0 100644 --- a/hw/vfio/spapr.c +++ b/hw/vfio/spapr.c @@ -544,6 +544,7 @@ static const TypeInfo types[] = { .parent = TYPE_VFIO_IOMMU_LEGACY, .instance_size = sizeof(VFIOSpaprContainer), .class_init = vfio_iommu_spapr_class_init, + .secure = true, }, }; -- 2.55.0
