diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8c62673398..32234e8a54 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3523,6 +3523,24 @@ void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info) } +static bool +virDomainSkipBackcompatConsole(virDomainDefPtr def, + size_t index, + bool all) +{ + virDomainChrDefPtr console = def->consoles[index]; + + if (!all && index == 0 && + (console->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL || + console->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE) && + def->os.type == VIR_DOMAIN_OSTYPE_HVM) { + return true; + } + + return false; +} + + static int virDomainDeviceInfoIterateInternal(virDomainDefPtr def, virDomainDeviceInfoCallback cb, @@ -3591,11 +3609,7 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr def, return -1; } for (i = 0; i < def->nconsoles; i++) { - if (!all && - i == 0 && - (def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL || - def->consoles[i]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE) && - def->os.type == VIR_DOMAIN_OSTYPE_HVM) + if (virDomainSkipBackcompatConsole(def, i, all)) continue; device.data.chr = def->consoles[i]; if (cb(def, &device, &def->consoles[i]->info, opaque) < 0) @@ -25431,6 +25445,8 @@ virDomainChrDefForeach(virDomainDefPtr def, goto done; } for (i = 0; i < def->nconsoles; i++) { + if (virDomainSkipBackcompatConsole(def, i, false)) + continue; if ((iter)(def, def->consoles[i], opaque) < 0) diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index c7a2dfe982..9504a4be34 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2323,11 +2323,6 @@ virSecuritySELinuxRestoreSecurityChardevCallback(virDomainDefPtr def, { virSecurityManagerPtr mgr = opaque; - /* This is taken care of by processing of def->serials */ - if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE && - dev->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL) - return 0; - return virSecuritySELinuxRestoreChardevLabel(mgr, def, dev, dev->source); } @@ -2717,11 +2712,6 @@ virSecuritySELinuxSetSecurityChardevCallback(virDomainDefPtr def, { virSecurityManagerPtr mgr = opaque; - /* This is taken care of by processing of def->serials */ - if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE && - dev->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL) - return 0; - return virSecuritySELinuxSetChardevLabel(mgr, def, dev, dev->source); }