[libvirt] [PATCH 1/2] qemu: reserve PCI addresses for implicit i440fx devices
Ján Tomko
jtomko at redhat.com
Wed Oct 11 12:45:42 UTC 2017
On Wed, Oct 11, 2017 at 01:14:58PM +0200, Andrea Bolognani wrote:
>On Tue, 2017-09-26 at 13:05 +0200, Ján Tomko wrote:
>> @@ -1429,15 +1429,24 @@ qemuDomainValidateDevicePCISlotsPIIX3(virDomainDefPtr def,
>> cont->info.addr.pci.slot = 1;
>> cont->info.addr.pci.function = 2;
>> }
>> + } else {
>> + /* this controller is not skipped in qemuDomainCollectPCIAddress */
>> + continue;
>> }
>> + if (addrs->nbuses &&
>> + virDomainPCIAddressReserveAddr(addrs, &cont->info.addr.pci, flags, 0) < 0)
>> + goto cleanup;
>
>I think it would make more sense to reserve the address for these
>devices in qemuDomainCollectPCIAddress() directly, along with the
>other ones, eg. squash in the following diff:
>
>---------- 8< ---------- 8< ---------- 8< ---------- 8< ----------
>diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
>index f35e01e5a..ecb91c565 100644
>--- a/src/qemu/qemu_domain_address.c
>+++ b/src/qemu/qemu_domain_address.c
>@@ -1265,13 +1265,12 @@ qemuDomainCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
> _("Bus 0 must be PCI for integrated PIIX3 "
> "USB or IDE controllers"));
> return -1;
>- } else {
>- return 0;
> }
> }
> }
>
>- if (virDomainPCIAddressReserveAddr(addrs, addr,
>+ if (addrs->nbuses &&
>+ virDomainPCIAddressReserveAddr(addrs, addr,
> info->pciConnectFlags,
> info->isolationGroup) < 0) {
> goto cleanup;
>@@ -1429,13 +1428,7 @@ qemuDomainValidateDevicePCISlotsPIIX3(virDomainDefPtr def,
> cont->info.addr.pci.slot = 1;
> cont->info.addr.pci.function = 2;
> }
>- } else {
>- /* this controller is not skipped in qemuDomainCollectPCIAddress */
>- continue;
> }
>- if (addrs->nbuses &&
>- virDomainPCIAddressReserveAddr(addrs, &cont->info.addr.pci, flags, 0) < 0)
>- goto cleanup;
> }
>
> /* Implicit PIIX3 devices living on slot 1 not handled above */
>---------- >8 ---------- >8 ---------- >8 ---------- >8 ----------
>
>What do you think about it?
>
I think I cannot possibly reserve the address before setting it.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20171011/ce768847/attachment-0001.sig>
More information about the libvir-list
mailing list