1. 29 Jun, 2013 1 commit
  2. 24 Apr, 2013 2 commits
  3. 15 Apr, 2013 1 commit
  4. 01 Apr, 2013 2 commits
  5. 26 Mar, 2013 1 commit
  6. 25 Mar, 2013 1 commit
  7. 15 Mar, 2013 1 commit
  8. 11 Mar, 2013 1 commit
  9. 24 Feb, 2013 1 commit
  10. 18 Feb, 2013 2 commits
    • Alex Williamson's avatar
      vfio-pci: Add support for VGA region access · 84237a82
      Alex Williamson authored
      
      
      PCI defines display class VGA regions at I/O port address 0x3b0, 0x3c0
      and MMIO address 0xa0000.  As these are non-overlapping, we can ignore
      the I/O port vs MMIO difference and expose them both in a single
      region.  We make use of the VGA arbiter around each access to
      configure chipset access as necessary.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      84237a82
    • Alex Williamson's avatar
      vfio-pci: Manage user power state transitions · 2dd11948
      Alex Williamson authored
      
      
      We give the user access to change the power state of the device but
      certain transitions result in an uninitialized state which the user
      cannot resolve.  To fix this we need to mark the PowerState field of
      the PMCSR register read-only and effect the requested change on behalf
      of the user.  This has the added benefit that pdev->current_state
      remains accurate while controlled by the user.
      
      The primary example of this bug is a QEMU guest doing a reboot where
      the device it put into D3 on shutdown and becomes unusable on the next
      boot because the device did a soft reset on D3->D0 (NoSoftRst-).
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      2dd11948
  11. 14 Feb, 2013 3 commits
  12. 15 Jan, 2013 1 commit
  13. 07 Dec, 2012 4 commits
  14. 10 Oct, 2012 3 commits
    • Alex Williamson's avatar
      vfio: Fix PCI INTx disable consistency · 899649b7
      Alex Williamson authored
      
      
      The virq_disabled flag tracks the userspace view of INTx masking
      across interrupt mode changes, but we're not consistently applying
      this to the interrupt and masking handler notion of the device.
      Currently if the user sets DisINTx while in MSI or MSIX mode, then
      returns to INTx mode (ex. rebooting a qemu guest), the hardware has
      DisINTx+, but the management of INTx thinks it's enabled, making it
      impossible to actually clear DisINTx.  Fix this by updating the
      handler state when INTx is re-enabled.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      899649b7
    • Alex Williamson's avatar
      vfio: Move PCI INTx eventfd setting earlier · 9dbdfd23
      Alex Williamson authored
      
      
      We need to be ready to recieve an interrupt as soon as we call
      request_irq, so our eventfd context setting needs to be moved
      earlier.  Without this, an interrupt from our device or one
      sharing the interrupt line can pass a NULL into eventfd_signal
      and oops.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      9dbdfd23
    • Alex Williamson's avatar
      vfio: Fix PCI mmap after b3b9c293 · 34002f54
      Alex Williamson authored
      Our mmap path mistakely relied on vma->vm_pgoff to get set in
      remap_pfn_range.  After b3b9c293
      
      , that path only applies to
      copy-on-write mappings.  Set it in our own code.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      34002f54
  15. 09 Oct, 2012 1 commit
    • Linus Torvalds's avatar
      Fix staging driver use of VM_RESERVED · 547b1e81
      Linus Torvalds authored
      The VM_RESERVED flag was killed off in commit 314e51b9
      
       ("mm: kill
      vma flag VM_RESERVED and mm->reserved_vm counter"), and replaced by the
      proper semantic flags (eg "don't core-dump" etc).  But there was a new
      use of VM_RESERVED that got missed by the merge.
      
      Fix the remaining use of VM_RESERVED in the vfio_pci driver, replacing
      the VM_RESERVED flag with VM_DONTEXPAND | VM_DONTDUMP.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation,org>
      547b1e81
  16. 21 Sep, 2012 1 commit
    • Alex Williamson's avatar
      vfio: Fix virqfd release race · b68e7fa8
      Alex Williamson authored
      
      
      vfoi-pci supports a mechanism like KVM's irqfd for unmasking an
      interrupt through an eventfd.  There are two ways to shutdown this
      interface: 1) close the eventfd, 2) ioctl (such as disabling the
      interrupt).  Both of these do the release through a workqueue,
      which can result in a segfault if two jobs get queued for the same
      virqfd.
      
      Fix this by protecting the pointer to these virqfds by a spinlock.
      The vfio pci device will therefore no longer have a reference to it
      once the release job is queued under lock.  On the ioctl side, we
      still flush the workqueue to ensure that any outstanding releases
      are completed.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      b68e7fa8
  17. 31 Jul, 2012 1 commit
    • Alex Williamson's avatar
      vfio: Add PCI device driver · 89e1f7d4
      Alex Williamson authored
      
      
      Add PCI device support for VFIO.  PCI devices expose regions
      for accessing config space, I/O port space, and MMIO areas
      of the device.  PCI config access is virtualized in the kernel,
      allowing us to ensure the integrity of the system, by preventing
      various accesses while reducing duplicate support across various
      userspace drivers.  I/O port supports read/write access while
      MMIO also supports mmap of sufficiently sized regions.  Support
      for INTx, MSI, and MSI-X interrupts are provided using eventfds to
      userspace.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      89e1f7d4