1. 22 1月, 2019 12 次提交
  2. 21 1月, 2019 3 次提交
  3. 19 1月, 2019 1 次提交
    • L
      qemu: fix i6300esb watchdog hotplug on Q35 · 40136bd3
      Laine Stump 提交于
      When commit 361c8dc1 added support for hotplugging the i6300esb
      watchdog device (first in libvirt-3.9.0), it accidentally contstructed
      the commandline for the device_add command before allocating a PCI
      address for the device. With no PCI address specified in the command,
      the watchdog would simply be placed at the lowest unused PCI slot.
      
      On a 440fx guest, this doesn't cause a problem, because libvirt's PCI
      address allocation algorithm would most likely give the same address
      anyway (usually a slot on pci-root), so nobody noticed the omission of
      address from the command.
      
      But on a Q35 guest, the lowest unused PCI slot is on pcie-root, which
      doesn't support hotplug; libvirt knows enough to assign a PCI address
      that is on a pcie-to-pci-bridge (because its slots *do* support
      hotplug), but qemu doesn't, so if there is no PCI address in the
      command, qemu just tries to plug the new device into pcie-root, and
      fails because it doesn't support hotplug, e.g.:
      
        error: Failed to attach device from watchdog.xml
        error: internal error: unable to execute QEMU command 'device_add':
        Bus 'pcie.0' does not support hotplugging
      
      The solution is simply to build the command string after assigning a
      PCI address, not before.
      
      Resolves: https://bugzilla.redhat.com/1666559Signed-off-by: NLaine Stump <laine@laine.org>
      Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
      40136bd3
  4. 18 1月, 2019 24 次提交