[libvirt] [PATCH RESEND] qemu: Honor the original properties of PCI device when detaching
Osier Yang
jyang at redhat.com
Thu Dec 15 02:15:09 UTC 2011
On 2011年12月15日 07:01, Eric Blake wrote:
> On 11/29/2011 03:09 AM, Osier Yang wrote:
>> This patch fixes two problems:
>> 1) The device will be reattached to host even if it's not
>> managed, as there is a "pciDeviceSetManaged".
>> 2) The device won't be reattached to host with original
>> driver properly. As it doesn't honor the device original
>> properties which are maintained by driver->activePciHostdevs.
>> ---
>> src/qemu/qemu_hotplug.c | 17 +++++++++--------
>> 1 files changed, 9 insertions(+), 8 deletions(-)
>>
>> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
>> index 96c0070..19e4a41 100644
>> --- a/src/qemu/qemu_hotplug.c
>> +++ b/src/qemu/qemu_hotplug.c
>> @@ -1960,6 +1960,7 @@ int qemuDomainDetachHostPciDevice(struct qemud_driver *driver,
>> qemuDomainObjPrivatePtr priv = vm->privateData;
>> int i, ret;
>> pciDevice *pci;
>> + pciDevice *activePci;
>>
>> for (i = 0 ; i< vm->def->nhostdevs ; i++) {
>> if (vm->def->hostdevs[i]->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
>> @@ -2019,16 +2020,16 @@ int qemuDomainDetachHostPciDevice(struct qemud_driver *driver,
>> detach->source.subsys.u.pci.bus,
>> detach->source.subsys.u.pci.slot,
>> detach->source.subsys.u.pci.function);
>> - if (!pci)
>> - ret = -1;
>> - else {
>
> Yay - fixing up a HACKING formatting convention violation in the process.
>
>> - pciDeviceSetManaged(pci, detach->managed);
>> - pciDeviceListDel(driver->activePciHostdevs, pci);
>> - if (pciResetDevice(pci, driver->activePciHostdevs, NULL)< 0)
>> + if (pci) {
>> + activePci = pciDeviceListSteal(driver->activePciHostdevs, pci);
>> + if (pciResetDevice(activePci, driver->activePciHostdevs, NULL))
>> + qemuReattachPciDevice(activePci, driver);
>> + else
>> ret = -1;
>> - pciDeviceReAttachInit(pci);
>> - qemuReattachPciDevice(pci, driver);
>> pciFreeDevice(pci);
>> + pciFreeDevice(activePci);
>> + } else {
>> + ret = -1;
>> }
>
> ACK, and sorry for the delayed review response.
>
Thanks, pushed.
Regards,
Osier
More information about the libvir-list
mailing list