This merely introduces virDomainHostdevMatchSubsysMediatedDev method that is supposed to check whether device being cold-plugged does not already exist in the domain configuration. Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> --- src/conf/domain_conf.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9663350..aa1bd68 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14192,6 +14192,24 @@ virDomainHostdevMatchSubsysSCSIiSCSI(virDomainHostdevDefPtr first, } static int +virDomainHostdevMatchSubsysMediatedDev(virDomainHostdevDefPtr first, + virDomainHostdevDefPtr second) +{ + virDomainHostdevSubsysMediatedDevPtr first_mdevsrc = + &first->source.subsys.u.mdev; + virDomainHostdevSubsysMediatedDevPtr second_mdevsrc = + &second->source.subsys.u.mdev; + + if (STREQ(first_mdevsrc->uuidstr, second_mdevsrc->uuidstr) && + first_mdevsrc->addr.domain == second_mdevsrc->addr.domain && + first_mdevsrc->addr.bus == second_mdevsrc->addr.bus && + first_mdevsrc->addr.slot == second_mdevsrc->addr.slot && + first_mdevsrc->addr.function == second_mdevsrc->addr.function) + return 1; + return 0; +} + +static int virDomainHostdevMatchSubsys(virDomainHostdevDefPtr a, virDomainHostdevDefPtr b) { @@ -14222,6 +14240,7 @@ virDomainHostdevMatchSubsys(virDomainHostdevDefPtr a, else return 0; case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: + return virDomainHostdevMatchSubsysMediatedDev(a, b); case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: return 0; } -- 2.10.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list