[libvirt] [PATCH 3/8] Reset unmanaged PCI host devices before hotplug
Daniel P. Berrange
berrange at redhat.com
Mon Aug 17 19:03:48 UTC 2009
On Mon, Aug 17, 2009 at 03:10:16PM +0100, Mark McLoughlin wrote:
> Right now we're only resetting managed devices before hotplug, but we
> should reset them irrespective of whether they are managed.
>
> * src/qemu_driver.c: reset all PCI hostdevs before hotplug
> ---
> src/qemu_driver.c | 27 +++++++++++++--------------
> 1 files changed, 13 insertions(+), 14 deletions(-)
>
> diff --git a/src/qemu_driver.c b/src/qemu_driver.c
> index a638c10..06bbf2a 100644
> --- a/src/qemu_driver.c
> +++ b/src/qemu_driver.c
> @@ -5310,30 +5310,29 @@ static int qemudDomainAttachHostPciDevice(virConnectPtr conn,
> virDomainHostdevDefPtr hostdev = dev->data.hostdev;
> char *cmd, *reply;
> unsigned domain, bus, slot;
> + pciDevice *pci;
>
> if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) {
> virReportOOMError(conn);
> return -1;
> }
>
> - if (hostdev->managed) {
> - pciDevice *pci = pciGetDevice(conn,
> - hostdev->source.subsys.u.pci.domain,
> - hostdev->source.subsys.u.pci.bus,
> - hostdev->source.subsys.u.pci.slot,
> - hostdev->source.subsys.u.pci.function);
> - if (!dev)
> - return -1;
> -
> - if (pciDettachDevice(conn, pci) < 0 ||
> - pciResetDevice(conn, pci) < 0) {
> - pciFreeDevice(conn, pci);
> - return -1;
> - }
> + pci = pciGetDevice(conn,
> + hostdev->source.subsys.u.pci.domain,
> + hostdev->source.subsys.u.pci.bus,
> + hostdev->source.subsys.u.pci.slot,
> + hostdev->source.subsys.u.pci.function);
> + if (!dev)
> + return -1;
>
> + if ((hostdev->managed && pciDettachDevice(conn, pci) < 0) ||
> + pciResetDevice(conn, pci) < 0) {
> pciFreeDevice(conn, pci);
> + return -1;
> }
>
> + pciFreeDevice(conn, pci);
> +
> if (virAsprintf(&cmd, "pci_add auto host host=%.2x:%.2x.%.1x",
> hostdev->source.subsys.u.pci.bus,
> hostdev->source.subsys.u.pci.slot,
ACk
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list