Commit a8c45289 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'iommu-fixes-v3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull IOMMU fixes from Joerg Roedel:
 "Here are some fixes which have collected since Linux v3.9-rc1.

  The most important one fixes a long-standing regressen which make
  re-hotplugged devices unusable when AMD IOMMU is used.

  The other patches fix build issues (build regression on OMAP and a
  section mismatch).  One patch just removes a duplicate header include."

* tag 'iommu-fixes-v3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
  iommu/amd: Make sure dma_ops are set for hotplug devices
  x86, io_apic: remove duplicated include from irq_remapping.c
  iommu: OMAP: build only on OMAP2+
  amd_iommu_init: remove __init from amd_iommu_erratum_746_workaround
parents 3e84f48e c2a2876e
...@@ -130,7 +130,7 @@ config IRQ_REMAP ...@@ -130,7 +130,7 @@ config IRQ_REMAP
# OMAP IOMMU support # OMAP IOMMU support
config OMAP_IOMMU config OMAP_IOMMU
bool "OMAP IOMMU Support" bool "OMAP IOMMU Support"
depends on ARCH_OMAP depends on ARCH_OMAP2PLUS
select IOMMU_API select IOMMU_API
config OMAP_IOVMM config OMAP_IOVMM
......
...@@ -2466,18 +2466,16 @@ static int device_change_notifier(struct notifier_block *nb, ...@@ -2466,18 +2466,16 @@ static int device_change_notifier(struct notifier_block *nb,
/* allocate a protection domain if a device is added */ /* allocate a protection domain if a device is added */
dma_domain = find_protection_domain(devid); dma_domain = find_protection_domain(devid);
if (dma_domain) if (!dma_domain) {
goto out; dma_domain = dma_ops_domain_alloc();
dma_domain = dma_ops_domain_alloc(); if (!dma_domain)
if (!dma_domain) goto out;
goto out; dma_domain->target_dev = devid;
dma_domain->target_dev = devid;
spin_lock_irqsave(&iommu_pd_list_lock, flags);
spin_lock_irqsave(&iommu_pd_list_lock, flags); list_add_tail(&dma_domain->list, &iommu_pd_list);
list_add_tail(&dma_domain->list, &iommu_pd_list); spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
spin_unlock_irqrestore(&iommu_pd_list_lock, flags); }
dev_data = get_dev_data(dev);
dev->archdata.dma_ops = &amd_iommu_dma_ops; dev->archdata.dma_ops = &amd_iommu_dma_ops;
......
...@@ -980,7 +980,7 @@ static void __init free_iommu_all(void) ...@@ -980,7 +980,7 @@ static void __init free_iommu_all(void)
* BIOS should disable L2B micellaneous clock gating by setting * BIOS should disable L2B micellaneous clock gating by setting
* L2_L2B_CK_GATE_CONTROL[CKGateL2BMiscDisable](D0F2xF4_x90[2]) = 1b * L2_L2B_CK_GATE_CONTROL[CKGateL2BMiscDisable](D0F2xF4_x90[2]) = 1b
*/ */
static void __init amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) static void amd_iommu_erratum_746_workaround(struct amd_iommu *iommu)
{ {
u32 value; u32 value;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#include <linux/cpumask.h> #include <linux/cpumask.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/cpumask.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/msi.h> #include <linux/msi.h>
#include <linux/irq.h> #include <linux/irq.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment