]> Pileus Git - ~andy/linux/commit
iommu/amd: Split device table initialization into irq and dma part
authorJoerg Roedel <joerg.roedel@amd.com>
Fri, 15 Jun 2012 16:03:31 +0000 (18:03 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Fri, 28 Sep 2012 15:31:41 +0000 (17:31 +0200)
commit33f28c59e18d83fd2aeef258d211be66b9b80eb3
tree37076d60ce5e1b7830edad4ece164361d3185ecb
parenteb1eb7ae65a9d32f6c16a90419caf01221f94734
iommu/amd: Split device table initialization into irq and dma part

When the IOMMU is enabled very early (as with irq-remapping)
some devices are still in BIOS hand. When dma is blocked
early this can cause lots of IO_PAGE_FAULTs. So delay the
DMA initialization and do it right before the dma_ops are
initialized.
To be secure, block all interrupts by default when irq-remapping is
enabled in the system. They will be reenabled on demand
later. Without blocking interrupts by default devices can
issue arbitrary interrupts by sending special DMA packets to
the CPU that look like MSI messages. This is especially
dangerous when a device is assigned to a KVM guest because
the guest can then DoS the host.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/amd_iommu_init.c