• L
    qemu: use virDomainPCIAddressSetAllMulti() to set multi when needed · 8f400871
    Laine Stump 提交于
    If there are multiple devices assigned to the different functions of a
    single PCI slot, they will not work properly if the device at function
    0 doesn't have its "multi" attribute turned on, so it makes sense for
    libvirt to turn it on during PCI address assignment. Setting multi
    then assures that the new setting is stored in the config (so it will
    be used next time the domain is started), preventing any potential
    problems in the case that a future change in the configuration
    eliminates the devices on all non-0 functions (multi will still be set
    for function 0 even though it is the only function in use on the slot,
    which has no useful purpose, but also doesn't cause any problems).
    
    (NB: If we were to instead just decide on the setting for
    multifunction at runtime, a later removal of the non-0 functions of a
    slot would result in a silent change in the guest ABI for the
    remaining device on function 0 (although it may seem like an
    inconsequential guest ABI change, it *is* a guest ABI change to turn
    off the multi bit).)
    8f400871
qemuxml2xmltest.c 38.6 KB