1. 04 8月, 2009 1 次提交
  2. 18 5月, 2009 2 次提交
  3. 14 5月, 2009 1 次提交
  4. 11 5月, 2009 3 次提交
  5. 29 4月, 2009 1 次提交
    • F
      Intel IOMMU Pass Through Support · 4ed0d3e6
      Fenghua Yu 提交于
      The patch adds kernel parameter intel_iommu=pt to set up pass through
      mode in context mapping entry. This disables DMAR in linux kernel; but
      KVM still runs on VT-d and interrupt remapping still works.
      
      In this mode, kernel uses swiotlb for DMA API functions but other VT-d
      functionalities are enabled for KVM. KVM always uses multi level
      translation page table in VT-d. By default, pass though mode is disabled
      in kernel.
      
      This is useful when people don't want to enable VT-d DMAR in kernel but
      still want to use KVM and interrupt remapping for reasons like DMAR
      performance concern or debug purpose.
      Signed-off-by: NFenghua Yu <fenghua.yu@intel.com>
      Acked-by: NWeidong Han <weidong@intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      4ed0d3e6
  6. 11 4月, 2009 1 次提交
  7. 04 4月, 2009 2 次提交
  8. 18 3月, 2009 5 次提交
  9. 14 2月, 2009 1 次提交
    • T
      intel-iommu: fix endless "Unknown DMAR structure type" loop · 084eb960
      Tony Battersby 提交于
      I have a SuperMicro C2SBX motherboard with BIOS revision 1.0b.  With vt-d
      enabled in the BIOS, Linux gets into an endless loop printing
      "DMAR:Unknown DMAR structure type" when booting.  Here is the DMAR ACPI
      table:
      
      DMAR @ 0x7fe86dec
        0000: 44 4d 41 52 98 00 00 00 01 6f 49 6e 74 65 6c 20  DMAR.....oIntel
        0010: 4f 45 4d 44 4d 41 52 20 00 00 04 06 4c 4f 48 52  OEMDMAR ....LOHR
        0020: 01 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00  ....#...........
        0030: 01 00 58 00 00 00 00 00 00 a0 e8 7f 00 00 00 00  ..X.............
        0040: ff ff ef 7f 00 00 00 00 01 08 00 00 00 00 1d 00  ................
        0050: 01 08 00 00 00 00 1d 01 01 08 00 00 00 00 1d 02  ................
        0060: 01 08 00 00 00 00 1d 07 01 08 00 00 00 00 1a 00  ................
        0070: 01 08 00 00 00 00 1a 01 01 08 00 00 00 00 1a 02  ................
        0080: 01 08 00 00 00 00 1a 07 01 08 00 00 00 00 1a 07  ................
        0090: c0 00 68 00 04 10 66 60                          ..h...f`
      
      Here are the messages printed by the kernel:
      
      DMAR:Host address width 36
      DMAR:RMRR base: 0x000000007fe8a000 end: 0x000000007fefffff
      DMAR:Unknown DMAR structure type
      DMAR:Unknown DMAR structure type
      DMAR:Unknown DMAR structure type
      ...
      
      Although I not very familiar with ACPI, to me it looks like struct
      acpi_dmar_header::length == 0x0058 is incorrect, causing
      parse_dmar_table() to look at an invalid offset on the next loop.  This
      offset happens to have struct acpi_dmar_header::length == 0x0000, which
      prevents the loop from ever terminating.  This patch checks for this
      condition and bails out instead of looping forever.
      Signed-off-by: NTony Battersby <tonyb@cybernetics.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      084eb960
  10. 11 2月, 2009 1 次提交
  11. 09 2月, 2009 2 次提交
  12. 03 1月, 2009 2 次提交
  13. 18 10月, 2008 2 次提交
  14. 17 10月, 2008 3 次提交
  15. 16 10月, 2008 4 次提交
  16. 15 10月, 2008 1 次提交
  17. 23 7月, 2008 1 次提交
  18. 12 7月, 2008 7 次提交