
On Tue, 2017-11-21 at 17:42 +0100, Andrea Bolognani wrote:
+static void +virDomainChrConsoleTargetTypeToSerial(virDomainChrConsoleTargetType type, + int *retType, int *retModel)
The last two arguments should be each on a separate line. I'd also prefer the names 'targetType' and 'targetModel'.
@@ -4014,7 +4048,9 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def, } if (def->nconsoles > 0 && def->os.type == VIR_DOMAIN_OSTYPE_HVM && (def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SERIAL || - def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE)) { + def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_NONE || + (def->consoles[0]->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP && + (parseFlags & VIR_DOMAIN_DEF_PARSE_ABI_UPDATE)))) {
VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM should be included in the check above, or <console/>s with <target type='sclplm'/> will not be converted into <serial/>s.
@@ -4027,6 +4063,8 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def,
/* create the serial port definition from the console definition */ if (def->nserials == 0) { + virDomainChrConsoleTargetType type = def->consoles[0]->targetType; + if (VIR_APPEND_ELEMENT(def->serials, def->nserials, def->consoles[0]) < 0) @@ -4034,7 +4072,9 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def,
/* modify it to be a serial port */ def->serials[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL; - def->serials[0]->targetType = VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE; + virDomainChrConsoleTargetTypeToSerial(type, + &def->serials[0]->targetType, + &def->serials[0]->targetModel);
Drop 'type' and just use 'def->consoles[0]->targetType' here. Everything else looks good, so my R-b stands. I can fix all of the above before pushing (assuming a respin won't be necessary). -- Andrea Bolognani / Red Hat / Virtualization