x86/amd-iommu: Remove support for domain sharing

This patch makes device isolation mandatory and removes
support for the amd_iommu=share option. This simplifies the
code in several places.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
Joerg Roedel 2009-11-27 11:40:33 +01:00
parent 171e7b3739
commit 8793abeb78
3 changed files with 2 additions and 28 deletions

View File

@ -451,9 +451,6 @@ extern struct protection_domain **amd_iommu_pd_table;
/* allocation bitmap for domain ids */ /* allocation bitmap for domain ids */
extern unsigned long *amd_iommu_pd_alloc_bitmap; extern unsigned long *amd_iommu_pd_alloc_bitmap;
/* will be 1 if device isolation is enabled */
extern bool amd_iommu_isolate;
/* /*
* If true, the addresses will be flushed on unmap time, not when * If true, the addresses will be flushed on unmap time, not when
* they are reused * they are reused

View File

@ -148,7 +148,6 @@ DECLARE_STATS_COUNTER(alloced_io_mem);
DECLARE_STATS_COUNTER(total_map_requests); DECLARE_STATS_COUNTER(total_map_requests);
static struct dentry *stats_dir; static struct dentry *stats_dir;
static struct dentry *de_isolate;
static struct dentry *de_fflush; static struct dentry *de_fflush;
static void amd_iommu_stats_add(struct __iommu_counter *cnt) static void amd_iommu_stats_add(struct __iommu_counter *cnt)
@ -166,9 +165,6 @@ static void amd_iommu_stats_init(void)
if (stats_dir == NULL) if (stats_dir == NULL)
return; return;
de_isolate = debugfs_create_bool("isolation", 0444, stats_dir,
(u32 *)&amd_iommu_isolate);
de_fflush = debugfs_create_bool("fullflush", 0444, stats_dir, de_fflush = debugfs_create_bool("fullflush", 0444, stats_dir,
(u32 *)&amd_iommu_unmap_flush); (u32 *)&amd_iommu_unmap_flush);
@ -2135,11 +2131,9 @@ int __init amd_iommu_init_dma_ops(void)
} }
/* /*
* If device isolation is enabled, pre-allocate the protection * Pre-allocate the protection domains for each device.
* domains for each device.
*/ */
if (amd_iommu_isolate) prealloc_protection_domains();
prealloc_protection_domains();
iommu_detected = 1; iommu_detected = 1;
swiotlb = 0; swiotlb = 0;

View File

@ -125,13 +125,6 @@ u16 amd_iommu_last_bdf; /* largest PCI device id we have
to handle */ to handle */
LIST_HEAD(amd_iommu_unity_map); /* a list of required unity mappings LIST_HEAD(amd_iommu_unity_map); /* a list of required unity mappings
we find in ACPI */ we find in ACPI */
#ifdef CONFIG_IOMMU_STRESS
bool amd_iommu_isolate = false;
#else
bool amd_iommu_isolate = true; /* if true, device isolation is
enabled */
#endif
bool amd_iommu_unmap_flush; /* if true, flush on every unmap */ bool amd_iommu_unmap_flush; /* if true, flush on every unmap */
LIST_HEAD(amd_iommu_list); /* list of all AMD IOMMUs in the LIST_HEAD(amd_iommu_list); /* list of all AMD IOMMUs in the
@ -1308,12 +1301,6 @@ static int __init amd_iommu_init(void)
if (iommu_pass_through) if (iommu_pass_through)
goto out; goto out;
printk(KERN_INFO "AMD-Vi: device isolation ");
if (amd_iommu_isolate)
printk("enabled\n");
else
printk("disabled\n");
if (amd_iommu_unmap_flush) if (amd_iommu_unmap_flush)
printk(KERN_INFO "AMD-Vi: IO/TLB flush on unmap enabled\n"); printk(KERN_INFO "AMD-Vi: IO/TLB flush on unmap enabled\n");
else else
@ -1387,10 +1374,6 @@ static int __init parse_amd_iommu_dump(char *str)
static int __init parse_amd_iommu_options(char *str) static int __init parse_amd_iommu_options(char *str)
{ {
for (; *str; ++str) { for (; *str; ++str) {
if (strncmp(str, "isolate", 7) == 0)
amd_iommu_isolate = true;
if (strncmp(str, "share", 5) == 0)
amd_iommu_isolate = false;
if (strncmp(str, "fullflush", 9) == 0) if (strncmp(str, "fullflush", 9) == 0)
amd_iommu_unmap_flush = true; amd_iommu_unmap_flush = true;
} }