mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
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:
parent
171e7b3739
commit
8793abeb78
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user