[libvirt] [PATCH] add a new API pciDeviceReAttachInit() in pci.c to initialize state values for nodedev reattach
Wen Congyang
wency at cn.fujitsu.com
Mon Jul 4 02:14:37 UTC 2011
At 07/03/2011 08:09 PM, Guannan Ren Write:
> Initilize three state value of device driver to 1. This is just for a new call to
> qemudNodeDeviceReAttach()
>
> ---
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_driver.c | 2 ++
> src/util/pci.c | 8 ++++++++
> src/util/pci.h | 1 +
> 4 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 626ac6c..062dcff 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -807,6 +807,7 @@ pciGetDevice;
> pciReAttachDevice;
> pciResetDevice;
> pciWaitForDeviceCleanup;
> +pciDeviceReAttachInit;
>
>
> # processinfo.h
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 363a361..56ccf44 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -7193,6 +7193,8 @@ qemudNodeDeviceReAttach (virNodeDevicePtr dev)
> if (!pci)
> return -1;
>
> + pciDeviceReAttachInit(pci);
> +
> qemuDriverLock(driver);
> if (pciReAttachDevice(pci, driver->activePciHostdevs) < 0)
> goto out;
> diff --git a/src/util/pci.c b/src/util/pci.c
> index 21c12b9..e3f978c 100644
> --- a/src/util/pci.c
> +++ b/src/util/pci.c
> @@ -1382,6 +1382,14 @@ unsigned pciDeviceGetManaged(pciDevice *dev)
> return dev->managed;
> }
>
> +void pciDeviceReAttachInit(pciDevice *pci)
> +{
> + pci->unbind_from_stub = 1;
> + pci->remove_slot = 1;
> + pci->reprobe = 1;
> +}
> +
> +
> pciDeviceList *
> pciDeviceListNew(void)
> {
> diff --git a/src/util/pci.h b/src/util/pci.h
> index b767930..a351baf 100644
> --- a/src/util/pci.h
> +++ b/src/util/pci.h
> @@ -40,6 +40,7 @@ int pciResetDevice (pciDevice *dev,
> void pciDeviceSetManaged(pciDevice *dev,
> unsigned managed);
> unsigned pciDeviceGetManaged(pciDevice *dev);
> +void pciDeviceReAttachInit(pciDevice *dev);
>
> pciDeviceList *pciDeviceListNew (void);
> void pciDeviceListFree (pciDeviceList *list);
This patch works for me.
ACK
More information about the libvir-list
mailing list