From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754910AbdEDOZd (ORCPT ); Thu, 4 May 2017 10:25:33 -0400 Received: from mail-bl2nam02on0071.outbound.protection.outlook.com ([104.47.38.71]:58597 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754623AbdEDOYW (ORCPT ); Thu, 4 May 2017 10:24:22 -0400 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH v5 06/32] x86/mm: Add Secure Memory Encryption (SME) support To: Borislav Petkov References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418211727.10190.18774.stgit@tlendack-t1.amdoffice.net> <20170427154631.2tsqgax4kqcvydnx@pd.tnic> CC: , , , , , , , , , , Rik van Riel , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov From: Tom Lendacky Message-ID: Date: Thu, 4 May 2017 09:24:11 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170427154631.2tsqgax4kqcvydnx@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR03CA0040.namprd03.prod.outlook.com (10.175.124.26) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8d7c8155-42a8-4531-88ee-08d492f9410a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;3:7cvVViXkJJRG4QQ/D1rLmN7iyUJDSpAVVM5I80L0Wzpya1+IY9Wq6BXi7DbItDmxYhgjP0/b3GC9zSBo+MSyzOt6r2qtLPWPzgAnutHmJmXJJaemRceGXE3fEgZT88HJBzuWUIF3enSa9MoN7uDBiAhopWyZD+Pn5yxQCPFVekCEaeuWz0lbjmhirnLaU8PI/qLxzs1zkgJ99beggqLUOaIKdWT9aMLjpeVzA+xhHmboYQXAA0JLrFwUhecC8X7PXj+0Y+n38pq3p3RvFDRUBKepWRccmQnHytFY6S1uDOxw+xiec38+eTRk/wG+Si42VYVmH8ZuikWmaXJg0r++Wt4OirIEmaSB6j1OknSw6wc=;25:9zmsqlpG6cA5bizY6A13YGYYWiQ74la1UcuWQHUrj598Vjl0KrqIVxm5R5y8jWd6JuLpSNNvi3MB4I6Ayh038S/quXImhclV65aAXYhimpcsTfj80vaZZx+EbxgS46NzmhYxVkTh9RAyJYycFdN8qo1JLFGKA5FjpFOkWu5C6KLE7Oa2zMhEb/1SI0r/S0WtJChcPoZWZXcQ2XDVPFURy53W2gOvCfr5bIqNlFhLKg8F5f92YrQHS9nexCV2/25+mP7cp3XDGv7xJE2ZFa/wxsCXl0/EUy5r3cXml2QHGXg8XbHI6Nj/v2GrYB29PYcbmUAlhCir7L4cLFpQOiiFYBcZZqKqbIc7cxFyrLyYt23xR2WMw5uh9KLoVLn8oiWR7qeyuClrV7aLLAFfUjmAfNIYHvlNteZmPSRbAPDWL/945wjYN//ybzps2pU7u7jK X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;31:Y5W+u7sEf2atkZ8B4VYmJM+N4ArkCoyWh2H/HfKFgPEgW15XESw5k2zBAx7PVDUYYz8DQkSSFxAsL+pWrynWMEPV/TSdUtU/fwXSOMWrCQgiycKQ1DS3n+gbsWj8+SY8WbovGkiQfLjI6Uxcprb81y2ivRnmyAtITo6Vlx4dbuvl3EToin40cOZZlCjXp7xqicUQ3nL2NGZ9ilLFgxTah8/Wko7KRUrbdHqfANvN8sU=;20:x8c1uWBlUGfxXqQhhJLOFWmZXAYYEi9p5SUrKGjIry6EoACZx6FREX6r9styTT8YcKmtl7+/4H9Z6FUEtoxvRgG/ajo8F4CrWycyITAKl29WcD5aS4O0ROUnkDLTm8EYPMyQzUoGNq9ZZyQNh93mGygkQ0pfHYF20ZH+Bc5/gndeifdEdj1ODFIOaZYe5ajrzdEyEMsCEiHQ2fQndS3AJK+OJAak0Ml2jinyeS5JJhoWAsp7MJRU1lmpjRcJQMul154UTA4GxzYSIs9Y8XQHvEpBqKY3GUFkaF40hhgLXX8exZVJobfdfB2FUI0WL2RY7CAESZ9LScY4RMJ57DYvY5tM2PQQqrsY0mZ/AisR6F4lxABdHikq/q0bXdfPQcc4853bWB5fDexV/3FyZHynIdZQa7qnNW047kDyxkoEIpK/wzRr9MEFLoJ9HConSt8aJlrMJmovvjsChWpsVOHvilI20lFUrz7Xcqd9Mra+hQiys22UndcoICIFJy8yTzLp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(6072148);SRVR:CY4PR12MB1141;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;4:bpxanbcOfYSAzygcZ1xWr7RsCe2reFij+1ssbqkCc4SdRPugVo6HgW2zDVkgRrAokdQa71PV7dcsgFVe5dH0cpNtKa2mNF1+StKwOtfDD0XIVxn8gR4OcuH4Pc0JzLqD0b/d50WQTHdGTa2ZXTEBJg8ZCebBQc2LBodWs2n27pR89b/VIdJxSnWuGlroEL7jthtUL8AjOaz6mBQ4tXGbRg7nDCzk4ilQK3Ecl03Nl3rNLpgjJx91hLw/Zx/SmOWzcVm5H4v1aSO4g+nnqaAus8E4AM5vbqMky7R12J1krLvJJNqAjLy09MA4JJoBRAa8tubkiQQQB1oa61kxyyrs9jpbjROl9bPmCYEjVSFjvl1Y6mDct9xhxx6VnARCY2kW3RTxGJq+AWKobbLEfMxi9nMemiZGSkJJxLyIkWu5vc9ou2OGdkaj9PnBHFags5DkZTN6aWXhgY/R84HJJSMQ+O50UzApK18qmRN8ePgWNXi+qaclsDJCUGkpPQL3kKA3OetEEjRv5BmJp9jJAcpGYKnJmuErUINEX+k15gSKST4YIr8Uew2+8PQ0uhmVpClixAdu966nTeYQkQXXOq5CLljz1J33D2WNxwir8lRfJcgtE0aze6IU8Z0RJ33ygMKD6k80XtiOJPfB0gziolw7mVuUBTzdUV/nWpdXPa6dUv92oJkbE5ZII0oo1rqb0Db8Zj/6W5DQq9AtZSWxzOJorlxC8jQyEBsRdgefWJQwy+OCeFMCIWQK87QOtUXypIGkIvkOCEde6B8FaJIdNjoqt6SypQvSfpJo6WugZ+m5EPToZa6QiwgkqJueq3y74lj6fQryiNf0nrwTlJk0jOO2Cg== X-Forefront-PRVS: 02973C87BC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39840400002)(39850400002)(39450400003)(39860400002)(39410400002)(39400400002)(24454002)(377454003)(8676002)(33646002)(83506001)(4001350100001)(6116002)(86362001)(50986999)(6666003)(3846002)(6486002)(77096006)(230700001)(2906002)(54356999)(81166006)(76176999)(31696002)(4326008)(53546009)(3260700006)(25786009)(42186005)(229853002)(50466002)(53936002)(110136004)(478600001)(31686004)(6246003)(38730400002)(36756003)(7416002)(66066001)(64126003)(189998001)(7736002)(2950100002)(6916009)(23676002)(305945005)(5660300001)(47776003)(65826007)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1141;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOm1CK2ZacmhManlaSnVua1M3bVJXa1pRK3lh?= =?utf-8?B?Z2JVS2xBQWJHNnpmQTJmQjdhR3FGNGZoSGdKNVhPNkZEZ2ZBNXUxVlZRdFA2?= =?utf-8?B?NXE2a1A2alB1MS9HUlpueERqT3FQRFVMNUFsbnc2YUpDS0FCRU5pd25UNlBY?= =?utf-8?B?S2VLeTlLU1R0bHlWQ0JScE02cmdFMjlZbW1XVktRZGR2TWExZWpqZ3dlWGtl?= =?utf-8?B?d2tjaDBTZVRSTzU0RW5YVmJRRG1iNXlVRXhYOWd4dTdFUDdtMzNBV2JTWW4x?= =?utf-8?B?eFNLMmJWTjNoYi9LMWsyaFV0MGE0RTJMZmtMeUlNVjhJb3Zhc1NnL2FmZUx2?= =?utf-8?B?TTllUkdEYVpnaUdyazN2YndJTmk0KzVJQWNUNVJXY1dqbUtxNUplcVZIV01z?= =?utf-8?B?MTVNY0lsbC82NURzRGo1VjU2WVFJdDBHTUxuTHduQzlTeFhoTlIzWVVDMjRT?= =?utf-8?B?S25pUEpiRWMzVU1FQmppQlFrbEl3Q3V1RG1LdDFHaS9GWW5CYTlVcXMxTmdD?= =?utf-8?B?SjQrR1pMZUdvZDZUVFdPY2ZtTjU4MWZLZ3plbUNoK0JYcTM0VnRqU0NLZFZV?= =?utf-8?B?Q1NKNDNwZS9UbGcrSTRFSEc0K2VkS3k0Rm41MmN0TE5CMXkxN1E2bUdSakFo?= =?utf-8?B?aFRlVVQySjZObU1nY0Z5ZlkxWk1Uc3NUVllQQmx3T2t6OTNpUTJVdm1Yd0M1?= =?utf-8?B?ZE1sMmYyNXBTVXZabEhyYU5rLzhRL21qTEZ4R3ZLWUpUdlhkTTlHWmQ5ZmdQ?= =?utf-8?B?WFIwbUZscTFIUzFuY1l0NzhCL01yNGlOOERiNWlVK1cvMFFTbEtxdXRodjd2?= =?utf-8?B?NWxlVVU1aFdSeFF3a2orTEdKSmllOWlVWmE3dDlmajFuNVo1WU0zemIvQkRE?= =?utf-8?B?RHA5aVA4VVo2S0xwVmFuLzQ1Ry9TSW9uRXdtLzRQSTAxYWZBeU9QNzVpZ0tu?= =?utf-8?B?ajFEVWgvNkZTbXozcUx0NS9hMUFMNHhvRE9uRDNFRU5hMDJIU2NQMWVyWERG?= =?utf-8?B?Z3FmU0Zsd0dWbjY1T1dReEFud1VPVEhMSHR3SUdZS2JpTm1tVlBZNUVrVFgx?= =?utf-8?B?NVRkM28wb1MveVFiVjBVYTArdkMzeTRrUm1IZTN4N3h1WTBaVjNsV0tEL295?= =?utf-8?B?bHRGVHNRRDNjdzNZQVJGK2JBYnBSZUo2Z3prYzVYeWY2V1czVVQrMERhUUx2?= =?utf-8?B?RVJTL0RsSUJIbUxoREZSUXBycmE4OTlvb29XQW5ub0NxZEhsQTZqU2tZWmdk?= =?utf-8?B?L0VpcVZYMmlaU0ZRU3JzSm44bEVaOERwTmlPTWhsUGY2NkRuekFubmhxTDFv?= =?utf-8?B?SDdldVN4dFh5L29iOU5UdldYQU4xdmZheVBPcjV4bjJIVXJYanRnbjBxNU1C?= =?utf-8?B?czExU2c2dlhsdzE0aFBuUlAwdnRZT0ZRNVVVYlFBTkV1RzJRQ0tXVHdLekg0?= =?utf-8?B?QkxpUmNROE9ZTGZ2bFdkZ25TbnBtbXZVYm1IM2pnYWhqM09vR2orM3dwVTFE?= =?utf-8?B?NWI5RDAzKzFRdEhxTU1FaitVOEhwazZKd0c2ZVRXZmd4ZW1ZMG5BVExkQS9E?= =?utf-8?B?SWF0REgvUFlzYWM4UDUvWjRYQ2R6cmt5ZE04a08xanFodWtLYWt4akRyYlpu?= =?utf-8?B?ckFBSEpwbE5hUmNaREpaOUgwL0ViLzF3SVdJOC8zcitCY2QvVTdQaG1YZFdF?= =?utf-8?B?NHBSZVZqN2ZWeDYrdnlhMU9CakhlRHFZazFkMS8wODd0RjNDK3B3TDNndzBa?= =?utf-8?B?Tkw1TXpKUXlqVWZhN0g2ZDVudzhTRjJUSFU0b2g5Tlc0ajhvTGRGeGQwVGxt?= =?utf-8?B?OWM3RnF4d2lrOWRxRFk3UWxxK0xRTytBQW4wTnNrVCtXYlE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;6:9akgCJPL5Do7z+uyiQPQZqZ5QQXEPJFVOUMB51PPVOsac2jNl075HsuGE+N5ojc9ez6WcdX5LBy3TNUAPPWY7O40d0xpwP4PFlKPkvwUnRTlJYQhQ6tcIyLHm1TsRapbW2ggwXSUQGBcNkarGGhOp+VdaFTmdr6tp8idanKMKWgMi/MIoYMyisYfz/FrjkXGD69sSk10hXJYmAwKvhF5dN82SO//itIOob0py2w85o12E5yy+p4NxZQ8oeZl9b/EMTny7E6qGU93NskduyqYJl5yH2hDJ2Vswfi9JW3rRgAWbCHBkhyvMNlM6P86WaNAj0pvbyFOxdGxE4xfQEpQf+GB72Nq2xef2DLvufYtCH838lkiBngJ9stdF0/qCe/ajlNVLrgZF/vJgLy12mOfGvaznRfa+6ib0pMWDCk7uePIGMSuf203klqGf0LOoVKcclWh/f5BxnEPQ699NWEVm6ANjnDcbXKvLdJcEb3RThi2fJqdbbuTHgF9rMEuCjp4ROdAo2K4eGOYdixrgD0KC2xj8Pr+JOntvoOeqS4oW1s=;5:mYmAHjL3n2L4A5wMsAOGLedLesWeQ3uFvWB51ByXHJOxMV6lNR0ERtz7AvHW1z7j3SaUgvVyGHJuepa4kRuk6eDoO0Q9Er9MFKPxj+TfArkYa8A38Wm5kjN7SQhwTqCNmL7N5Q42RX4UXl6AlWZtOg==;24:itNUABTjzSnVdoI1B1pYvP3eruYwToScerJd+oDgIMEO9m3SekiJ/XYmuNOnD6LMYiQowzbUFJeW4B1YBZeUCo/7LcKMC7p9FiJ/U92fuog= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;7:M0DY6BktB6xNLVVgXsXYweMV8FvxM/9vI/97i4DGG9DB29J5NW2PuJKoMRT/9MSScOCQeJLS/v0NCL82TJ+E7xQvraLuQe3WdQhqLVr7tAoz/XpPapgSizGIDYv6fpSmTuYjkh/pSR1YgQKyCvZH1nI4wFe66t9vaxOjnFvrsoBThFwgCX2248Zxlmby5KLP/MT92odN55vhwQxj/QID7Vk39ANCle8/gRsmdv3e+39EHOwOFowqmzkXe83n2Uk5AN+J4U407FQZ3WZLEqSjkoCWhAFJhcDr84MSkQWJQn7ZV8hdaT7Spwe1meCmia0vJvzOBp6gO26mY+pT0SdNtQ==;20:jFkYXgAe1q4xRixc4cBkQhp2cyKAcUb65JnXjOCR5t8OUygSJwICZOnk5GaYSAns5IUB4DJJNk8BWxDk2eT80eSqw1XAQorJ6k0hkl78A9FlTVqhsAnPztN8y7VE5lTTbQ49Hmm8o+jrMXvT2MoL/ioIT0kx6FYdlLMzXi4UNe+lz5CS/kmBlH2lYb96Lw3zUkjDffWR/+Y+0qvNfqKHokLC3QJMRHUlyB5uwaHsfoxIPV6N43yLQf6M+joMYyPp X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2017 14:24:16.8726 (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 On 4/27/2017 10:46 AM, Borislav Petkov wrote: > On Tue, Apr 18, 2017 at 04:17:27PM -0500, Tom Lendacky wrote: >> Add support for Secure Memory Encryption (SME). This initial support >> provides a Kconfig entry to build the SME support into the kernel and >> defines the memory encryption mask that will be used in subsequent >> patches to mark pages as encrypted. > > ... > >> diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h >> new file mode 100644 >> index 0000000..d5c4a2b >> --- /dev/null >> +++ b/arch/x86/include/asm/mem_encrypt.h >> @@ -0,0 +1,42 @@ >> +/* >> + * AMD Memory Encryption Support >> + * >> + * Copyright (C) 2016 Advanced Micro Devices, Inc. >> + * >> + * Author: Tom Lendacky >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + > > These ifdeffery closing #endif markers look strange: > >> +#ifndef __X86_MEM_ENCRYPT_H__ >> +#define __X86_MEM_ENCRYPT_H__ >> + >> +#ifndef __ASSEMBLY__ >> + >> +#ifdef CONFIG_AMD_MEM_ENCRYPT >> + >> +extern unsigned long sme_me_mask; >> + >> +static inline bool sme_active(void) >> +{ >> + return !!sme_me_mask; >> +} >> + >> +#else /* !CONFIG_AMD_MEM_ENCRYPT */ >> + >> +#ifndef sme_me_mask >> +#define sme_me_mask 0UL >> + >> +static inline bool sme_active(void) >> +{ >> + return false; >> +} >> +#endif > > this endif is the sme_me_mask closing one and it has sme_active() in it. > Shouldn't it be: > > #ifndef sme_me_mask > #define sme_me_mask 0UL > #endif > > and have sme_active below it, in the !CONFIG_AMD_MEM_ENCRYPT branch? > > The same thing is in include/linux/mem_encrypt.h I did this so that an the include order wouldn't cause issues (including asm/mem_encrypt.h followed by later by a linux/mem_encrypt.h include). I can make this a bit clearer by having separate #defines for each thing, e.g.: #ifndef sme_me_mask #define sme_me_mask 0UL #endif #ifndef sme_active #define sme_active sme_active static inline ... #endif Is that better/clearer? Thanks, Tom >