qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Thomas Huth" <thuth@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH v2 32/32] hw/display: mark most display adapters as insecure
Date: Fri, 26 Sep 2025 15:01:43 +0100	[thread overview]
Message-ID: <20250926140144.1998694-33-berrange@redhat.com> (raw)
In-Reply-To: <20250926140144.1998694-1-berrange@redhat.com>

Most of thte display adapters are emulating old hardware which is not
relevant to virtualization use cases.

The exceptions that should be considered secure are Cirrus (PCI, not
ISA), Bochs, QXL, RAMFB, VGA (PCI, MMIO, not ISA) and VMWare VGA.

The Cirrus PCI decision is borderline. It has been heavily used with
virtualization in the past, but these days VGA / RAMFB are strongly
recommended instead. Due to its historical usage though, we can
consider the code fairly mature, even if no longer hugely relevant
to virtualization use cases.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 hw/display/artist.c           | 1 +
 hw/display/ati.c              | 1 +
 hw/display/bcm2835_fb.c       | 1 +
 hw/display/bochs-display.c    | 1 +
 hw/display/cg3.c              | 1 +
 hw/display/cirrus_vga.c       | 1 +
 hw/display/cirrus_vga_isa.c   | 1 +
 hw/display/dm163.c            | 1 +
 hw/display/dpcd.c             | 1 +
 hw/display/exynos4210_fimd.c  | 1 +
 hw/display/g364fb.c           | 1 +
 hw/display/i2c-ddc.c          | 3 ++-
 hw/display/jazz_led.c         | 1 +
 hw/display/macfb.c            | 2 ++
 hw/display/next-fb.c          | 1 +
 hw/display/pl110.c            | 3 +++
 hw/display/qxl.c              | 4 ++++
 hw/display/ramfb-standalone.c | 1 +
 hw/display/sii9022.c          | 1 +
 hw/display/sm501.c            | 1 +
 hw/display/ssd0303.c          | 1 +
 hw/display/ssd0323.c          | 1 +
 hw/display/tcx.c              | 1 +
 hw/display/vga-isa.c          | 1 +
 hw/display/vga-mmio.c         | 1 +
 hw/display/vga-pci.c          | 3 +++
 hw/display/vmware_vga.c       | 1 +
 hw/display/xlnx_dp.c          | 1 +
 28 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/hw/display/artist.c b/hw/display/artist.c
index 3c884c9243..caab4d1d4c 100644
--- a/hw/display/artist.c
+++ b/hw/display/artist.c
@@ -1504,6 +1504,7 @@ static const TypeInfo artist_info = {
     .instance_size = sizeof(ARTISTState),
     .instance_init = artist_initfn,
     .class_init    = artist_class_init,
+    .secure        = false,
 };
 
 static void artist_register_types(void)
