1. 22 7月, 2016 9 次提交
  2. 21 7月, 2016 19 次提交
  3. 19 7月, 2016 3 次提交
    • E
      ide: set retry_unit for PIO and FLUSH requests · 35f78ab4
      Evgeny Yakovlev 提交于
      The following sequence of tests discovered a problem in IDE emulation:
      1. Send DMA write to IDE device 0
      2. Send CMD_FLUSH_CACHE to same IDE device which will be failed by block
      layer using blkdebug script in tests/ide-test:test_retry_flush
      
      When doing DMA request ide/core.c will set s->retry_unit to s->unit in
      ide_start_dma. When dma completes ide_set_inactive sets retry_unit to -1.
      After that ide_flush_cache runs and fails thanks to blkdebug.
      ide_flush_cb calls ide_handle_rw_error which asserts that s->retry_unit
      == s->unit. But s->retry_unit is still -1 after previous DMA completion
      and flush does not use anything related to retry.
      
      This patch restricts retry unit assertion only to ops that actually use
      retry logic.
      Signed-off-by: NEvgeny Yakovlev <eyakovlev@virtuozzo.com>
      Signed-off-by: NDenis V. Lunev <den@openvz.org>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1468870792-7411-3-git-send-email-den@openvz.org
      CC: Kevin Wolf <kwolf@redhat.com>
      CC: Max Reitz <mreitz@redhat.com>
      CC: Stefan Hajnoczi <stefanha@redhat.com>
      CC: Fam Zheng <famz@redhat.com>
      CC: John Snow <jsnow@redhat.com>
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      35f78ab4
    • E
      ide: refactor retry_unit set and clear into separate function · 0eeee07e
      Evgeny Yakovlev 提交于
      Code to set and clear state associated with retry in moved into
      ide_set_retry and ide_clear_retry to make adding retry setups easier.
      Signed-off-by: NEvgeny Yakovlev <eyakovlev@virtuozzo.com>
      Signed-off-by: NDenis V. Lunev <den@openvz.org>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1468870792-7411-2-git-send-email-den@openvz.org
      CC: Kevin Wolf <kwolf@redhat.com>
      CC: Max Reitz <mreitz@redhat.com>
      CC: Stefan Hajnoczi <stefanha@redhat.com>
      CC: Fam Zheng <famz@redhat.com>
      CC: John Snow <jsnow@redhat.com>
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      0eeee07e
    • A
      vfio/pci: Hide ARI capability · 383a7af7
      Alex Williamson 提交于
      QEMU supports ARI on downstream ports and assigned devices may support
      ARI in their extended capabilities.  The endpoint ARI capability
      specifies the next function, such that the OS doesn't need to walk
      each possible function, however this next function is relative to the
      host, not the guest.  This leads to device discovery issues when we
      combine separate functions into virtual multi-function packages in a
      guest.  For example, SR-IOV VFs are not enumerated by simply probing
      the function address space, therefore the ARI next-function field is
      zero.  When we combine multiple VFs together as a multi-function
      device in the guest, the guest OS identifies ARI is enabled, relies on
      this next-function field, and stops looking for additional function
      after the first is found.
      
      Long term we should expose the ARI capability to the guest to enable
      configurations with more than 8 functions per slot, but this requires
      additional QEMU PCI infrastructure to manage the next-function field
      for multiple, otherwise independent devices.  In the short term,
      hiding this capability allows equivalent functionality to what we
      currently have on non-express chipsets.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel@redhat.com>
      383a7af7
  4. 18 7月, 2016 9 次提交