26 Oct, 2011

1 commit

  • * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    rtmutex: Add missing rcu_read_unlock() in debug_rt_mutex_print_deadlock()
    lockdep: Comment all warnings
    lib: atomic64: Change the type of local lock to raw_spinlock_t
    locking, lib/atomic64: Annotate atomic64_lock::lock as raw
    locking, x86, iommu: Annotate qi->q_lock as raw
    locking, x86, iommu: Annotate irq_2_ir_lock as raw
    locking, x86, iommu: Annotate iommu->register_lock as raw
    locking, dma, ipu: Annotate bank_lock as raw
    locking, ARM: Annotate low level hw locks as raw
    locking, drivers/dca: Annotate dca_lock as raw
    locking, powerpc: Annotate uic->lock as raw
    locking, x86: mce: Annotate cmci_discover_lock as raw
    locking, ACPI: Annotate c3_lock as raw
    locking, oprofile: Annotate oprofilefs lock as raw
    locking, video: Annotate vga console lock as raw
    locking, latencytop: Annotate latency_lock as raw
    locking, timer_stats: Annotate table_lock as raw
    locking, rwsem: Annotate inner lock as raw
    locking, semaphores: Annotate inner lock as raw
    locking, sched: Annotate thread_group_cputimer as raw
    ...

    Fix up conflicts in kernel/posix-cpu-timers.c manually: making
    cputimer->cputime a raw lock conflicted with the ABBA fix in commit
    bcd5cff7216f ("cputimer: Cure lock inversion").

    Linus Torvalds
     

21 Sep, 2011

1 commit

  • Change the CONFIG_DMAR to CONFIG_INTEL_IOMMU to be consistent
    with the other IOMMU options.

    Rename the CONFIG_INTR_REMAP to CONFIG_IRQ_REMAP to match the
    irq subsystem name.

    And define the CONFIG_DMAR_TABLE for the common ACPI DMAR
    routines shared by both CONFIG_INTEL_IOMMU and CONFIG_IRQ_REMAP.

    Signed-off-by: Suresh Siddha
    Cc: yinghai@kernel.org
    Cc: youquan.song@intel.com
    Cc: joerg.roedel@amd.com
    Cc: tony.luck@intel.com
    Cc: dwmw2@infradead.org
    Link: http://lkml.kernel.org/r/20110824001456.558630224@sbsiddha-desk.sc.intel.com
    Signed-off-by: Ingo Molnar

    Suresh Siddha
     

13 Sep, 2011

2 commits

  • The qi->q_lock lock can be taken in atomic context and therefore
    cannot be preempted on -rt - annotate it.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     
  • The iommu->register_lock can be taken in atomic context and therefore
    must not be preempted on -rt - annotate it.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

05 Oct, 2009

1 commit


11 Sep, 2009

1 commit

  • BIOS clear DMAR table INTR_REMAP flag to disable interrupt remapping. Current
    kernel only check interrupt remapping(IR) flag in DRHD's extended capability
    register to decide interrupt remapping support or not. But IR flag will not
    change when BIOS disable/enable interrupt remapping.

    When user disable interrupt remapping in BIOS or BIOS often defaultly disable
    interrupt remapping feature when BIOS is not mature.Though BIOS disable
    interrupt remapping but intr_remapping_supported function will always report
    to OS support interrupt remapping if VT-d2 chipset populated. On this
    cases, kernel will continue enable interrupt remapping and result kernel panic.
    This bug exist on almost all platforms with interrupt remapping support.

    This patch add DMAR table INTR_REMAP flag check before enable interrupt
    remapping.

    Signed-off-by: Youquan Song
    Signed-off-by: David Woodhouse

    Youquan Song
     

18 May, 2009

3 commits


11 May, 2009

2 commits

  • As we just did for context cache flushing, clean up the logic around
    whether we need to flush the iotlb or just the write-buffer, depending
    on caching mode.

    Fix the same bug in qi_flush_iotlb() that qi_flush_context() had -- it
    isn't supposed to be returning an error; it's supposed to be returning a
    flag which triggers a write-buffer flush.

    Remove some superfluous conditional write-buffer flushes which could
    never have happened because they weren't for non-present-to-present
    mapping changes anyway.

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • It really doesn't make a lot of sense to have some of the logic to
    handle caching vs. non-caching mode duplicated in qi_flush_context() and
    __iommu_flush_context(), while the return value indicates whether the
    caller should take other action which depends on the same thing.

    Especially since qi_flush_context() thought it was returning something
    entirely different anyway.

    This patch makes qi_flush_context() and __iommu_flush_context() both
    return void, removes the 'non_present_entry_flush' argument and makes
    the only call site which _set_ that argument to 1 do the right thing.

    Signed-off-by: David Woodhouse

    David Woodhouse
     

29 Apr, 2009

