diff options
Diffstat (limited to 'arch/x86/kernel/amd_iommu_init.c')
| -rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 6360abf993d..3bacb4d0844 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c @@ -120,6 +120,7 @@ struct ivmd_header {  bool amd_iommu_dump;  static int __initdata amd_iommu_detected; +static bool __initdata amd_iommu_disabled;  u16 amd_iommu_last_bdf;			/* largest PCI device id we have  					   to handle */ @@ -1372,6 +1373,9 @@ void __init amd_iommu_detect(void)  	if (no_iommu || (iommu_detected && !gart_iommu_aperture))  		return; +	if (amd_iommu_disabled) +		return; +  	if (acpi_table_parse("IVRS", early_amd_iommu_detect) == 0) {  		iommu_detected = 1;  		amd_iommu_detected = 1; @@ -1401,6 +1405,8 @@ static int __init parse_amd_iommu_options(char *str)  	for (; *str; ++str) {  		if (strncmp(str, "fullflush", 9) == 0)  			amd_iommu_unmap_flush = true; +		if (strncmp(str, "off", 3) == 0) +			amd_iommu_disabled = true;  	}  	return 1;  |