From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932854AbdBPPrL (ORCPT ); Thu, 16 Feb 2017 10:47:11 -0500 Received: from mail-sn1nam01on0048.outbound.protection.outlook.com ([104.47.32.48]:31811 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932326AbdBPPqn (ORCPT ); Thu, 16 Feb 2017 10:46:43 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; From: Tom Lendacky Subject: [RFC PATCH v4 20/28] iommu/amd: Disable AMD IOMMU if memory encryption is active To: , , , , , , , , CC: Rik van Riel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Brijesh Singh , Ingo Molnar , Alexander Potapenko , Andy Lutomirski , "H. Peter Anvin" , Borislav Petkov , Andrey Ryabinin , Thomas Gleixner , Larry Woodman , Dmitry Vyukov Date: Thu, 16 Feb 2017 09:46:32 -0600 Message-ID: <20170216154632.19244.26080.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR17CA0030.namprd17.prod.outlook.com (10.175.189.16) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-Office365-Filtering-Correlation-Id: d017b52a-d9f4-43c6-a02f-08d45682ffe8 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;3:zK7D4N2kMR6vEDLGy+yZD8BxC2O1u5AY27jB3aQOnEFd3ZNZyZNBBFf3EymnrTjUSwUEglHHfleGbXGftGEzltuOQUpUOY26apbcIz5mTvz9OqeekqZep72dUmVba/gqDEZZJISsC54vCTb3KKSGnT+pF90gZgFa0LQDu6k5KYois8ONEWhCVN6F1XSGOgQNFjCy0JjN/94hm9E7P4iDyBvVhvIpe1bf6doNsEICivU9+qyBukcxfDiGwVX+rgpcE0TEjMl4lmktzRZl5Gfvr1SQdGLCNFmRClhEcwAd9ck=;25:ygg0IGlzJakfCoAicAh//pzZK0YOCSm19Q+0mo4XDGMzhOMcvEngLwAll9/euFczyDo4Gq6CZ58+ECllvVUHtgFTy0tnDQLtk/NyyK4twq114kU3axph5F0HNflD2tAyVxyeT5K55s9m7yUEY3eOqhkkfcewLMRw7et8uo9CVi0+EmXmUnw25XFwvDzv6GunZSZAXNWSZzERjd2zOAbGpK/AN2/SxRivKg4TUHpLyJLBG4z2Fzsf/YKWY2Os2QHSAI+u8v9XJAxUOzsU1C/xD6iO/d++seQ7Kxi3YS2d1jjtu08sSxKJxXA1ge9Vl4j0aT/7n6nmj3wd4V66Ik+6PEfU7yqQTFFmxQiqG8K2gvSR+njYJxy7I8JcAtd4s9zmsWGD2ySvaIhXln254PudXVnI/tm9+wFox7JbbHugeInGY+G9Lm/89yGIZivaj0LKU7EddvFT/eeunaHaEb4vxQ== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;31:3W8fZbmYraMtXM/apGaqto55gOh9GMZbynQcrwjvDNradwg4vUjJwmZJs5xcXUPIohTsE1yMsxtvE3m9ougBvb9ROud5ppZ+PmbJ/xoHAQ5UIXuniOfw6sRhtho1uj/cw03XUaD7YIHI5LTDepGKtD39Eh9O4pnAKr9i8ojFjzxPUtsux5Z5ednZth+qemwBWaGkRHjheSSSXHYRnOnWq6FTCjXqQYbrTjRuYxqwqYk=;20:bc/GDhdtN95m+Io81J4XqQsbow7TTHk8oYbXZjFoAe0Modl2J/i7sXf+OVmrem730snFxkeoBYyqhX7vY3bapgPXIOwjHgV8sABTyXZRdQCwCRYbgKCn8+m7V4MXlYDmJRqFuu0r9TfujdR3g3Vxq8abpJKUfeEZlO3nuB92KZa9VjIKbLFFOIP04cPQ4HAUeNt8QwBXRfCtkBPzk149ncZ6pLiEvcGdq1yIssacFCMCJ6yCFeFbpQC/9Xkru+Yt1ITW1eSp/uvzcLCZQN0dFlP3BcshH2xwz7qskXZJ90PGcMapxHtSYW9l62woh0t10caYCZct6Nh71e5rgCibOtyGQiw/YK7/L7YCjNJMHalKyMNOHC5d/noUoxlHQFPj80s0rCViEzUx3uuwKpgGP4PmWikDQBIGVhvmEyQsvHYeIzkOGAIScmw9LdVhy4jrj4zTsSX+R5IezlQVB5h0H/2J3a/o4D+O9YFMLOZhKNZ0EmLU17GZOviZe1hjW9Xb X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123560025)(20161123558025)(20161123562025)(20161123564025)(6072148);SRVR:CY4PR12MB1141;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;4:msJ+Nntjfrp9cKK+Og87L/k2P90IKTxpsFvBEn2cBdGhGjxitpEkmQrJFjXV7JIHqz9qauKWv7vd4CPwm5d6AxTOsPjlTPW4G9RHog1oqDF/ugBKvD4rkAMs/7hhlCX7psfc703Scp2NPzVn70NwcdogB4pesiuMKTM9B9/0kAr5KNp6zB9zFwyAmRC0FvpHPioEKR4mHYydb8m5iPlDwJPDD1IAE3a9DiuWIrZIEdA5+I/KfgIhRX/ZbRD110ihmirZOSwp78TnRQYkmH7jW5KYHtafIeXJbYB0m5pFpSgZwHlX4352sede404GmNRuY4OpkEDMMxgv8ZkCpobuxjMKAvoWsPSgZ85UnKTZ65jQtB4Ry7R1OF140xz03ARigNLIa0gBpGYWqkSd2zUVA/kGxBmzCZ6Sj63T6jhmJJGV80ua2eFtzHlR7feTuy0Rk3CodBuzeC6idxWPFqsy1xHXjKNCjNTwilZ+L/PItvsbtR5xOI6LeSqwvwGA6AeQ+UglxMFBvEE5Z5hfIPbXGCwJVmC/q6LprR9csUwPBplqdrNI93u7Ocs9NCdsvVjCmdDhqSb2pM4woAyYQ3z8qpVMiwvKTymgBz+KCOyqTyWT7mWEkKJ/OSk1s0ffc6PDmoMfcgW45IlCLtoNVuch312yhg0lR+a/egpin52dIBs= X-Forefront-PRVS: 0220D4B98D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39850400002)(39840400002)(39860400002)(39410400002)(39450400003)(189002)(199003)(1076002)(47776003)(9686003)(2906002)(66066001)(97736004)(92566002)(53936002)(25786008)(6116002)(103116003)(3846002)(54906002)(389900003)(53416004)(6506006)(23676002)(230700001)(4001350100001)(55016002)(68736007)(7416002)(83506001)(50466002)(106356001)(38730400002)(4326007)(101416001)(33646002)(6666003)(86362001)(2201001)(5660300001)(76176999)(69596002)(105586002)(189998001)(97746001)(54356999)(50986999)(81156014)(81166006)(2950100002)(42186005)(8676002)(7736002)(305945005)(71626007)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1141;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOm1vVVV3b2JRNlN6K3dTeVV0SzZaZFVrVGkw?= =?utf-8?B?cHVKUEdXYXo5WHh4TWQzN1V5ZThhVjl2N3FzNFZOSkJ4NjV6OWtEQ2R2REJT?= =?utf-8?B?cWV6NkdtK0JMNnZpajM3S1h3TEpGOVd6WmJSVC9GY1E5TExVQ3B2QUdGYzZY?= =?utf-8?B?akR5Z1B6K09xWXpidTIvRmo4VVNmYkJCRzMyM1NBaXFqamU3Yy81VXZ0S1ph?= =?utf-8?B?S2V6K1ZKOFY0U1Btcm9zbDhCWVNLQndyREFPMzZUbE04T2MyVGRqdERLOFpH?= =?utf-8?B?QXZUWkJ6U3hSZDZvUmJBOS9ObDFRZ3grUG4rRnJQUkx1c203RXVua3BGaDQv?= =?utf-8?B?VitMK1lMVHpFbzVCb3lldUxmSVlmWko4MzFFd3FSV1RIK3U4M1FQZ0Y0MUI0?= =?utf-8?B?QlZPL3dyR0Jkczk0U2FxVUVxOHJkeUFyNXcwdVhmZ0I4Vmw0OHlCc1RPcGxC?= =?utf-8?B?d3dSVGxuM0ljWjRLV3d6LzhOMmdlanZOZllsK0dNL3JUOWlCR1l0Z0FtOU5Z?= =?utf-8?B?bG9vQ3NXMlp3K1lEb2M4RElMR0FWMkZiL1YzREYwbExoRmJrQU5jOEJrWG9w?= =?utf-8?B?TXhDYUl1TE9xTVQwK0VmRTlBNjhzVWJnTmZYMHRQT3RqYjEwazFLM05EeU1Q?= =?utf-8?B?OWtrRE12cU1rQUtRSWk0MHoySFI0VjJzeFdBdC94ZWY4U1FkMHc0RThibXgz?= =?utf-8?B?UlRncm9MUU9wREJGUHovWGc5WFZqRmUwbDdBTThvVWxxWWhzNk9MWFA5R05l?= =?utf-8?B?TU9tY1lMc3N4eGtGS2RLelU4WkNPdEVoam9KSzkxQkZQZ3h3V2FTYjNJcUg5?= =?utf-8?B?Zllzc04rcmkrWmNiaUlvdFRqOFY4YWQwL2QrRCtGdlMxaDF0UTlvbjJ5L1Q1?= =?utf-8?B?Wk80WUFMaThHR2tiN3lCUHFIcW5Xbk9lSngyS2xqZEJKb3F5aDd1UkE2RDRP?= =?utf-8?B?eHhIWmZTZ3k4c1lVNTNwYnc1QWMxOWFKcHRxZGh0VHp4L2x0ZE1CZXBLdXdk?= =?utf-8?B?Z2Nvb2o1Sy8xRjJWNDk3Y09nTzdNdTBBZU9WM045NnYwV1JDTVZjTGVpWWtp?= =?utf-8?B?L0JCSEdGQkQ2NHFxcWpudHVEZlFRdEh4TFRVMkdGbGswV0lTL1F5V2xlMWRI?= =?utf-8?B?dTlrTkFxWnlKYTNLZ05qajVCWTlHR1d6aFBJc1FzdHF1RFFjZENxeERENHZ5?= =?utf-8?B?d3R3UW9XSzZ2YVZHVmhUa2M3aFMrbmV4V0g3Q2NLbU41ajE0b0ZtR3VSNEw1?= =?utf-8?B?T2dTc1RJY0dyM0ZLUFdSMHhDdXR6S3p1N3dFS2tDUzVRVTZVNGFLU0dQYWZH?= =?utf-8?B?WU04SkJTOXFDR3RKUkYwY0pqTEMrUkxYc1hjMmtHNlA1dGRiRTU0d1JKZTh4?= =?utf-8?B?QU9hcTNOMW5ueXh6QTJ0eFl0UFI1S3YzaW5YdGZGbGRjK2tUZUJMQmhaTGVG?= =?utf-8?B?aFdlQnJCN0xZUW5IRnNDZnpSM2tXUFJ2VU42L3BxTHpRdnhlOTEwOXhZMlVq?= =?utf-8?B?eUF6RWpnaWphTnZSZmlNMlNpT1FVc1ljc1dDa2dZVSt6bEV0VTl5VVh0WkV4?= =?utf-8?B?NHJ5b2hyZnd3UTdESVZiakFsMmVqeDdQSndMYnM2OEg3alBaN1U1RFFYSG5N?= =?utf-8?B?NTlVWUdZdlZmSDdPbjd0cHpUd2x6d1c3NWp5WS8rdEN4azBDaCt1SUcrRmNq?= =?utf-8?B?WWZURGxhRHlGREphWFVHY0hZd2xjeERISEc1SHJBcHMvdG4rU2tFMk9vNEtq?= =?utf-8?B?bXYrVDNIVkFmanl6aXU5RmwxekpOdHA4SlB6ZXVoRXo0SWFiNVhUbFJuaHNy?= =?utf-8?B?MVBYN3JZdzQ3NW5hL29ieVc0VFhtSzBMVmppa3pXZFZLSGZ5MWtzZUk0UUNj?= =?utf-8?B?clQ3Y0tUWjQxRjRJZTdCczdmOXdmanIvS0s5ajFSeVlPSFlhUFVaUVlpTlBj?= =?utf-8?B?c08xSzJ5OEhnPT0=?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;6:nfYo5Cx66X/9UpMD7XhI0b93RFwKXBKkm6a+MvKriqFZJQ48PY0k/RFVj1EtFaoeGWQabRdxSnEJYFKIMMOq21JRoClXQYZLhiSR5fAFyNvU/NHzConL6Uhr0zW8c85UzGNUGNnpImsHbcoof+wxAk8KWexr1MrMWHAXEZRd0OTLVBYg2t4rouoA42+VSjSOR8m8664gvzT+q5DghbRAj0q5tBywyjjz6zNCuOGffuVXr7rfhs0WTRfSq5i/rxeLHTuV3Gf/hRFIRsfTyDFFoLUyQSKNGIxFuUAG7QlgBowKOYS5dqKwUjeEq9nqS3Q4qD3kiH2xuGesnq0VrS1jL2nXj0Z9Shov4k/+hJeZmOfoWaEY97djGaYo6g0jiqwBxQ0wYVaXjCSLy52sVev05GTdgw51A5+quL4rupfGmMY=;5:rjYKXmVKNSUGzyqSd9UQlV7vseyIlCNWhsb4KATzGWI/g5KYqhbuRbRwhJM3r0aMRTMVeNvP1qiPcNsRGtmb1CSSb0GT+QXY/YYvMBm2rK3dgR4xdEiDh31yO3zUkhIzXCpm17YzMEK/xSqHsTGjGA==;24:fJ4IvQrVrgfH5baTRxPo3kFZRc3W6kP42qoVzmr9eSf+WKsp2InK7qgQGX0sjrXzC4K0nE0x/nq6TNlh/JuSRmRH4mTGUDoX4wMAJVAxDSk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;7:IHbrxfl4VLcN9XzI1hkiWyNXZ7YMiKFeCDLSccGhWHPBrCjnO6OfhMsYr5cNSq8KtO57vsEXz4v+jesHIYpvlbKW4+On04nAnf1d6P6VCFb9liG0xSQzoWuybv7WNbAt0B2dPPEvEybcCvxeiQ9WpG9IJL4VHrZaL6EBGULMw2xuXow0uvTglDu9ag+WfsfX5/XsniF57sURg53dUbFTrE+m9LlEgCpQK483Ktbq1C4GBF4vb0s011jgNNCPYvf/zrD19Xuxc67XzubwvQLKsKoPYhzwZeIhEnxmhTxiyO9g3F5s+tljgRFH7n+4dt6nBcUl54V6neMjSxd3khHv7g==;20:HAQJF42OkJFMNv0+ThVgkDDuLD+DBQ/rlIxj6t4Zv1Of8p2FKp9t8P9Gomaazw1K3toWa9gOp9IIhpxh8xAW4tXZflSjRJiPh/F02K0SBBiJdvD2yqlKot355SxuQl5VFGRFzaonLKe7tGfhFoiSsfjxAjpkYI2lBKiO/8iBKZ/AwXAHNt5xp8wVNHwjDZi1ks8s1Ju7m7pvtsxt1Ha3lUdPPIvxANxwgmfXWRw0JWkk9tDXbKCqQTJ2ICgGI9SW X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2017 15:46:36.4060 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For now, disable the AMD IOMMU if memory encryption is active. A future patch will re-enable the function with full memory encryption support. Signed-off-by: Tom Lendacky --- drivers/iommu/amd_iommu_init.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 6799cf9..6df2dd5 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -2544,6 +2545,12 @@ int __init amd_iommu_detect(void) if (amd_iommu_disabled) return -ENODEV; + /* For now, disable the IOMMU if SME is active */ + if (sme_active()) { + pr_notice("AMD-Vi: SME is active, disabling the IOMMU\n"); + return -ENODEV; + } + ret = iommu_go_to_state(IOMMU_IVRS_DETECTED); if (ret) return ret;