1. 21 1月, 2013 1 次提交
    • A
      Merge remote-tracking branch 'stefanha/block' into staging · 8b17ed4c
      Anthony Liguori 提交于
      # By Kevin Wolf (4) and others
      # Via Stefan Hajnoczi
      * stefanha/block:
        dataplane: support viostor virtio-pci status bit setting
        dataplane: avoid reentrancy during virtio_blk_data_plane_stop()
        win32-aio: use iov utility functions instead of open-coding them
        win32-aio: Fix memory leak
        win32-aio: Fix vectored reads
        aio: Fix return value of aio_poll()
        ide: Remove wrong assertion
        block: fix null-pointer bug on error case in block commit
      8b17ed4c
  2. 20 1月, 2013 1 次提交
    • S
      tci: Fix broken build (regression) · b54c2873
      Stefan Weil 提交于
      s390x-linux-user now also uses GETPC. Instead of adding it to the list of
      targets which use GETPC, the macro is now defined unconditionally.
      
      This avoids future build regressions like this one:
      
        CC    s390x-linux-user/target-s390x/int_helper.o
      cc1: warnings being treated as errors
      qemu/target-s390x/int_helper.c: In function ‘helper_divs32’:
      qemu/target-s390x/int_helper.c:47: error: implicit declaration of function ‘GETPC’
      qemu/target-s390x/int_helper.c:47: error: nested extern declaration of ‘GETPC’
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      b54c2873
  3. 19 1月, 2013 36 次提交
  4. 18 1月, 2013 2 次提交
    • S
      dataplane: support viostor virtio-pci status bit setting · cf139388
      Stefan Hajnoczi 提交于
      The viostor virtio-blk driver for Windows does not use the
      VIRTIO_CONFIG_S_DRIVER bit.  It only sets the VIRTIO_CONFIG_S_DRIVER_OK
      bit.
      
      The viostor driver refreshes the virtio-pci status byte sometimes while
      the guest is running.  We misinterpret 0x4 (VIRTIO_CONFIG_S_DRIVER_OK)
      as an indication that virtio-blk-data-plane should be stopped since 0x2
      (VIRTIO_CONFIG_S_DRIVER) is missing.  The result is that the device
      becomes unresponsive.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      cf139388
    • S
      dataplane: avoid reentrancy during virtio_blk_data_plane_stop() · cd7fdfe5
      Stefan Hajnoczi 提交于
      When dataplane is stopping, the s->vdev->binding->set_host_notifier(...,
      false) call can invoke the virtqueue handler if an ioeventfd
      notification is pending.  This causes hw/virtio-blk.c to invoke
      virtio_blk_data_plane_start() before virtio_blk_data_plane_stop()
      returns!
      
      The result is that we try to restart dataplane while trying to stop it
      and the following assertion is raised:
      
        msix_set_mask_notifier: Assertion `!dev->msix_mask_notifier' failed.
      
      Although the code was intended to prevent this scenario, the s->started
      boolean isn't enough.  Add s->stopping so that we can postpone clearing
      s->started until we've completely stopped dataplane.
      
      This way, virtqueue handler calls during virtio_blk_data_plane_stop()
      are ignored.  When dataplane is legitimately started again later we
      already self-kick ourselves to resume processing.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      cd7fdfe5