An error occurred fetching the project authors.
  1. 07 Mar, 2016 1 commit
  2. 16 Jun, 2015 8 commits
  3. 12 Jun, 2015 5 commits
  4. 05 May, 2015 1 commit
  5. 24 Apr, 2015 8 commits
  6. 25 Mar, 2015 1 commit
  7. 03 Mar, 2015 1 commit
    • Quentin Lambert's avatar
      iommu/vt-d: Convert non-returned local variable to boolean when relevant · 2f119c78
      Quentin Lambert authored
      This patch was produced using Coccinelle. A simplified version of the
      semantic patch is:
      
      @r exists@
      identifier f;
      local idexpression u8 x;
      identifier xname;
      @@
      
      f(...) {
      ...when any
      (
        x@xname = 1;
      |
        x@xname = 0;
      )
      ...when any
      }
      
      @bad exists@
      identifier r.f;
      local idexpression u8 r.x
      expression e1 != {0, 1}, e2;
      @@
      
      f(...) {
      ...when any
      (
        x = e1;
      |
        x + e2
      )
      ...when any
      }
      
      @depends on !bad@
      identifier r.f;
      local idexpression u8 r.x;
      identifier r.xname;
      @@
      
      f(...) {
      ...
      ++ bool xname;
      - int xname;
      <...
      (
        x =
      - 1
      + true
      |
        x =
      - -1
      + false
      )
      ...>
      
      }
      Signed-off-by: default avatarQuentin Lambert <lambert.quentin@gmail.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      2f119c78
  8. 15 Jan, 2015 7 commits
  9. 16 Dec, 2014 1 commit
  10. 18 Nov, 2014 3 commits
  11. 25 Sep, 2014 1 commit
    • Yijing Wang's avatar
      iommu/irq_remapping: Fix the regression of hpet irq remapping · 5fc24d8c
      Yijing Wang authored
      Commit 71054d88 ("x86, hpet: Introduce x86_msi_ops.setup_hpet_msi")
      introduced x86_msi_ops.setup_hpet_msi to setup hpet MSI irq
      when irq remapping enabled. This caused a regression of
      hpet MSI irq remapping.
      
      Original code flow before commit 71054d88:
      hpet_setup_msi_irq()
      	arch_setup_hpet_msi()
      		setup_hpet_msi_remapped()
      			remap_ops->setup_hpet_msi()
      				alloc_irte()
      		msi_compose_msg()
      		hpet_msi_write()
      		...
      
      Current code flow after commit 71054d88:
      hpet_setup_msi_irq()
      	x86_msi.setup_hpet_msi()
      		setup_hpet_msi_remapped()
      			intel_setup_hpet_msi()
      				alloc_irte()
      
      Currently, we only call alloc_irte() for hpet MSI, but
      do not composed and wrote its msg...
      Signed-off-by: default avatarYijing Wang <wangyijing@huawei.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      5fc24d8c
  12. 19 Aug, 2014 1 commit
  13. 31 Jul, 2014 1 commit
    • Greg Edwards's avatar
      iommu/vt-d: Fix race setting IRQ CPU affinity while freeing IRQ · af437469
      Greg Edwards authored
      A user process setting the CPU affinity of an IRQ for a KVM
      direct-assigned device via /proc/irq/<IRQ#>/smp_affinity can race with
      the IRQ being released by QEMU, resulting in a NULL iommu pointer
      dereference in get_irte(), causing this crash:
      
       BUG: unable to handle kernel NULL pointer dereference at 0000000000000090
       IP: [<ffffffff8190a652>] intel_ioapic_set_affinity+0x82/0x1b0
       PGD 99172e067 PUD 1026979067 PMD 0
       Oops: 0000 [#1] SMP
       Modules linked in:
       CPU: 1 PID: 3354 Comm: affin Not tainted 3.16.0-rc7-00007-g31dab719 #1
       Hardware name: Supermicro SYS-F617R2-RT+/X9DRFR, BIOS 3.0a 01/29/2014
       task: ffff881025b0e720 ti: ffff88099173c000 task.ti: ffff88099173c000
       RIP: 0010:[<ffffffff8190a652>]  [<ffffffff8190a652>] intel_ioapic_set_affinity+0x82/0x1b0
       RSP: 0018:ffff88099173fdb0  EFLAGS: 00010046
       RAX: 0000000000000082 RBX: ffff880a36294600 RCX: 0000000000000082
       RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8266af00
       RBP: ffff88099173fdf8 R08: 0000000000000000 R09: ffff88103ec00490
       R10: 0000000000000000 R11: 0000000000000000 R12: ffff88099173fe90
       R13: 000000000000005f R14: ffff880faa38fe80 R15: ffff880faa38fe80
       FS:  00007f7161f05740(0000) GS:ffff88107fc40000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000000000000090 CR3: 000000099140d000 CR4: 00000000001427e0
       Stack:
        ffffffff81c44740 ffff88099173fdc8 ffffffff00000000 00000000c991fd3b
        ffff880a36294600 ffff88099173fe90 ffff88099173fe90 0000000000000000
        0000000000000286 ffff88099173fe08 ffffffff8190aac5 ffff88099173fe28
       Call Trace:
        [<ffffffff8190aac5>] set_remapped_irq_affinity+0x25/0x40
        [<ffffffff811322dc>] irq_do_set_affinity+0x1c/0x50
        [<ffffffff81132458>] irq_set_affinity_locked+0x98/0xd0
        [<ffffffff811324d6>] __irq_set_affinity+0x46/0x70
        [<ffffffff811362dc>] write_irq_affinity.isra.6+0xdc/0x100
        [<ffffffff8113631c>] irq_affinity_list_proc_write+0x1c/0x20
        [<ffffffff8129f30d>] proc_reg_write+0x3d/0x80
        [<ffffffff812384a7>] vfs_write+0xb7/0x1f0
        [<ffffffff81243619>] ? putname+0x29/0x40
        [<ffffffff812390c5>] SyS_write+0x55/0xd0
        [<ffffffff81adc729>] system_call_fastpath+0x16/0x1b
       Code: ff 48 85 d2 74 68 4c 8b 7a 30 4d 85 ff 74 5f 48 c7 c7 00 af 66 82 e8 9e 1b 1d 00 49 8b 57 20 41 0f b7 77 28 48 c7 c7 00 af 66 82 <48> 8b 8a 90 00 00 00 41 0f b7 57 2a 01 f2 48 89 c6 48 63 d2 48
       RIP  [<ffffffff8190a652>] intel_ioapic_set_affinity+0x82/0x1b0
        RSP <ffff88099173fdb0>
       CR2: 0000000000000090
      Signed-off-by: default avatarGreg Edwards <gedwards@ddn.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      af437469
  14. 04 Jul, 2014 1 commit
    • Alex Williamson's avatar
      iommu/vt-d: Update to use PCI DMA aliases · 579305f7
      Alex Williamson authored
      VT-d code currently makes use of pci_find_upstream_pcie_bridge() in
      order to find the topology based alias of a device.  This function has
      a few problems.  First, it doesn't check the entire alias path of the
      device to the root bus, therefore if a PCIe device is masked upstream,
      the wrong result is produced.  Also, it's known to get confused and
      give up when it crosses a bridge from a conventional PCI bus to a PCIe
      bus that lacks a PCIe capability.  The PCI-core provided DMA alias
      support solves both of these problems and additionally adds support
      for DMA function quirks allowing VT-d to work with devices like
      Marvell and Ricoh with known broken requester IDs.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      579305f7