51 lines
2.0 KiB
Diff
51 lines
2.0 KiB
Diff
commit e984019688509605966c03cd77f4591d2cc222d3
|
|
Author: Cole Robinson <crobinso@redhat.com>
|
|
Date: Fri Apr 30 18:14:35 2010 +0200
|
|
|
|
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
|
|
|
|
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
|
index 1607e8b..546ddf2 100644
|
|
--- a/src/conf/domain_conf.c
|
|
+++ b/src/conf/domain_conf.c
|
|
@@ -1079,28 +1079,28 @@ virDomainDevicePCIAddressParseXML(xmlNodePtr node,
|
|
function = virXMLPropString(node, "function");
|
|
|
|
if (domain &&
|
|
- virStrToLong_ui(domain, NULL, 16, &addr->domain) < 0) {
|
|
+ virStrToLong_ui(domain, NULL, 0, &addr->domain) < 0) {
|
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("Cannot parse <address> 'domain' attribute"));
|
|
goto cleanup;
|
|
}
|
|
|
|
if (bus &&
|
|
- virStrToLong_ui(bus, NULL, 16, &addr->bus) < 0) {
|
|
+ virStrToLong_ui(bus, NULL, 0, &addr->bus) < 0) {
|
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("Cannot parse <address> 'bus' attribute"));
|
|
goto cleanup;
|
|
}
|
|
|
|
if (slot &&
|
|
- virStrToLong_ui(slot, NULL, 16, &addr->slot) < 0) {
|
|
+ virStrToLong_ui(slot, NULL, 0, &addr->slot) < 0) {
|
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("Cannot parse <address> 'slot' attribute"));
|
|
goto cleanup;
|
|
}
|
|
|
|
if (function &&
|
|
- virStrToLong_ui(function, NULL, 16, &addr->function) < 0) {
|
|
+ virStrToLong_ui(function, NULL, 0, &addr->function) < 0) {
|
|
virDomainReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
_("Cannot parse <address> 'function' attribute"));
|
|
goto cleanup;
|