Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8793abeb authored by Joerg Roedel's avatar Joerg Roedel
Browse files

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: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent 171e7b37
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -451,9 +451,6 @@ extern struct protection_domain **amd_iommu_pd_table;
/* allocation bitmap for domain ids */
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
 * they are reused
+2 −8
Original line number Diff line number Diff line
@@ -148,7 +148,6 @@ DECLARE_STATS_COUNTER(alloced_io_mem);
DECLARE_STATS_COUNTER(total_map_requests);

static struct dentry *stats_dir;
static struct dentry *de_isolate;
static struct dentry *de_fflush;

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)
		return;

	de_isolate = debugfs_create_bool("isolation", 0444, stats_dir,
					 (u32 *)&amd_iommu_isolate);

	de_fflush  = debugfs_create_bool("fullflush", 0444, stats_dir,
					 (u32 *)&amd_iommu_unmap_flush);

@@ -2135,10 +2131,8 @@ int __init amd_iommu_init_dma_ops(void)
	}

	/*
	 * If device isolation is enabled, pre-allocate the protection
	 * domains for each device.
	 * Pre-allocate the protection domains for each device.
	 */
	if (amd_iommu_isolate)
	prealloc_protection_domains();

	iommu_detected = 1;
+0 −17
Original line number Diff line number Diff line
@@ -125,13 +125,6 @@ u16 amd_iommu_last_bdf; /* largest PCI device id we have
					   to handle */
LIST_HEAD(amd_iommu_unity_map);		/* a list of required unity mappings
					   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 */

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)
		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)
		printk(KERN_INFO "AMD-Vi: IO/TLB flush on unmap enabled\n");
	else
@@ -1387,10 +1374,6 @@ static int __init parse_amd_iommu_dump(char *str)
static int __init parse_amd_iommu_options(char *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)
			amd_iommu_unmap_flush = true;
	}