[libvirt] [PATCH v2 4/4] qemu: Add check for PCI bridge placement if there are too many PCI devices

Erik Skultety eskultet at redhat.com
Fri Jan 23 13:54:37 UTC 2015


On 01/23/2015 02:38 PM, Ján Tomko wrote:

>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index a3dedbf..870771f 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -1982,6 +1982,25 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
>>              if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0)
>>                  goto cleanup;
>>          }
>> +
>> +        for (i = 0; i < def->ncontrollers; i++) {
>> +            /* check if every PCI bridge controller's ID is greater than
>> +             * the bus it is placed onto
>> +             */
>> +            virDomainControllerDefPtr cont = def->controllers[i];
>> +            int idx = cont->idx;
>> +            int bus = cont->info.addr.pci.bus;
>> +            if (cont->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI &&
>> +                cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE &&
>> +                idx <= bus) {
>> +                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>> +                               _("failed to create PCI bridge "
>> +                                 "on bus %d: too many devices with fixed "
>> +                                 "addresses"),
>> +                               bus);
>> +                goto cleanup;
>> +            }
>> +        }
>>      }
>>  
>>      if (obj && obj->privateData) {
>>
> 
> I have moved the check into if (qemuDomainSupportsPCI) and pushed the patch.
> 
> Jan
> 

Thank you.
Erik




More information about the libvir-list mailing list