[libvirt] [PATCH 0/4] qemu: hostdev: Unify naming

I was working on the QEMU hostdev code and the inconsistent naming used kept making things just that little harder for me to follow, so I unified it. Cheers. Andrea Bolognani (4): qemu: hostdev: Unify naming for qemuPrepareHost*Devices() qemu: hostdev: Unify naming for qemuDomainReAttachHost*Devices() qemu: hostdev: Unify naming for qemuUpdateActiveHost*Devices() qemu: hostdev: Introduce qemuUpdateActiveHostDevices() src/qemu/qemu_hostdev.c | 74 ++++++++++++++++++++++++++++++------------------- src/qemu/qemu_hostdev.h | 36 ++++++++++++------------ src/qemu/qemu_hotplug.c | 13 ++++----- src/qemu/qemu_process.c | 8 +----- 4 files changed, 72 insertions(+), 59 deletions(-) -- 2.4.3

No functional changes. --- src/qemu/qemu_hostdev.c | 40 ++++++++++++++++++++-------------------- src/qemu/qemu_hostdev.h | 22 +++++++++++----------- src/qemu/qemu_hotplug.c | 9 ++++----- 3 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index 706db0c..a4409d6 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -156,9 +156,9 @@ qemuHostdevHostSupportsPassthroughLegacy(void) static bool -qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, - size_t nhostdevs, - virQEMUCapsPtr qemuCaps) +qemuPrepareHostPCIDevicesCheckSupport(virDomainHostdevDefPtr *hostdevs, + size_t nhostdevs, + virQEMUCapsPtr qemuCaps) { bool supportsPassthroughKVM = qemuHostdevHostSupportsPassthroughLegacy(); bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO(); @@ -219,18 +219,18 @@ qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, } int -qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, - const char *name, - const unsigned char *uuid, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs, - virQEMUCapsPtr qemuCaps, - unsigned int flags) +qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, + const char *name, + const unsigned char *uuid, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs, + virQEMUCapsPtr qemuCaps, + unsigned int flags) { int ret = -1; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr; - if (!qemuPrepareHostdevPCICheckSupport(hostdevs, nhostdevs, qemuCaps)) + if (!qemuPrepareHostPCIDevicesCheckSupport(hostdevs, nhostdevs, qemuCaps)) goto out; ret = virHostdevPreparePCIDevices(hostdev_mgr, QEMU_DRIVER_NAME, @@ -254,10 +254,10 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver, } int -qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver, - const char *name, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs) +qemuPrepareHostSCSIDevices(virQEMUDriverPtr driver, + const char *name, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs) { size_t i; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr; @@ -292,17 +292,17 @@ qemuPrepareHostDevices(virQEMUDriverPtr driver, if (!def->nhostdevs) return 0; - if (qemuPrepareHostdevPCIDevices(driver, def->name, def->uuid, - def->hostdevs, def->nhostdevs, - qemuCaps, flags) < 0) + if (qemuPrepareHostPCIDevices(driver, def->name, def->uuid, + def->hostdevs, def->nhostdevs, + qemuCaps, flags) < 0) return -1; if (qemuPrepareHostUSBDevices(driver, def->name, def->hostdevs, def->nhostdevs, flags) < 0) return -1; - if (qemuPrepareHostdevSCSIDevices(driver, def->name, - def->hostdevs, def->nhostdevs) < 0) + if (qemuPrepareHostSCSIDevices(driver, def->name, + def->hostdevs, def->nhostdevs) < 0) return -1; return 0; diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h index 05bd965..af53095 100644 --- a/src/qemu/qemu_hostdev.h +++ b/src/qemu/qemu_hostdev.h @@ -35,23 +35,23 @@ int qemuUpdateActiveSCSIHostdevs(virQEMUDriverPtr driver, virDomainDefPtr def); bool qemuHostdevHostSupportsPassthroughLegacy(void); bool qemuHostdevHostSupportsPassthroughVFIO(void); -int qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, - const char *name, - const unsigned char *uuid, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs, - virQEMUCapsPtr qemuCaps, - unsigned int flags); +int qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, + const char *name, + const unsigned char *uuid, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs, + virQEMUCapsPtr qemuCaps, + unsigned int flags); int qemuPrepareHostUSBDevices(virQEMUDriverPtr driver, const char *name, virDomainHostdevDefPtr *hostdevs, int nhostdevs, unsigned int flags); -int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver, - const char *name, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs); +int qemuPrepareHostSCSIDevices(virQEMUDriverPtr driver, + const char *name, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs); int qemuPrepareHostDevices(virQEMUDriverPtr driver, virDomainDefPtr def, virQEMUCapsPtr qemuCaps, diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index afc5408..7083abf 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1263,11 +1263,11 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, if (!cfg->relaxedACS) flags |= VIR_HOSTDEV_STRICT_ACS_CHECK; - if (qemuPrepareHostdevPCIDevices(driver, vm->def->name, vm->def->uuid, - &hostdev, 1, priv->qemuCaps, flags) < 0) + if (qemuPrepareHostPCIDevices(driver, vm->def->name, vm->def->uuid, + &hostdev, 1, priv->qemuCaps, flags) < 0) goto cleanup; - /* this could have been changed by qemuPrepareHostdevPCIDevices */ + /* this could have been changed by qemuPrepareHostPCIDevices */ backend = hostdev->source.subsys.u.pci.backend; switch ((virDomainHostdevSubsysPCIBackendType) backend) { @@ -1968,8 +1968,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, if (!cont) return -1; - if (qemuPrepareHostdevSCSIDevices(driver, vm->def->name, - &hostdev, 1)) { + if (qemuPrepareHostSCSIDevices(driver, vm->def->name, &hostdev, 1)) { virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi; if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) { virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc = &scsisrc->u.iscsi; -- 2.4.3

On 10/20/2015 11:20 AM, Andrea Bolognani wrote:
No functional changes. --- src/qemu/qemu_hostdev.c | 40 ++++++++++++++++++++-------------------- src/qemu/qemu_hostdev.h | 22 +++++++++++----------- src/qemu/qemu_hotplug.c | 9 ++++----- 3 files changed, 35 insertions(+), 36 deletions(-)
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index 706db0c..a4409d6 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -156,9 +156,9 @@ qemuHostdevHostSupportsPassthroughLegacy(void)
static bool -qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, - size_t nhostdevs, - virQEMUCapsPtr qemuCaps) +qemuPrepareHostPCIDevicesCheckSupport(virDomainHostdevDefPtr *hostdevs, + size_t nhostdevs, + virQEMUCapsPtr qemuCaps) { bool supportsPassthroughKVM = qemuHostdevHostSupportsPassthroughLegacy(); bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO(); @@ -219,18 +219,18 @@ qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, }
int -qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, - const char *name, - const unsigned char *uuid, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs, - virQEMUCapsPtr qemuCaps, - unsigned int flags) +qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, + const char *name, + const unsigned char *uuid, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs, + virQEMUCapsPtr qemuCaps, + unsigned int flags) { int ret = -1; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
- if (!qemuPrepareHostdevPCICheckSupport(hostdevs, nhostdevs, qemuCaps)) + if (!qemuPrepareHostPCIDevicesCheckSupport(hostdevs, nhostdevs, qemuCaps)) goto out;
ret = virHostdevPreparePCIDevices(hostdev_mgr, QEMU_DRIVER_NAME,
Typically when searching I can change the "virDomainFoo" type string to a "qemuDomainFoo" string and find the qemu API. Here those you'll see there's a virHostDevPreparePCIDevices(), so in a way I'd expect a qemuHostdevPreparePCIDevices Since is a "qemu_hostdev.{c,h}" type change, then theoretically all the API's in here should be qemuHostdevFoo, right? Rather than qemuPrepareFoo, qemuUpdateFoo, and qemuDomainReAttachFoo It'd be qemuHostdevPrepare, qemuHostdevUpdate, and qemuHostdevReAttach and your new API would be qemuHostdevUpdateActiveDevices John
@@ -254,10 +254,10 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver, }
int -qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver, - const char *name, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs) +qemuPrepareHostSCSIDevices(virQEMUDriverPtr driver, + const char *name, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs) { size_t i; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr; @@ -292,17 +292,17 @@ qemuPrepareHostDevices(virQEMUDriverPtr driver, if (!def->nhostdevs) return 0;
- if (qemuPrepareHostdevPCIDevices(driver, def->name, def->uuid, - def->hostdevs, def->nhostdevs, - qemuCaps, flags) < 0) + if (qemuPrepareHostPCIDevices(driver, def->name, def->uuid, + def->hostdevs, def->nhostdevs, + qemuCaps, flags) < 0) return -1;
if (qemuPrepareHostUSBDevices(driver, def->name, def->hostdevs, def->nhostdevs, flags) < 0) return -1;
- if (qemuPrepareHostdevSCSIDevices(driver, def->name, - def->hostdevs, def->nhostdevs) < 0) + if (qemuPrepareHostSCSIDevices(driver, def->name, + def->hostdevs, def->nhostdevs) < 0) return -1;
return 0; diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h index 05bd965..af53095 100644 --- a/src/qemu/qemu_hostdev.h +++ b/src/qemu/qemu_hostdev.h @@ -35,23 +35,23 @@ int qemuUpdateActiveSCSIHostdevs(virQEMUDriverPtr driver, virDomainDefPtr def); bool qemuHostdevHostSupportsPassthroughLegacy(void); bool qemuHostdevHostSupportsPassthroughVFIO(void); -int qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, - const char *name, - const unsigned char *uuid, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs, - virQEMUCapsPtr qemuCaps, - unsigned int flags); +int qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, + const char *name, + const unsigned char *uuid, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs, + virQEMUCapsPtr qemuCaps, + unsigned int flags); int qemuPrepareHostUSBDevices(virQEMUDriverPtr driver, const char *name, virDomainHostdevDefPtr *hostdevs, int nhostdevs, unsigned int flags); -int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver, - const char *name, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs); +int qemuPrepareHostSCSIDevices(virQEMUDriverPtr driver, + const char *name, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs); int qemuPrepareHostDevices(virQEMUDriverPtr driver, virDomainDefPtr def, virQEMUCapsPtr qemuCaps, diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index afc5408..7083abf 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1263,11 +1263,11 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver,
if (!cfg->relaxedACS) flags |= VIR_HOSTDEV_STRICT_ACS_CHECK; - if (qemuPrepareHostdevPCIDevices(driver, vm->def->name, vm->def->uuid, - &hostdev, 1, priv->qemuCaps, flags) < 0) + if (qemuPrepareHostPCIDevices(driver, vm->def->name, vm->def->uuid, + &hostdev, 1, priv->qemuCaps, flags) < 0) goto cleanup;
- /* this could have been changed by qemuPrepareHostdevPCIDevices */ + /* this could have been changed by qemuPrepareHostPCIDevices */ backend = hostdev->source.subsys.u.pci.backend;
switch ((virDomainHostdevSubsysPCIBackendType) backend) { @@ -1968,8 +1968,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, if (!cont) return -1;
- if (qemuPrepareHostdevSCSIDevices(driver, vm->def->name, - &hostdev, 1)) { + if (qemuPrepareHostSCSIDevices(driver, vm->def->name, &hostdev, 1)) { virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi; if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) { virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc = &scsisrc->u.iscsi;

On 10/21/2015 06:44 PM, John Ferlan wrote:
No functional changes. --- src/qemu/qemu_hostdev.c | 40 ++++++++++++++++++++-------------------- src/qemu/qemu_hostdev.h | 22 +++++++++++----------- src/qemu/qemu_hotplug.c | 9 ++++----- 3 files changed, 35 insertions(+), 36 deletions(-)
diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index 706db0c..a4409d6 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -156,9 +156,9 @@ qemuHostdevHostSupportsPassthroughLegacy(void)
static bool -qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, - size_t nhostdevs, - virQEMUCapsPtr qemuCaps) +qemuPrepareHostPCIDevicesCheckSupport(virDomainHostdevDefPtr *hostdevs, + size_t nhostdevs, + virQEMUCapsPtr qemuCaps) { bool supportsPassthroughKVM = qemuHostdevHostSupportsPassthroughLegacy(); bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO(); @@ -219,18 +219,18 @@ qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs, }
int -qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver, - const char *name, - const unsigned char *uuid, - virDomainHostdevDefPtr *hostdevs, - int nhostdevs, - virQEMUCapsPtr qemuCaps, - unsigned int flags) +qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, + const char *name, + const unsigned char *uuid, + virDomainHostdevDefPtr *hostdevs, + int nhostdevs, + virQEMUCapsPtr qemuCaps, + unsigned int flags) { int ret = -1; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
- if (!qemuPrepareHostdevPCICheckSupport(hostdevs, nhostdevs, qemuCaps)) + if (!qemuPrepareHostPCIDevicesCheckSupport(hostdevs, nhostdevs, qemuCaps)) goto out;
ret = virHostdevPreparePCIDevices(hostdev_mgr, QEMU_DRIVER_NAME, Typically when searching I can change the "virDomainFoo" type string to a "qemuDomainFoo" string and find the qemu API. Here those you'll see
On 10/20/2015 11:20 AM, Andrea Bolognani wrote: there's a virHostDevPreparePCIDevices(), so in a way I'd expect a qemuHostdevPreparePCIDevices
Since is a "qemu_hostdev.{c,h}" type change, then theoretically all the API's in here should be qemuHostdevFoo, right?
Rather than qemuPrepareFoo, qemuUpdateFoo, and qemuDomainReAttachFoo It'd be qemuHostdevPrepare, qemuHostdevUpdate, and qemuHostdevReAttach
and your new API would be qemuHostdevUpdateActiveDevices
I had a similar reply queued up, but got interrupted by dinner: You've changes all Hostdev into Host, but in all of these cases they really are <hostdev> devices, so I think the function name is clearer if it has Hostdev in it rather than Host. Also, if we're going to normalize the names, it might be better to try and fit in with the naming convention that we've tried to start using in other places - virModuleNameModifierAction or virModuleNameActionModifier (or in the case of functions in the qemu directory qemuModuleNameModifierAction() or qemuModuleNameActionModifier()), for example virNetdevMacVLanCreate(). So instead of qemuPrepareHostdevPCIDevices() it could maybe be qemuHostdevPCIPrepareDevices(), qemuHostdevUSBPrepareDevices() and qemuHostdevSCSIPrepareDevices() (or maybe qemuHostdev*DevicesPrepare(), depending on how anal you want to be about putting the verb at the end)

On Wed, 2015-10-21 at 20:40 -0400, Laine Stump wrote:
On 10/21/2015 06:44 PM, John Ferlan wrote:
Typically when searching I can change the "virDomainFoo" type string to a "qemuDomainFoo" string and find the qemu API. Here those you'll see there's a virHostDevPreparePCIDevices(), so in a way I'd expect a qemuHostdevPreparePCIDevices
Since is a "qemu_hostdev.{c,h}" type change, then theoretically all the API's in here should be qemuHostdevFoo, right?
Rather than qemuPrepareFoo, qemuUpdateFoo, and qemuDomainReAttachFoo It'd be qemuHostdevPrepare, qemuHostdevUpdate, and qemuHostdevReAttach
and your new API would be qemuHostdevUpdateActiveDevices
I had a similar reply queued up, but got interrupted by dinner:
You've changes all Hostdev into Host, but in all of these cases they really are <hostdev> devices, so I think the function name is clearer if it has Hostdev in it rather than Host.
Also, if we're going to normalize the names, it might be better to try and fit in with the naming convention that we've tried to start using in other places - virModuleNameModifierAction or virModuleNameActionModifier (or in the case of functions in the qemu directory qemuModuleNameModifierAction() or qemuModuleNameActionModifier()), for example virNetdevMacVLanCreate(). So instead of qemuPrepareHostdevPCIDevices() it could maybe be qemuHostdevPCIPrepareDevices(), qemuHostdevUSBPrepareDevices() and qemuHostdevSCSIPrepareDevices() (or maybe qemuHostdev*DevicesPrepare(), depending on how anal you want to be about putting the verb at the end)
I went with the smallest change possible to achieve some sort of internal consistency, but I agree that being consistent with the rest of the code is even better. John's use case is very compelling IMHO, plus personally something like qemuHostdevPreparePCIDevices() feels way more natural than qemuHostdevPCIPrepareDevices() so I'd go with his suggestion if that's okay with you. Cheers. -- Andrea Bolognani Software Engineer - Virtualization Team

On Thu, 2015-10-22 at 11:19 +0200, Andrea Bolognani wrote:
John's use case is very compelling IMHO, plus personally something like
qemuHostdevPreparePCIDevices()
feels way more natural than
qemuHostdevPCIPrepareDevices()
so I'd go with his suggestion if that's okay with you.
Given the lack of negative feedback, I've gone ahead and posted a v2 addressing John's complaints. https://www.redhat.com/archives/libvir-list/2015-October/msg00731.html Cheers. -- Andrea Bolognani Software Engineer - Virtualization Team

No functional changes. --- src/qemu/qemu_hostdev.c | 4 ++-- src/qemu/qemu_hostdev.h | 2 +- src/qemu/qemu_hotplug.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index a4409d6..ec708c8 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -309,7 +309,7 @@ qemuPrepareHostDevices(virQEMUDriverPtr driver, } void -qemuDomainReAttachHostdevDevices(virQEMUDriverPtr driver, +qemuDomainReAttachHostPCIDevices(virQEMUDriverPtr driver, const char *name, virDomainHostdevDefPtr *hostdevs, int nhostdevs) @@ -366,7 +366,7 @@ qemuDomainReAttachHostDevices(virQEMUDriverPtr driver, if (!def->nhostdevs) return; - qemuDomainReAttachHostdevDevices(driver, def->name, def->hostdevs, + qemuDomainReAttachHostPCIDevices(driver, def->name, def->hostdevs, def->nhostdevs); qemuDomainReAttachHostUSBDevices(driver, def->name, def->hostdevs, diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h index af53095..156ffdd 100644 --- a/src/qemu/qemu_hostdev.h +++ b/src/qemu/qemu_hostdev.h @@ -65,7 +65,7 @@ void qemuDomainReAttachHostSCSIDevices(virQEMUDriverPtr driver, const char *name, virDomainHostdevDefPtr *hostdevs, int nhostdevs); -void qemuDomainReAttachHostdevDevices(virQEMUDriverPtr driver, +void qemuDomainReAttachHostPCIDevices(virQEMUDriverPtr driver, const char *name, virDomainHostdevDefPtr *hostdevs, int nhostdevs); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7083abf..aea6019 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1383,7 +1383,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, if (releaseaddr) qemuDomainReleaseDeviceAddress(vm, hostdev->info, NULL); - qemuDomainReAttachHostdevDevices(driver, vm->def->name, &hostdev, 1); + qemuDomainReAttachHostPCIDevices(driver, vm->def->name, &hostdev, 1); VIR_FREE(devstr); VIR_FREE(configfd_name); @@ -2968,7 +2968,7 @@ qemuDomainRemovePCIHostDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { - qemuDomainReAttachHostdevDevices(driver, vm->def->name, &hostdev, 1); + qemuDomainReAttachHostPCIDevices(driver, vm->def->name, &hostdev, 1); qemuDomainReleaseDeviceAddress(vm, hostdev->info, NULL); } -- 2.4.3

No functional changes. --- src/qemu/qemu_hostdev.c | 12 ++++++------ src/qemu/qemu_hostdev.h | 12 ++++++------ src/qemu/qemu_process.c | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index ec708c8..d395271 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -45,8 +45,8 @@ VIR_LOG_INIT("qemu.qemu_hostdev"); int -qemuUpdateActivePCIHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def) +qemuUpdateActiveHostPCIDevices(virQEMUDriverPtr driver, + virDomainDefPtr def) { virHostdevManagerPtr mgr = driver->hostdevMgr; @@ -58,8 +58,8 @@ qemuUpdateActivePCIHostdevs(virQEMUDriverPtr driver, } int -qemuUpdateActiveUSBHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def) +qemuUpdateActiveHostUSBDevices(virQEMUDriverPtr driver, + virDomainDefPtr def) { virHostdevManagerPtr mgr = driver->hostdevMgr; @@ -71,8 +71,8 @@ qemuUpdateActiveUSBHostdevs(virQEMUDriverPtr driver, } int -qemuUpdateActiveSCSIHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def) +qemuUpdateActiveHostSCSIDevices(virQEMUDriverPtr driver, + virDomainDefPtr def) { virHostdevManagerPtr mgr = driver->hostdevMgr; diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h index 156ffdd..3565a44 100644 --- a/src/qemu/qemu_hostdev.h +++ b/src/qemu/qemu_hostdev.h @@ -27,12 +27,12 @@ # include "qemu_conf.h" # include "domain_conf.h" -int qemuUpdateActivePCIHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def); -int qemuUpdateActiveUSBHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def); -int qemuUpdateActiveSCSIHostdevs(virQEMUDriverPtr driver, - virDomainDefPtr def); +int qemuUpdateActiveHostPCIDevices(virQEMUDriverPtr driver, + virDomainDefPtr def); +int qemuUpdateActiveHostUSBDevices(virQEMUDriverPtr driver, + virDomainDefPtr def); +int qemuUpdateActiveHostSCSIDevices(virQEMUDriverPtr driver, + virDomainDefPtr def); bool qemuHostdevHostSupportsPassthroughLegacy(void); bool qemuHostdevHostSupportsPassthroughVFIO(void); int qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 07e41f0..899f634 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3769,13 +3769,13 @@ qemuProcessReconnect(void *opaque) priv->agentError = true; } - if (qemuUpdateActivePCIHostdevs(driver, obj->def) < 0) + if (qemuUpdateActiveHostPCIDevices(driver, obj->def) < 0) goto error; - if (qemuUpdateActiveUSBHostdevs(driver, obj->def) < 0) + if (qemuUpdateActiveHostUSBDevices(driver, obj->def) < 0) goto error; - if (qemuUpdateActiveSCSIHostdevs(driver, obj->def) < 0) + if (qemuUpdateActiveHostSCSIDevices(driver, obj->def) < 0) goto error; if (qemuConnectCgroup(driver, obj) < 0) -- 2.4.3

This calls the PCI-, USB- and SCSI-specific functions just like qemuPrepareHostDevices() and qemuDomainReAttachHostDevices() already do. Update qemuProcessReconnect() to use the new function. --- src/qemu/qemu_hostdev.c | 18 ++++++++++++++++++ src/qemu/qemu_hostdev.h | 2 ++ src/qemu/qemu_process.c | 8 +------- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c index d395271..fad5975 100644 --- a/src/qemu/qemu_hostdev.c +++ b/src/qemu/qemu_hostdev.c @@ -83,6 +83,24 @@ qemuUpdateActiveHostSCSIDevices(virQEMUDriverPtr driver, QEMU_DRIVER_NAME, def->name); } +int +qemuUpdateActiveHostDevices(virQEMUDriverPtr driver, + virDomainDefPtr def) +{ + if (!def->nhostdevs) + return 0; + + if (qemuUpdateActiveHostPCIDevices(driver, def) < 0) + return -1; + + if (qemuUpdateActiveHostUSBDevices(driver, def) < 0) + return -1; + + if (qemuUpdateActiveHostSCSIDevices(driver, def) < 0) + return -1; + + return 0; +} bool qemuHostdevHostSupportsPassthroughVFIO(void) diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h index 3565a44..e6a19ff 100644 --- a/src/qemu/qemu_hostdev.h +++ b/src/qemu/qemu_hostdev.h @@ -33,6 +33,8 @@ int qemuUpdateActiveHostUSBDevices(virQEMUDriverPtr driver, virDomainDefPtr def); int qemuUpdateActiveHostSCSIDevices(virQEMUDriverPtr driver, virDomainDefPtr def); +int qemuUpdateActiveHostDevices(virQEMUDriverPtr driver, + virDomainDefPtr def); bool qemuHostdevHostSupportsPassthroughLegacy(void); bool qemuHostdevHostSupportsPassthroughVFIO(void); int qemuPrepareHostPCIDevices(virQEMUDriverPtr driver, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 899f634..1eb1362 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3769,13 +3769,7 @@ qemuProcessReconnect(void *opaque) priv->agentError = true; } - if (qemuUpdateActiveHostPCIDevices(driver, obj->def) < 0) - goto error; - - if (qemuUpdateActiveHostUSBDevices(driver, obj->def) < 0) - goto error; - - if (qemuUpdateActiveHostSCSIDevices(driver, obj->def) < 0) + if (qemuUpdateActiveHostDevices(driver, obj->def) < 0) goto error; if (qemuConnectCgroup(driver, obj) < 0) -- 2.4.3
participants (3)
-
Andrea Bolognani
-
John Ferlan
-
Laine Stump