[PATCH 0/11] Factor VT-d KVM functions into a generic API

Joerg Roedel
2008-12-04T17:34:32Z

This patch series makes the current KVM device passthrough code generic
enough so that other IOMMU implementation can also plug into this code.
It works by factoring the functions Vt-d code exports to KVM into a
generic interface which allows different backends.

This is the third version of the patchset. I rebased these patches onto
the 13-patches post of Han Weidongs multiple device assignment work and
included changes to the commit-messages according the comments I got
from the review.

This a basic implementation of a generic interface. It can and should be
improved later to support more types of hardware IOMMUs then VT-d and
AMD IOMMU.

Since I have no VT-d hardware available these patches are only compile
tested for now.

Please review, comment and test these patches.

Thanks,

Joerg

diffstat:

arch/ia64/Kconfig | 3 +
arch/ia64/include/asm/kvm_host.h | 2 +-
arch/ia64/kvm/Makefile | 4 +-
arch/ia64/kvm/kvm-ia64.c | 3 +-
arch/x86/Kconfig | 3 +
arch/x86/include/asm/kvm_host.h | 2 +-
arch/x86/kvm/Makefile | 4 +-
arch/x86/kvm/x86.c | 3 +-
drivers/base/Makefile | 1 +
drivers/base/iommu.c | 100 +++++++++++++++++++++++++++++++
drivers/pci/intel-iommu.c | 121 ++++++++++++++++++++++---------------
include/linux/intel-iommu.h | 21 -------
include/linux/iommu.h | 112 +++++++++++++++++++++++++++++++++++
include/linux/kvm_host.h | 6 +-
virt/kvm/{vtd.c => iommu.c} | 45 +++++++--------
virt/kvm/kvm_main.c | 2 +-
16 files changed, 326 insertions(+), 106 deletions(-)