1. 15 2月, 2013 2 次提交
  2. 16 1月, 2013 1 次提交
  3. 08 12月, 2012 4 次提交
  4. 10 10月, 2012 3 次提交
    • A
      vfio: Fix PCI INTx disable consistency · 899649b7
      Alex Williamson 提交于
      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: NAlex Williamson <alex.williamson@redhat.com>
      899649b7
    • A
      vfio: Move PCI INTx eventfd setting earlier · 9dbdfd23
      Alex Williamson 提交于
      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: NAlex Williamson <alex.williamson@redhat.com>
      9dbdfd23
    • A
      vfio: Fix PCI mmap after b3b9c293 · 34002f54
      Alex Williamson 提交于
      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: NAlex Williamson <alex.williamson@redhat.com>
      34002f54
  5. 09 10月, 2012 1 次提交
    • L
      Fix staging driver use of VM_RESERVED · 547b1e81
      Linus Torvalds 提交于
      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: NLinus Torvalds <torvalds@linux-foundation,org>
      547b1e81
  6. 22 9月, 2012 1 次提交
    • A
      vfio: Fix virqfd release race · b68e7fa8
      Alex Williamson 提交于
      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: NAlex Williamson <alex.williamson@redhat.com>
      b68e7fa8
  7. 31 7月, 2012 1 次提交
    • A
      vfio: Add PCI device driver · 89e1f7d4
      Alex Williamson 提交于
      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: NAlex Williamson <alex.williamson@redhat.com>
      89e1f7d4