mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
qemu: report error when shmem has an invalid address
If user passes an invalid address for shared memory device to qemu, neither libvirt nor qemu will report an error, but qemu will auto assign a pci address to the shared memory device. Signed-off-by: Luyao Huang <lhuang@redhat.com>
This commit is contained in:
parent
2c2655744a
commit
955d9bb8d0
@ -8575,6 +8575,13 @@ qemuBuildShmemDevStr(virDomainDefPtr def,
|
||||
}
|
||||
}
|
||||
|
||||
if (shmem->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("only 'pci' addresses are supported for the "
|
||||
"shared memory device"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (qemuBuildDeviceAddressStr(&buf, def, &shmem->info, qemuCaps) < 0)
|
||||
goto error;
|
||||
|
||||
|
@ -0,0 +1,24 @@
|
||||
<domain type='qemu'>
|
||||
<name>QEMUGuest1</name>
|
||||
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
||||
<memory unit='KiB'>219136</memory>
|
||||
<currentMemory unit='KiB'>219136</currentMemory>
|
||||
<vcpu placement='static'>1</vcpu>
|
||||
<os>
|
||||
<type arch='i686' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu</emulator>
|
||||
<controller type='usb' index='0'/>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<memballoon model='none'/>
|
||||
<shmem name='shmem0'>
|
||||
<address type='isa'/>
|
||||
</shmem>
|
||||
</devices>
|
||||
</domain>
|
@ -1614,6 +1614,8 @@ mymain(void)
|
||||
DO_TEST_FAILURE("shmem", NONE);
|
||||
DO_TEST_FAILURE("shmem-invalid-size", QEMU_CAPS_PCIDEVICE,
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_IVSHMEM);
|
||||
DO_TEST_FAILURE("shmem-invalid-address", QEMU_CAPS_PCIDEVICE,
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_IVSHMEM);
|
||||
DO_TEST_FAILURE("shmem-small-size", QEMU_CAPS_PCIDEVICE,
|
||||
QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_IVSHMEM);
|
||||
DO_TEST_PARSE_ERROR("shmem-msi-only", NONE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user