qemu: Report supported panic device models in domcapabilities

Domain capabilities include information about support for various
devices and models.

Panic devices are not included in the output which means that management
applications need to include the logic for choosing the right device
model or request a default model and try defining such a domain.

Add reporting of panic device models into the domain capabilities based
on the logic in qemuValidateDomainDefPanic() and also report whether
panic devices are supported based on whether at least one model is
supported.  That way consumers of the domain capability XML can
differentiate between libvirt not reporting the panic device models or
no model being supported.

Resolves: https://issues.redhat.com/browse/RHEL-65187
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Martin Kletzander 2024-11-01 10:25:49 +01:00
parent 5d9b886a4e
commit a52cd504b3
77 changed files with 502 additions and 0 deletions

View File

@ -671,6 +671,30 @@ Interface device corresponds to `network interface
``backendType``
Options for the ``type`` attribute of the ``<backend/>`` element
Panic device
^^^^^^^^^^^^
Interface device corresponds to `panic device
<formatdomain.html#panic-device>`__ (``<panic/>``) in domain XML.
::
<domainCapabilities>
...
<devices>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
</enum>
</panic>
...
</devices>
</domainCapabilities>
``model``
Options for the ``model`` attribute of the ``<panic/>`` element
Features
~~~~~~~~

View File

