On 8/19/19 8:22 AM, Joerg Roedel wrote: > From: Joerg Roedel <jroedel@xxxxxxx> > > Using Passthrough mode when SME is active causes certain > devices to use the SWIOTLB bounce buffer. The bounce buffer > code has an upper limit of 256kb for the size of DMA > allocations, which is too small for certain devices and > causes them to fail. > > With this patch we enable IOMMU by default when SME is > active in the system, making the default configuration work > for more systems than it does now. > > Users that don't want IOMMUs to be enabled still can disable > them with kernel parameters. > > Signed-off-by: Joerg Roedel <jroedel@xxxxxxx> Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx> Tested-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > --- > drivers/iommu/iommu.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 01759d4ac70b..ec18c9630e93 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -119,6 +119,11 @@ static int __init iommu_subsys_init(void) > iommu_set_default_passthrough(false); > else > iommu_set_default_translated(false); > + > + if (iommu_default_passthrough() && sme_active()) { > + pr_info("SME detected - Disabling default IOMMU Passthrough\n"); > + iommu_set_default_translated(false); > + } > } > > pr_info("Default domain type: %s %s\n", >