]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix error log in qemuAssignPCIAddresses()
authorLaine Stump <laine@laine.org>
Tue, 19 Apr 2016 16:53:02 +0000 (12:53 -0400)
committerCole Robinson <crobinso@redhat.com>
Wed, 4 May 2016 22:51:11 +0000 (18:51 -0400)
This error message was too specific, based on the incorrect assumption
that any error was cause by auto-added bridges:

  failed to create PCI bridge on bus 2: too many devices
  with fixed addresses

In practice you can't know if a bridge with an index <= the bus it's
connecting to was added automatically, or if it was a mistake in
explicit config, and the auto-add problem is going to be dealt with in
a different way in an upcoming patch. The new message is this:

  PCI Controller at index 1 (0x01) has "
  bus='0x02', but bus must be <= index

(note that index is given in both decimal and hex because it is
formatted as decimal in the XML, but bus is formatted as hex, and
displaying the hex value of index makes it easier to see the problem
when index > 9 (which will often be the case with PCIe, since most
controllers only have a single port, not 32 slots as with standard
PCI)).

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1004593
(cherry picked from commit ff2126225df019566e4e580d92e69e9df3ca96c0)

src/qemu/qemu_domain_address.c

index 4f31484ea6857375a39c1263e817a686198c87e2..29e79dd12eac1931e0dcbbbcf4d15b70bb68bfa4 100644 (file)
@@ -1545,10 +1545,9 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
                 if (cont->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE &&
                     idx <= addr->bus) {
                     virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                                   _("failed to create PCI bridge "
-                                     "on bus %d: too many devices with fixed "
-                                     "addresses"),
-                                   addr->bus);
+                                   _("PCI controller at index %d (0x%02x) has "
+                                     "bus='0x%02x', but bus must be <= index"),
+                                   idx, idx, addr->bus);
                     goto cleanup;
                 }
             }