@ -669,6 +669,18 @@ virDomainCapsDeviceNetFormat(virBuffer *buf,
}
static void
virDomainCapsDevicePanicFormat(virBuffer *buf,
const virDomainCapsDevicePanic *panic)
{
FORMAT_PROLOGUE(panic);
ENUM_PROCESS(panic, model, virDomainPanicModelTypeToString);
FORMAT_EPILOGUE(panic);
}
/**
* virDomainCapsFeatureGICFormat:
* @buf: target buffer
@ -850,6 +862,7 @@ virDomainCapsFormat(const virDomainCaps *caps)
virDomainCapsDeviceChannelFormat(&buf, &caps->channel);
virDomainCapsDeviceCryptoFormat(&buf, &caps->crypto);
virDomainCapsDeviceNetFormat(&buf, &caps->net);
virDomainCapsDevicePanicFormat(&buf, &caps->panic);
virBufferAdjustIndent(&buf, -2);
virBufferAddLit(&buf, "</devices>\n");

View File

@ -257,6 +257,13 @@ struct _virDomainCapsDeviceNet {
virDomainCapsEnum backendType; /* virDomainNetBackendType */
};
STATIC_ASSERT_ENUM(VIR_DOMAIN_PANIC_MODEL_LAST);
typedef struct _virDomainCapsDevicePanic virDomainCapsDevicePanic;
struct _virDomainCapsDevicePanic {
virTristateBool supported;
virDomainCapsEnum model; /* virDomainPanicModel */
};
typedef enum {
VIR_DOMAIN_CAPS_FEATURE_IOTHREADS = 0,
VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO,
@ -295,6 +302,7 @@ struct _virDomainCaps {
virDomainCapsDeviceChannel channel;
virDomainCapsDeviceCrypto crypto;
virDomainCapsDeviceNet net;
virDomainCapsDevicePanic panic;
/* add new domain devices here */
virDomainCapsFeatureGIC gic;

View File

@ -6639,6 +6639,35 @@ virQEMUCapsFillDomainDeviceNetCaps(virQEMUCaps *qemuCaps,
}
void
virQEMUCapsFillDomainDevicePanicCaps(virQEMUCaps *qemuCaps,
const char *machine,
virDomainCapsDevicePanic *panic)
{
panic->model.report = true;
if (ARCH_IS_S390(qemuCaps->arch))
VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_S390);
if (ARCH_IS_X86(qemuCaps->arch))
VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_HYPERV);
if (qemuDomainMachineIsPSeries(machine, qemuCaps->arch))
VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_PSERIES);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC))
VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_ISA);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC_PCI))
VIR_DOMAIN_CAPS_ENUM_SET(panic->model, VIR_DOMAIN_PANIC_MODEL_PVPANIC);
if (panic->model.values)
panic->supported = VIR_TRISTATE_BOOL_YES;
else
panic->supported = VIR_TRISTATE_BOOL_NO;
}
/**
* virQEMUCapsSupportsGICVersion:
* @qemuCaps: QEMU capabilities
@ -6817,6 +6846,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceCrypto *crypto = &domCaps->crypto;
virDomainCapsLaunchSecurity *launchSecurity = &domCaps->launchSecurity;
virDomainCapsDeviceNet *net = &domCaps->net;
virDomainCapsDevicePanic *panic = &domCaps->panic;
virQEMUCapsFillDomainFeaturesFromQEMUCaps(qemuCaps, domCaps);
@ -6859,6 +6889,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virQEMUCapsFillDomainDeviceCryptoCaps(qemuCaps, crypto);
virQEMUCapsFillDomainLaunchSecurity(qemuCaps, launchSecurity);
virQEMUCapsFillDomainDeviceNetCaps(qemuCaps, net);
virQEMUCapsFillDomainDevicePanicCaps(qemuCaps, domCaps->machine, panic);
return 0;
}

View File

@ -892,6 +892,10 @@ void virQEMUCapsFillDomainLaunchSecurity(virQEMUCaps *qemuCaps,
void virQEMUCapsFillDomainDeviceNetCaps(virQEMUCaps *qemuCaps,
virDomainCapsDeviceNet *net);
void virQEMUCapsFillDomainDevicePanicCaps(virQEMUCaps *qemuCaps,
const char *machine,
virDomainCapsDevicePanic *panic);
bool virQEMUCapsGuestIsNative(virArch host,
virArch guest);

View File

@ -536,6 +536,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -146,6 +146,7 @@
<value>default</value>
</enum>
</interface>
<panic supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -804,6 +804,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -200,6 +200,7 @@
<value>default</value>
</enum>
</interface>
<panic supported='no'/>
</devices>
<features>
<gic supported='yes'>

View File

@ -149,6 +149,7 @@
<value>default</value>
</enum>
</interface>
<panic supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -200,6 +200,7 @@
<value>default</value>
</enum>
</interface>
<panic supported='no'/>
</devices>
<features>
<gic supported='yes'>

View File

@ -166,6 +166,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pseries</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -266,6 +266,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>s390</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -536,6 +536,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -546,6 +546,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -837,6 +837,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -202,6 +202,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -202,6 +202,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -267,6 +267,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>s390</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -546,6 +546,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -548,6 +548,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -838,6 +838,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -548,6 +548,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -547,6 +547,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -838,6 +838,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -209,6 +209,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -209,6 +209,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -165,6 +165,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pseries</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -547,6 +547,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -167,6 +167,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -548,6 +548,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -832,6 +832,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -208,6 +208,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -208,6 +208,11 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -170,6 +170,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pseries</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -548,6 +548,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -515,6 +515,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -780,6 +780,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -163,6 +163,12 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pseries</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -515,6 +515,13 @@
<value>default</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -175,6 +175,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -522,6 +522,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -663,6 +663,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -663,6 +663,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -150,6 +150,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -522,6 +522,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -563,6 +563,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -153,6 +153,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -714,6 +714,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -156,6 +156,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -563,6 +563,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -648,6 +648,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -723,6 +723,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -417,6 +417,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>s390</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -648,6 +648,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -650,6 +650,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -157,6 +157,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -715,6 +715,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -215,6 +215,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -161,6 +161,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -215,6 +215,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='yes'>

View File

@ -167,6 +167,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -417,6 +417,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>s390</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -650,6 +650,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -650,6 +650,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -691,6 +691,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -129,6 +129,7 @@
<value>passt</value>
</enum>
</interface>
<panic supported='no'/>
</devices>
<features>
<gic supported='no'/>

View File

@ -650,6 +650,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -681,6 +681,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -180,6 +180,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -710,6 +710,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -169,6 +169,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -285,6 +285,11 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>s390</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -681,6 +681,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -681,6 +681,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -710,6 +710,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>

View File

@ -681,6 +681,13 @@
<value>passt</value>
</enum>
</interface>
<panic supported='yes'>
<enum name='model'>
<value>isa</value>
<value>hyperv</value>
<value>pvpanic</value>
</enum>
</panic>
</devices>
<features>
<gic supported='no'/>