diff --git a/hw/display/ati.c b/hw/display/ati.c
index f7c0006a87..6e332e02d2 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -1080,6 +1080,7 @@ static const TypeInfo ati_vga_info = {
     .instance_size = sizeof(ATIVGAState),
     .class_init = ati_vga_class_init,
     .instance_init = ati_vga_init,
+    .secure = false,
     .interfaces = (const InterfaceInfo[]) {
           { INTERFACE_CONVENTIONAL_PCI_DEVICE },
           { },
diff --git a/hw/display/bcm2835_fb.c b/hw/display/bcm2835_fb.c
index 1bb2ee45a0..bb6c986fb8 100644
--- a/hw/display/bcm2835_fb.c
+++ b/hw/display/bcm2835_fb.c
@@ -459,6 +459,7 @@ static const TypeInfo bcm2835_fb_info = {
     .instance_size = sizeof(BCM2835FBState),
     .class_init    = bcm2835_fb_class_init,
     .instance_init = bcm2835_fb_init,
+    .secure        = false,
 };
 
 static void bcm2835_fb_register_types(void)
diff --git a/hw/display/bochs-display.c b/hw/display/bochs-display.c
index ad2821c974..0495d900f6 100644
--- a/hw/display/bochs-display.c
+++ b/hw/display/bochs-display.c
@@ -374,6 +374,7 @@ static const TypeInfo bochs_display_type_info = {
     .instance_size  = sizeof(BochsDisplayState),
     .instance_init  = bochs_display_init,
     .class_init     = bochs_display_class_init,
+    .secure         = true,
     .interfaces     = (const InterfaceInfo[]) {
         { INTERFACE_PCIE_DEVICE },
         { INTERFACE_CONVENTIONAL_PCI_DEVICE },
diff --git a/hw/display/cg3.c b/hw/display/cg3.c
index daeef15217..f437921a7e 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -384,6 +384,7 @@ static const TypeInfo cg3_info = {
     .instance_size = sizeof(CG3State),
     .instance_init = cg3_initfn,
     .class_init    = cg3_class_init,
+    .secure        = false,
 };
 
 static void cg3_register_types(void)
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index ef08694626..d9403ccb57 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -3013,6 +3013,7 @@ static const TypeInfo cirrus_vga_info = {
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCICirrusVGAState),
     .class_init    = cirrus_vga_class_init,
+    .secure        = true,
     .interfaces = (const InterfaceInfo[]) {
         { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { },
diff --git a/hw/display/cirrus_vga_isa.c b/hw/display/cirrus_vga_isa.c
index 4b55c48eff..7b38e6c33a 100644
--- a/hw/display/cirrus_vga_isa.c
+++ b/hw/display/cirrus_vga_isa.c
@@ -91,6 +91,7 @@ static const TypeInfo isa_cirrus_vga_info = {
     .parent        = TYPE_ISA_DEVICE,
     .instance_size = sizeof(ISACirrusVGAState),
     .class_init = isa_cirrus_vga_class_init,
+    .secure        = false,
 };
 
 static void cirrus_vga_isa_register_types(void)
diff --git a/hw/display/dm163.c b/hw/display/dm163.c
index f8340d8275..f043786775 100644
--- a/hw/display/dm163.c
+++ b/hw/display/dm163.c
@@ -343,6 +343,7 @@ static const TypeInfo dm163_types[] = {
         .parent = TYPE_DEVICE,
         .instance_size = sizeof(DM163State),
         .class_init = dm163_class_init
+        .secure = false,
     }
 };
 
diff --git a/hw/display/dpcd.c b/hw/display/dpcd.c
index a157dc64e7..733f643375 100644
--- a/hw/display/dpcd.c
+++ b/hw/display/dpcd.c
@@ -155,6 +155,7 @@ static const TypeInfo dpcd_info = {
     .instance_size = sizeof(DPCDState),
     .class_init    = dpcd_class_init,
     .instance_init = dpcd_init,
+    .secure        = false,
 };
 
 static void dpcd_register_types(void)
diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
index c61e0280a7..85e32e8700 100644
--- a/hw/display/exynos4210_fimd.c
+++ b/hw/display/exynos4210_fimd.c
@@ -1974,6 +1974,7 @@ static const TypeInfo exynos4210_fimd_info = {
     .instance_size = sizeof(Exynos4210fimdState),
     .instance_init = exynos4210_fimd_init,
     .class_init = exynos4210_fimd_class_init,
+    .secure = false,
 };
 
 static void exynos4210_fimd_register_types(void)
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index a6ddc21d3e..c23d584684 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -543,6 +543,7 @@ static const TypeInfo g364fb_sysbus_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(G364SysBusState),
     .class_init    = g364fb_sysbus_class_init,
+    .secure        = false,
 };
 
 static void g364fb_register_types(void)
diff --git a/hw/display/i2c-ddc.c b/hw/display/i2c-ddc.c
index 2adfc1a147..525479aa49 100644
--- a/hw/display/i2c-ddc.c
+++ b/hw/display/i2c-ddc.c
@@ -117,7 +117,8 @@ static const TypeInfo i2c_ddc_info = {
     .parent = TYPE_I2C_SLAVE,
     .instance_size = sizeof(I2CDDCState),
     .instance_init = i2c_ddc_init,
-    .class_init = i2c_ddc_class_init
+    .class_init = i2c_ddc_class_init,
+    .secure = false,
 };
 
 static void ddc_register_devices(void)
diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
index 90e82b58be..946f78306e 100644
--- a/hw/display/jazz_led.c
+++ b/hw/display/jazz_led.c
@@ -310,6 +310,7 @@ static const TypeInfo jazz_led_info = {
     .instance_size = sizeof(LedState),
     .instance_init = jazz_led_init,
     .class_init    = jazz_led_class_init,
+    .secure        = false,
 };
 
 static void jazz_led_register(void)
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 574d667173..b80ce26d9b 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -825,6 +825,7 @@ static const TypeInfo macfb_sysbus_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(MacfbSysBusState),
     .class_init    = macfb_sysbus_class_init,
+    .secure        = false,
 };
 
 static const TypeInfo macfb_nubus_info = {
@@ -833,6 +834,7 @@ static const TypeInfo macfb_nubus_info = {
     .instance_size = sizeof(MacfbNubusState),
     .class_init    = macfb_nubus_class_init,
     .class_size    = sizeof(MacfbNubusDeviceClass),
+    .secure        = false,
 };
 
 static void macfb_register_types(void)
diff --git a/hw/display/next-fb.c b/hw/display/next-fb.c
index ec81b766a7..9ddbd13ba3 100644
--- a/hw/display/next-fb.c
+++ b/hw/display/next-fb.c
@@ -134,6 +134,7 @@ static const TypeInfo nextfb_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(NeXTFbState),
     .class_init    = nextfb_class_init,
+    .secure        = false,
 };
 
 static void nextfb_register_types(void)
diff --git a/hw/display/pl110.c b/hw/display/pl110.c
index 09c3c59e0e..ce33d4c68c 100644
--- a/hw/display/pl110.c
+++ b/hw/display/pl110.c
@@ -596,18 +596,21 @@ static const TypeInfo pl110_info = {
     .instance_size = sizeof(PL110State),
     .instance_init = pl110_init,
     .class_init    = pl110_class_init,
+    .secure        = false,
 };
 
 static const TypeInfo pl110_versatile_info = {
     .name          = "pl110_versatile",
     .parent        = TYPE_PL110,
     .instance_init = pl110_versatile_init,
+    .secure        = false,
 };
 
 static const TypeInfo pl111_info = {
     .name          = "pl111",
     .parent        = TYPE_PL110,
     .instance_init = pl111_init,
+    .secure        = false,
 };
 
 static void pl110_register_types(void)
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index 18f482ca7f..8f876c872a 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -2516,7 +2516,9 @@ static const TypeInfo qxl_pci_type_info = {
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIQXLDevice),
     .abstract = true,
+    .secure = true,
     .class_init = qxl_pci_class_init,
+    .secure        = true,
     .interfaces = (const InterfaceInfo[]) {
         { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { },
@@ -2539,6 +2541,7 @@ static const TypeInfo qxl_primary_info = {
     .name          = "qxl-vga",
     .parent        = TYPE_PCI_QXL,
     .class_init    = qxl_primary_class_init,
+    .secure        = true,
 };
 module_obj("qxl-vga");
 module_kconfig(QXL);
@@ -2557,6 +2560,7 @@ static const TypeInfo qxl_secondary_info = {
     .name          = "qxl",
     .parent        = TYPE_PCI_QXL,
     .class_init    = qxl_secondary_class_init,
+    .secure        = true,
 };
 module_obj("qxl");
 
diff --git a/hw/display/ramfb-standalone.c b/hw/display/ramfb-standalone.c
index 72b2071aed..6fbb90d74c 100644
--- a/hw/display/ramfb-standalone.c
+++ b/hw/display/ramfb-standalone.c
@@ -83,6 +83,7 @@ static const TypeInfo ramfb_info = {
     .parent        = TYPE_DYNAMIC_SYS_BUS_DEVICE,
     .instance_size = sizeof(RAMFBStandaloneState),
     .class_init    = ramfb_class_initfn,
+    .secure        = true,
 };
 
 static void ramfb_register_types(void)
diff --git a/hw/display/sii9022.c b/hw/display/sii9022.c
index d00d3e9fc5..06d7863a9e 100644
--- a/hw/display/sii9022.c
+++ b/hw/display/sii9022.c
@@ -185,6 +185,7 @@ static const TypeInfo sii9022_info = {
     .parent        = TYPE_I2C_SLAVE,
     .instance_size = sizeof(sii9022_state),
     .class_init    = sii9022_class_init,
+    .secure        = false,
 };
 
 static void sii9022_register_types(void)
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index bc091b3c9f..abbb78ea3e 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -2114,6 +2114,7 @@ static const TypeInfo sm501_sysbus_info = {
     .instance_size = sizeof(SM501SysBusState),
     .class_init    = sm501_sysbus_class_init,
     .instance_init = sm501_sysbus_init,
+    .secure        = false,
 };
 
 #define TYPE_PCI_SM501 "sm501"
diff --git a/hw/display/ssd0303.c b/hw/display/ssd0303.c
index 87781438cd..4be9d3bcc5 100644
--- a/hw/display/ssd0303.c
+++ b/hw/display/ssd0303.c
@@ -328,6 +328,7 @@ static const TypeInfo ssd0303_info = {
     .parent        = TYPE_I2C_SLAVE,
     .instance_size = sizeof(ssd0303_state),
     .class_init    = ssd0303_class_init,
+    .secure        = false,
 };
 
 static void ssd0303_register_types(void)
diff --git a/hw/display/ssd0323.c b/hw/display/ssd0323.c
index af5ff4fecd..8deddf2f47 100644
--- a/hw/display/ssd0323.c
+++ b/hw/display/ssd0323.c
@@ -378,6 +378,7 @@ static const TypeInfo ssd0323_info = {
     .parent        = TYPE_SSI_PERIPHERAL,
     .instance_size = sizeof(ssd0323_state),
     .class_init    = ssd0323_class_init,
+    .secure        = false,
 };
 
 static void ssd03232_register_types(void)
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index 4853c5e142..1bbbc670dd 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -901,6 +901,7 @@ static const TypeInfo tcx_info = {
     .instance_size = sizeof(TCXState),
     .instance_init = tcx_initfn,
     .class_init    = tcx_class_init,
+    .secure        = false,
 };
 
 static void tcx_register_types(void)
diff --git a/hw/display/vga-isa.c b/hw/display/vga-isa.c
index 3618913b3b..d01d73ddb0 100644
--- a/hw/display/vga-isa.c
+++ b/hw/display/vga-isa.c
@@ -108,6 +108,7 @@ static const TypeInfo vga_isa_info = {
     .parent        = TYPE_ISA_DEVICE,
     .instance_size = sizeof(ISAVGAState),
     .class_init    = vga_isa_class_initfn,
+    .secure        = false,
 };
 
 static void vga_isa_register_types(void)
diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c
index 33263856b7..1c53422b59 100644
--- a/hw/display/vga-mmio.c
+++ b/hw/display/vga-mmio.c
@@ -132,6 +132,7 @@ static const TypeInfo vga_mmio_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(VGAMmioState),
     .class_init    = vga_mmio_class_initfn,
+    .secure        = true,
 };
 
 static void vga_mmio_register_types(void)
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index b81f7fd2d0..acd59865d3 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -368,6 +368,7 @@ static const TypeInfo vga_pci_type_info = {
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIVGAState),
     .abstract = true,
+    .secure = true,
     .class_init = vga_pci_class_init,
     .interfaces = (const InterfaceInfo[]) {
         { INTERFACE_CONVENTIONAL_PCI_DEVICE },
@@ -408,6 +409,7 @@ static const TypeInfo vga_info = {
     .name          = "VGA",
     .parent        = TYPE_PCI_VGA,
     .class_init    = vga_class_init,
+    .secure        = true,
 };
 
 static const TypeInfo secondary_info = {
@@ -415,6 +417,7 @@ static const TypeInfo secondary_info = {
     .parent        = TYPE_PCI_VGA,
     .instance_init = pci_secondary_vga_init,
     .class_init    = secondary_class_init,
+    .secure        = true,
 };
 
 static void vga_register_types(void)
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index bc1a8ed466..8734da1175 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -1363,6 +1363,7 @@ static const TypeInfo vmsvga_info = {
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(struct pci_vmsvga_state_s),
     .class_init    = vmsvga_class_init,
+    .secure        = true,
     .interfaces = (const InterfaceInfo[]) {
         { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { },
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c
index ef73e1815f..dc239537a9 100644
--- a/hw/display/xlnx_dp.c
+++ b/hw/display/xlnx_dp.c
@@ -1412,6 +1412,7 @@ static const TypeInfo xlnx_dp_info = {
     .instance_init = xlnx_dp_init,
     .instance_finalize = xlnx_dp_finalize,
     .class_init    = xlnx_dp_class_init,
+    .secure        = false,
 };
 
 static void xlnx_dp_register_types(void)
-- 
2.50.1



  parent reply	other threads:[~2025-09-26 14:11 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-26 14:01 [PATCH v2 00/32] Encode object type security status in code Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 01/32] qom: replace 'abstract' with 'flags' Daniel P. Berrangé
2025-10-23 10:26   ` Markus Armbruster
2025-10-24 13:39     ` Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 02/32] qom: add tracking of security state of object types Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 03/32] qapi: add 'insecure-types' option for -compat argument Daniel P. Berrangé
2025-10-23 10:38   ` Markus Armbruster
2025-09-26 14:01 ` [PATCH v2 04/32] system: check security for accelerator types Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 05/32] system: report acclerator security status in help output Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 06/32] system: check security for machine types Daniel P. Berrangé
2025-10-23 11:51   ` Markus Armbruster
2025-09-26 14:01 ` [PATCH v2 07/32] system: report machine security status in help output Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 08/32] system: check security of device types Daniel P. Berrangé
2025-10-23 11:54   ` Markus Armbruster
2025-10-24 13:28     ` Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 09/32] system: report device security status in help output Daniel P. Berrangé
2025-10-23 11:57   ` Markus Armbruster
2025-09-26 14:01 ` [PATCH v2 10/32] hw/core: report security status in query-machines Daniel P. Berrangé
2025-10-23 12:17   ` Markus Armbruster
2025-10-24 13:32     ` Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 11/32] qom: report & filter on security status in qom-list-types Daniel P. Berrangé
2025-10-23 10:58   ` Markus Armbruster
2025-10-24 13:38     ` Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 12/32] docs: expand security docs with info about security status Daniel P. Berrangé
2025-10-23 12:22   ` Markus Armbruster
2025-10-24 13:42     ` Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 13/32] machine: add helpers for declaring secure/insecure machine types Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 14/32] hw: mark x86, s390, ppc, arm versioned machine types as secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 15/32] hw: declare Xen & microvm machines as secure, isapc as insecure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 16/32] hw/core: declare 'none' machine to be insecure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 17/32] accel: mark kvm, xen & hvf as secure; tcg & qtest as insecure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 18/32] hw: mark all virtio PCI devices as secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 19/32] hw: mark all virtio CCW " Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 20/32] hw: mark all vhost devices a secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 21/32] hw: mark all remaining virtio object types as secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 22/32] hw/vfio: mark all VFIO object classes " Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 23/32] hw/xen: mark all Xen related object types as being secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 24/32] hw/net: mark most non-virtio NICs as insecure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 25/32] hw/usb: mark most USB devices/hosts as secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 26/32] hw/watchdog: mark some watchdog devices " Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 27/32] hw/scsi: mark most SCSI controllers as insecure / " Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 28/32] hw/ide: mark ICH9 and ide-hd/ide-cd " Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 29/32] hw: mark test/demo devices as insecure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 30/32] hw: define most common PCI types as secure Daniel P. Berrangé
2025-09-26 14:01 ` [PATCH v2 31/32] hw/pci-host: define some PCI hosts " Daniel P. Berrangé
2025-09-26 14:01 ` Daniel P. Berrangé [this message]
2025-10-23  7:23 ` [PATCH v2 00/32] Encode object type security status in code Markus Armbruster
2025-10-23  9:00   ` Daniel P. Berrangé
2025-10-23 12:38 ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250926140144.1998694-33-berrange@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).