mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 23:25:24 +00:00
domain: Fix PCI address decimal parsing regression
<hostdev> address parsing previously attempted to detect the number base: currently it is hardcoded to base 16, which can break PCI assignment via virt-manager. Revert to the previous behavior. * src/conf/domain_conf.c: virDomainDevicePCIAddressParseXML, switch to virStrToLong_ui(bus, NULL, 0, ...) to autodetect base
This commit is contained in:
parent
34dcbbb470
commit
e984019688
@ -1079,28 +1079,28 @@ virDomainDevicePCIAddressParseXML(xmlNodePtr node,
|
|||||||
function = virXMLPropString(node, "function");
|
function = virXMLPropString(node, "function");
|
||||||
|
|
||||||
if (domain &&
|
if (domain &&
|
||||||
virStrToLong_ui(domain, NULL, 16, &addr->domain) < 0) {
|
virStrToLong_ui(domain, NULL, 0, &addr->domain) < 0) {
|
||||||
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Cannot parse <address> 'domain' attribute"));
|
_("Cannot parse <address> 'domain' attribute"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bus &&
|
if (bus &&
|
||||||
virStrToLong_ui(bus, NULL, 16, &addr->bus) < 0) {
|
virStrToLong_ui(bus, NULL, 0, &addr->bus) < 0) {
|
||||||
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Cannot parse <address> 'bus' attribute"));
|
_("Cannot parse <address> 'bus' attribute"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (slot &&
|
if (slot &&
|
||||||
virStrToLong_ui(slot, NULL, 16, &addr->slot) < 0) {
|
virStrToLong_ui(slot, NULL, 0, &addr->slot) < 0) {
|
||||||
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Cannot parse <address> 'slot' attribute"));
|
_("Cannot parse <address> 'slot' attribute"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function &&
|
if (function &&
|
||||||
virStrToLong_ui(function, NULL, 16, &addr->function) < 0) {
|
virStrToLong_ui(function, NULL, 0, &addr->function) < 0) {
|
||||||
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Cannot parse <address> 'function' attribute"));
|
_("Cannot parse <address> 'function' attribute"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
Loading…
Reference in New Issue
Block a user