Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2053915pxa; Mon, 24 Aug 2020 03:56:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwD5ZEkMr6X2kvI6uM3UT8decafRbnughdIrQxITfT1Mgzq4LvzraGFjJ794OHBCmnTcSvn X-Received: by 2002:a05:6402:2039:: with SMTP id ay25mr1358968edb.87.1598266603979; Mon, 24 Aug 2020 03:56:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598266603; cv=none; d=google.com; s=arc-20160816; b=WtPFU0XKC5AXUL6Gvg6jHPPSkQ32VYdDpfwgjTs7CGHEQjEgQUJxNzJ/s6fD0Twdx7 rT73Y1vFLTmj0FGt3f5RUaydU2nS1IN4pk+OqVTtLisTB5Wr019S7wa7CEM4eRajwYWE nXg350F/+Isle6Jk9l5mujZNDdq8QemsyWVhBVp+R3I+dkzcUlAgCQR7wVS5Xwd193NG kG8yubrs/9wy16YcprWlO9/z9NsVdXiXEwmrZT6BF/PK8kMZUwNY95CYYUTWXfeygfY+ v8SGvvYmBrVOLq+WQDrlH2dbBxN130JSIcffxlYNOiwrwmcaiM0hTE2OfxHRWgcKGRX9 ImWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=wxXoGoRHO84a7DjX1xP5VFZio0bsaXNeRiTallxLO7k=; b=K/LFV3B90eWK3NDISXopKysaHUaZ+msQlRzfeSTNjHxosG3B2yI4JBPCCs2qa8vBKo sYrkpdnw+uSGIJNOz0ibGBEFfGQWjd1J0rUm/2iyEDMhSR+6H+pOGKAldBxQdVkSFUrT My8lOf72Ls3pEDd3mF0/fmssGYsTEmsqVWi4IR4Pd3WjuLSYrGmhYGDoWYcs4Gr6f3Pu FSHYcDBRPczrZWsL/uit3D15gp0WWAHr/93rvgvABgIPkITNigXB2qm9Mj0qLjEVmyTf WHO8ji9+lOlxHBlsQhCSIdeJaiBlfsKGrtjsEYu/vf7L7ggkNDzU3sCLEEmf6+C+29vL JJeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=8bytes.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bd6si4333917edb.493.2020.08.24.03.56.21; Mon, 24 Aug 2020 03:56:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=8bytes.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726727AbgHXKze (ORCPT + 99 others); Mon, 24 Aug 2020 06:55:34 -0400 Received: from 8bytes.org ([81.169.241.247]:39232 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726532AbgHXKyT (ORCPT ); Mon, 24 Aug 2020 06:54:19 -0400 Received: from cap.home.8bytes.org (p4ff2bb8d.dip0.t-ipconnect.de [79.242.187.141]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by theia.8bytes.org (Postfix) with ESMTPSA id 77D9E35A; Mon, 24 Aug 2020 12:54:17 +0200 (CEST) From: Joerg Roedel To: iommu@lists.linux-foundation.org Cc: Joerg Roedel , jroedel@suse.de, Tom Lendacky , Suravee Suthikulpanit , Alexander.Deucher@amd.com, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] iommu/amd: Do not force direct mapping when SME is active Date: Mon, 24 Aug 2020 12:54:14 +0200 Message-Id: <20200824105415.21000-2-joro@8bytes.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200824105415.21000-1-joro@8bytes.org> References: <20200824105415.21000-1-joro@8bytes.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joerg Roedel Do not force devices supporting IOMMUv2 to be direct mapped when memory encryption is active. This might cause them to be unusable because their DMA mask does not include the encryption bit. Signed-off-by: Joerg Roedel --- drivers/iommu/amd/iommu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index ba9f3dbc5b94..77e4268e41cf 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2659,7 +2659,12 @@ static int amd_iommu_def_domain_type(struct device *dev) if (!dev_data) return 0; - if (dev_data->iommu_v2) + /* + * Do not identity map IOMMUv2 capable devices when memory encryption is + * active, because some of those devices (AMD GPUs) don't have the + * encryption bit in their DMA-mask and require remapping. + */ + if (!mem_encrypt_active() && dev_data->iommu_v2) return IOMMU_DOMAIN_IDENTITY; return 0; -- 2.28.0