1. 09 1月, 2013 3 次提交
    • A
      vfio-pci: Make host MSI-X enable track guest · b0223e29
      Alex Williamson 提交于
      Guests typically enable MSI-X with all of the vectors in the MSI-X
      vector table masked.  Only when the vector is enabled does the vector
      get unmasked, resulting in a vector_use callback.  These two points,
      enable and unmask, correspond to pci_enable_msix() and request_irq()
      for Linux guests.  Some drivers rely on VF/PF or PF/fw communication
      channels that expect the physical state of the device to match the
      guest visible state of the device.  They don't appreciate lazily
      enabling MSI-X on the physical device.
      
      To solve this, enable MSI-X with a single vector when the MSI-X
      capability is enabled and immediate disable the vector.  This leaves
      the physical device in exactly the same state between host and guest.
      Furthermore, the brief gap where we enable vector 0, it fires into
      userspace, not KVM, so the guest doesn't get spurious interrupts.
      Ideally we could call VFIO_DEVICE_SET_IRQS with the right parameters
      to enable MSI-X with zero vectors, but this will currently return an
      error as the Linux MSI-X interfaces do not allow it.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Cc: qemu-stable@nongnu.org
      b0223e29
    • A
      Merge remote-tracking branch 'kraxel/usb.75' into staging · 560c30b1
      Anthony Liguori 提交于
      * kraxel/usb.75: (32 commits)
        uhci: stop using portio lists
        usbredir: Add support for buffered bulk input (v2)
        exynos4210: Add EHCI support
        usb/ehci: Add SysBus EHCI device for Exynos4210
        usb/ehci: Move capsbase and opregbase into SysBus EHCI class
        usb/ehci: Clean up SysBus and PCI EHCI split
        xhci: call set-address with dummy usbpacket
        usb-redir: Add debugging to bufpq save / restore
        usbredir: Add usbredir_init_endpoints() helper
        usbredir: Verify we have 32 bits bulk length cap when redirecting to xhci
        usbredir: Add ep_stopped USBDevice method
        usbredir: Add USBEP2I and I2USBEP helper macros
        usbredir: Add an usbredir_stop_ep helper function
        usb: Add an usb_device_ep_stopped USBDevice method
        usb: Fix usb_ep_find_packet_by_id
        hid: Change idle handling to use a timer
        uhci: Maximize how many frames we catch up when behind
        uhci: Limit amount of frames processed in one go
        uhci: Add a QH_VALID define
        uhci: Fix pending interrupts getting lost on migration
        ...
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      560c30b1
    • A
      Merge remote-tracking branch 'stefanha/net' into staging · c3dd94b1
      Anthony Liguori 提交于
      * stefanha/net:
        rtl8139: preserve link state across device reset
        e1000: no need auto-negotiation if link was down
        net: clean up network at qemu process termination
        e1000: Discard oversized packets based on SBP|LPE
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      c3dd94b1
  2. 08 1月, 2013 6 次提交
  3. 07 1月, 2013 31 次提交