1. 15 4月, 2012 4 次提交
    • A
      acpi_piix4: Re-define PCI hotplug eject register read · 9290f364
      Alex Williamson 提交于
      The PCI hotplug eject register has always returned 0, so let's redefine
      it as a hotplug feature register.  The existing model of using separate
      up & down read-only registers and an eject via write to this register
      becomes the base implementation.  As we make use of new interfaces we'll
      set bits here to allow the BIOS and AML implementation to optimize for
      the platform implementation.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      9290f364
    • A
      acpi_piix4: Remove PCI_RMV_BASE write code · 31745aab
      Alex Williamson 提交于
      Clarify this register as read-only and remove write code.  No
      change in existing behavior.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      31745aab
    • A
      acpi_piix4: Fix PCI hotplug race · 7faa8075
      Alex Williamson 提交于
      As Michael Tsirkin demonstrated, current PCI hotplug is vulnerable
      to a few races.  The first is a race with other hotplug operations
      because we clear the up & down registers at each event.  If a new
      event comes before the last is processed, up/down is cleared and
      the event is lost.
      
      To fix this for the down register, we create a life cycle for
      the event request that starts with the hot unplug request in
      piix4_device_hotplug() and ends when the device is ejected.
      This allows us to mask and clear individual bits, preserving them
      against races.  For the up register, we have no clear end point
      for when the event is finished.  We could modify the BIOS to
      acknowledge the bit and clear it, but this creates BIOS compatibiliy
      issues without offering a complete solution.  Instead we note that
      gratuitous ACPI device checks are not harmful, which allows us to
      issue a device check for every slot.  We know which slots are present
      and we know which slots are hotpluggable, so we can easily reduce
      this to a more manageable set for the guest.
      
      The other race Michael noted was that an unplug request followed
      by reset may also lose the eject notification, which may also
      result in the eject request being lost which a subsequent add
      or remove.  Once we're in reset, the device is unused and we can
      flush the queue of device removals ourselves.  Previously if a
      device_del was issued to a guest without ACPI PCI hotplug support,
      it was necessary to shutdown the guest to recover the device.
      With this, a guest reboot is sufficient.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      7faa8075
    • A
      acpi_piix4: Disallow write to up/down PCI hotplug registers · ba737541
      Alex Williamson 提交于
      The write side of these registers is never used and actually can't be
      used as defined because any read/modify/write sequence from the guest
      potentially races with qemu.  Drop the write support and define these
      as read-only registers.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      ba737541
  2. 11 4月, 2012 6 次提交
  3. 10 4月, 2012 7 次提交
    • A
      Merge commit 'ff71f2e8' into staging · 4e1957ac
      Anthony Liguori 提交于
      * commit 'ff71f2e8': (21 commits)
        rtl8139: do the network/host communication only in normal operating mode
        rtl8139: correctly check the opmode
        net: move compute_mcast_idx() to net.h
        rtl8139: support byte read to TxStatus registers
        rtl8139: remove unused marco
        rtl8139: limit transmission buffer size in c+ mode
        pci_regs: Add PCI_EXP_TYPE_PCIE_BRIDGE
        virtio-net: add DATA_VALID flag
        pci_bridge: upper 32 bit are long registers
        pci: fix bridge IO/BASE
        pcie: drop functionality moved to core
        pci: set memory type for memory behind the bridge
        pci: add standard bridge device
        slotid: add slot id capability
        shpc: standard hot plug controller
        pci_bridge: user-friendly default bus name
        pci: make another unused extern function static
        pci: don't export an internal function
        pci_regs: Fix value of PCI_EXP_TYPE_RC_EC.
        pci: Do not check if a bus exist in pci_parse_devaddr.
        ...
      4e1957ac
    • A
      Merge remote-tracking branch 'qmp/queue/qmp' into staging · 6da25bd5
      Anthony Liguori 提交于
      * qmp/queue/qmp:
        qapi: convert device_del
        qdev: qdev_unplug(): use error_set()
      6da25bd5
    • A
      Merge remote-tracking branch 'kwolf/for-anthony' into staging · bb5d8dd7
      Anthony Liguori 提交于
      * kwolf/for-anthony: (46 commits)
        qed: remove incoming live migration blocker
        qed: honor BDRV_O_INCOMING for incoming live migration
        migration: clear BDRV_O_INCOMING flags on end of incoming live migration
        qed: add bdrv_invalidate_cache to be called after incoming live migration
        blockdev: open images with BDRV_O_INCOMING on incoming live migration
        block: add a function to clear incoming live migration flags
        block: Add new BDRV_O_INCOMING flag to notice incoming live migration
        block stream: close unused files and update ->backing_hd
        qemu-iotests: Fix call syntax for qemu-io
        qemu-iotests: Fix call syntax for qemu-img
        qemu-iotests: Test unknown qcow2 header extensions
        qemu-iotests: qcow2.py
        sheepdog: fix send req helpers
        sheepdog: implement SD_OP_FLUSH_VDI operation
        block: bdrv_append() fixes
        qed: track dirty flag status
        qemu-img: add dirty flag status
        qed: image fragmentation statistics
        qemu-img: add image fragmentation statistics
        block: document job API
        ...
      bb5d8dd7
    • A
      Merge remote-tracking branch 'stefanha/trivial-patches' into staging · 72fe3aae
      Anthony Liguori 提交于
      * stefanha/trivial-patches:
        make: fix clean rule by removing build file in qom/
        configure: Link qga against UST tracing related libraries
        configure: Link QEMU against 'liburcu-bp'
        main-loop: make qemu_event_handle static
        block/curl: Replace usleep by g_usleep
        qtest: Add missing GCC_FMT_ATTR
        w32: Undefine error constants before their redefinition
        configure: fix mingw32 libs_qga typo
      72fe3aae
    • P
      petalogix_s3adsp1800: deleted bad FIXME comment · 2c097f60
      Peter A. G. Crosthwaite 提交于
      This FIXME has already been actioned. Deleted comment.
      Signed-off-by: NPeter A. G. Crosthwaite <peter.crosthwaite@petalogix.com>
      Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
      2c097f60
    • L
      a15fef21
    • L
      qdev: qdev_unplug(): use error_set() · 56f9107e
      Luiz Capitulino 提交于
      It currently uses qerror_report(), but next commit will convert
      the drive_del command to the QAPI and this requires using
      error_set().
      
      One particularity of qerror_report() is that it knows when it's
      running on monitor context or command-line context and prints the
      error message accordingly. error_set() doesn't do this, so we
      have to be careful not to drop error messages.
      
      qdev_unplug() has three kinds of usages:
      
       1. It's called when hot adding a device fails, to undo anything
          that has been done before hitting the error
      
       2. It's called by function monitor functions like device_del(),
          to unplug a device
      
       3. It's used by xen_platform.c in a way that doesn't _seem_ to
          be in monitor context
      
      Only item 2 can print an error message to the user, this commit
      maintains that.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      56f9107e
  4. 09 4月, 2012 1 次提交
  5. 08 4月, 2012 2 次提交
  6. 07 4月, 2012 20 次提交