1 commit

  • 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: Fenghua Yu
    Acked-by: Weidong Han
    Signed-off-by: David Woodhouse

    Fenghua Yu
     

04 Apr, 2009

3 commits

  • When extended interrupt mode (x2apic mode) is not supported in a
    system, it must set compatibility format interrupt to bypass
    interrupt remapping, otherwise compatibility format interrupts
    will be blocked.

    This will be used when interrupt remapping is enabled while x2apic
    is not supported.

    Signed-off-by: Weidong Han
    Acked-by: Ingo Molnar
    Signed-off-by: David Woodhouse

    Han, Weidong
     
  • This patch implements the suspend and resume feature for Intel IOMMU
    DMAR. It hooks to kernel suspend and resume interface. When suspend happens, it
    saves necessary hardware registers. When resume happens, it restores the
    registers and restarts IOMMU by enabling translation, setting up root entry, and
    re-enabling queued invalidation.

    Signed-off-by: Fenghua Yu
    Acked-by: Ingo Molnar
    Signed-off-by: David Woodhouse

    Fenghua Yu
     
  • * git://git.infradead.org/iommu-2.6:
    intel-iommu: Fix address wrap on 32-bit kernel.
    intel-iommu: Enable DMAR on 32-bit kernel.
    intel-iommu: fix PCI device detach from virtual machine
    intel-iommu: VT-d page table to support snooping control bit
    iommu: Add domain_has_cap iommu_ops
    intel-iommu: Snooping control support

    Fixed trivial conflicts in arch/x86/Kconfig and drivers/pci/intel-iommu.c

    Linus Torvalds
     

31 Mar, 2009

1 commit

  • * 'iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)
    dma-debug: make memory range checks more consistent
    dma-debug: warn of unmapping an invalid dma address
    dma-debug: fix dma_debug_add_bus() definition for !CONFIG_DMA_API_DEBUG
    dma-debug/x86: register pci bus for dma-debug leak detection
    dma-debug: add a check dma memory leaks
    dma-debug: add checks for kernel text and rodata
    dma-debug: print stacktrace of mapping path on unmap error
    dma-debug: Documentation update
    dma-debug: x86 architecture bindings
    dma-debug: add function to dump dma mappings
    dma-debug: add checks for sync_single_sg_*
    dma-debug: add checks for sync_single_range_*
    dma-debug: add checks for sync_single_*
    dma-debug: add checking for [alloc|free]_coherent
    dma-debug: add add checking for map/unmap_sg
    dma-debug: add checking for map/unmap_page/single
    dma-debug: add core checking functions
    dma-debug: add debugfs interface
    dma-debug: add kernel command line parameters
    dma-debug: add initialization code
    ...

    Fix trivial conflicts due to whitespace changes in arch/x86/kernel/pci-nommu.c

    Linus Torvalds
     

24 Mar, 2009

1 commit


18 Mar, 2009

2 commits


05 Mar, 2009

1 commit


09 Feb, 2009

1 commit

  • When hardware detects any error with a descriptor from the invalidation
    queue, it stops fetching new descriptors from the queue until software
    clears the Invalidation Queue Error bit in the Fault Status register.
    Following fix handles the IQE so the kernel won't be trapped in an
    infinite loop.

    Signed-off-by: Yu Zhao
    Signed-off-by: David Woodhouse

    Yu Zhao
     

29 Jan, 2009

1 commit


06 Jan, 2009

1 commit

  • This converts X86 and IA64 to use include/linux/dma-mapping.h.

    It's a bit large but pretty boring. The major change for X86 is
    converting 'int dir' to 'enum dma_data_direction dir' in DMA mapping
    operations. The major changes for IA64 is using map_page and
    unmap_page instead of map_single and unmap_single.

    Signed-off-by: FUJITA Tomonori
    Acked-by: Tony Luck
    Signed-off-by: Ingo Molnar

    FUJITA Tomonori
     

03 Jan, 2009

8 commits


18 Oct, 2008

1 commit

  • The current Intel IOMMU code assumes that both host page size and Intel
    IOMMU page size are 4KiB. The first patch supports variable page size.
    This provides support for IA64 which has multiple page sizes.

    This patch also adds some other code hooks for IA64 platform including
    DMAR_OPERATION_TIMEOUT definition.

    [dwmw2: some cleanup]
    Signed-off-by: Fenghua Yu
    Signed-off-by: Tony Luck
    Signed-off-by: David Woodhouse

    Fenghua Yu
     

17 Oct, 2008

2 commits


15 Oct, 2008

1 commit

  • This patch extends the VT-d driver to support KVM

    [Ben: fixed memory pinning]
    [avi: move dma_remapping.h as well]

    Signed-off-by: Kay, Allen M
    Signed-off-by: Weidong Han
    Signed-off-by: Ben-Ami Yassour
    Signed-off-by: Amit Shah
    Acked-by: Mark Gross
    Signed-off-by: Avi Kivity

    Kay, Allen M