From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751153AbdE3Pqi (ORCPT ); Tue, 30 May 2017 11:46:38 -0400 Received: from mail-sn1nam02on0086.outbound.protection.outlook.com ([104.47.36.86]:43072 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750796AbdE3Pqe (ORCPT ); Tue, 30 May 2017 11:46:34 -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 32/32] x86/mm: Add support to make use of Secure Memory Encryption To: Borislav Petkov , Josh Poimboeuf 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 References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418212223.10190.85121.stgit@tlendack-t1.amdoffice.net> <20170519113005.3f5kwzg4pgh7j6a5@pd.tnic> From: Tom Lendacky Message-ID: <097e89ec-45a4-3a54-d005-9e7dc436436e@amd.com> Date: Tue, 30 May 2017 10:46:22 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20170519113005.3f5kwzg4pgh7j6a5@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR14CA0028.namprd14.prod.outlook.com (10.171.172.142) To BN6PR12MB1138.namprd12.prod.outlook.com (10.168.226.140) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR12MB1138: X-MS-Office365-Filtering-Correlation-Id: 2fe44150-72a7-4f7b-72bd-08d4a7730ba2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;3:+/Uxw+nL1qtBmPRc6ho1Vfv4Mij294ANj5oC0IOe70cy809cPf+/jeJU3lmjenSK/DHcOBaMry3TfO1BWzCahsw+k98DjfAtP9Hafpq8seuHFRVoNOqPfaA64lmpp6CW0ttt/ltdaT6MvikEdf/+X8StANrM/CV+NKS2sMKGCGNiiKiuGD+0OxccYRFzuw3b6hkzeZjL07IbClk9nyWyaG/y+FkxCqn2RdLC4TQomPUNhjs2yTcefXaya+PYhkZhRSyzG89c3BHkJguzhpLjgXx8Q6hEmlrpcFJZii5LhQbKI66UGSDBBWCt8tALKRjSBoiFl1jbAFFEB9QZ+r6ZGZEUcj1OktTjlx0VKJx+XjQ=;25:7Ij84QFk0L9xOiil5rKn1srjpnd9Dr9pMMlnQwhkIXm7JDTSybTEECRaSUrZz5pc4RVFgphgZa2rJir28Pf1LaYvzh5y9/fxbywpt4BgXGJsk5o/z/mNKj4sLW7qh6zomadSor03k2DZZGWfoHlh6NMdfd725lZeN+QH8qxGIgFnFnqZ2aTe+g1RdTu1GCislzX12BePUwAiR5jhBBlg2NtznIbw33NC6eRXs1135GfQ7UFiHxsg20v/6KnvMSH2ShfsnuGVj5KPlXJFiOBSuUBXgqkJ4/gtZxOyuZyFOMVFMrvV1nvJdtIn8jGEfo2VOmvOt08q0mXH6Gx2f2OXlDQ6zCiX2fOniPQsFayJYRHoLO/ymWXoNu/D62NB5sW5TmwnDYZO5PUnMmom5L6LtniZICnJKSmfSKUztHqRVom4NPI/mBX5Qpy2HD7zJYGRj0VKeK7zqzpKMz5EdEPwQYkxdFkMt/ArKFRLkmWBz3Q= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;31:wT5DMXAxIoJuP+2hEPvk28zsHrxnMgvJuis+M7ZzZH8KwgxC1nixhL+/gLyL8CUaQpG6xUgViJCRukRGdm53UOYdrw9G/Hr86KXnbtd01Xz6c0GzDoiDZqixA6dea66PQoODd55MI0pFbkPOipto2iBvJoKY6gB/JsoEQ/BHMhvqiwj5UL5OK3P6NJ/WnlgH1+znPf6VlwUknbPo8Gpx2I/nIVhnkQYleX37xyn/d0Y=;20:zIx1jC14oxfQQrp+pG+BuwJS4Y+vlQMLvfUsWZ3oSguy/qAI75HCc88jxKvzIKN88V0cgDW5pFR2NSeIMqVYnRVc5DUTzXWmKruOSI0yWWk/wUg4Zrv4T0xYu50lwmFLyapgqJOlaSHOGXOy4Py9yEfICmOBWMIdgh/MUgb73jgm8AkQj7vJySGW+eq5f20gQzB5uCcpjpzlYDeJ2D5Ptw3Z1SQtOQXfbEeyyftucfSfnTOTbaHiC5EuYVh4yLtO69sCtIqXoiXG5OIs5yG6EbQPREvkDSCTKlflUDkCgamFe3xoy2D0rES1SVOT4B8oKOQV3rxKFV4juvPFkEPuR7S02oylXgt/s68qO+2psVj/blQ6IPZ0K3TBYD9zBVQrwv/Mx9bBLrS12d5LKQCWy71wdh5FGM0cPb3H+IlQBe1Y7Ffw4ODdoAyyqDbJ2RHIW8CxybnvYooIO24jcoodQgQDRaLNy5hiNQvA8JgDI7FFSwgPogMEJ9hyLktCyBTZ 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)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123562025)(6072148);SRVR:BN6PR12MB1138;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;4:XBex2h0g1t7nCqyNGG5qZDEaE6jNhYRT48JAToA+lqTjuXBcBkOwMm09/USPfpFEbUJXHtZh6JSua1pyQkqLfRQU53lW7nRpokOm2nBMIf1SDzqYai/Vd/GETxJ7U6D/+kVIU8Ph6NZd2tyEYjDu7Qd0iIsRctBwVWqhh1MpKlpz1HFLCpD47fk5VJG5y9QrNO7kXWk3AnJzayCSPsVsF7FB0Y3hH2xUFZh6oJGoSegS8AM3SCNw6INznlxliCwu8/Py8eEXgVxqsH58VseQCwK1m17b11yMKeDbFUPSxhKA9MTbqu7GZDT4Ej2tJH00EYCspZhoURVxlyxS1QfU4hOIRmqJtXm8pHCMXXeggtp8BmAgYruDzp6572QH1ipHApkqOWku/x52DqMXB44LmeYJsAzamWRbuk5X3eA2AeBm+/6tAampibKqt8kJXRkqGmMvV6xaHrLVBidD9iumdbbxid1/KNvRAw9o10VYDP/OstQS/C+7rjhbnBgFta28kQ5uoAHSDI3xH/YX3Cn6A1c4y9Wuo0XqyEDuzNWmbX5j2Okk5qg1kEawp3W6i9YYph0qUtjXeElDaFHenIlnfej+qK3S8HjHxFExjpfHnXVhvVw5ns+cDwHYghdqhVwyYE8qRX8mvqRajszT48IZ1b+/Y7pDBOUFDAfJrdLmp4Wfk2CRTfisTJ8ZaiecYyy5bHEDjymhvLNFTBilI9oYByrWsirARb2VlmLUliry6F6W/VdK6E/z1GPillXpCuIpiws3jCO3CgIM7phqHzS8KCWEMOdqqgxURt+tpaPxEZQ3KQAAXT1jWow2m/oNaluau7cGoWU5zG2vHKmv73o88qbWGM18u69SbJeGkrfmKso= X-Forefront-PRVS: 032334F434 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39840400002)(39860400002)(39410400002)(39400400002)(39850400002)(377454003)(24454002)(66066001)(6246003)(86362001)(4001350100001)(53546009)(8676002)(38730400002)(25786009)(81166006)(31696002)(478600001)(47776003)(93886004)(54906002)(23676002)(4326008)(31686004)(42186005)(229853002)(76176999)(50986999)(54356999)(53936002)(33646002)(189998001)(230700001)(2906002)(65826007)(72206003)(5660300001)(7406005)(7736002)(90366009)(7416002)(305945005)(6486002)(77096006)(64126003)(6116002)(83506001)(2950100002)(3846002)(6666003)(36756003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1138;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM4OzIzOldJTFc3TkI5N2xMVUEvZHVMNnMxZG1ybnFR?= =?utf-8?B?MlJJMjE3Qk5lY01LZyszNFYwSTJ1aDhnWFRaaTZKS0xiek5wMzd1WmVEQjFn?= =?utf-8?B?K1V5eTNWQUVnb0ZwMThHdTVXRnBBaGd1MVorQ1IyU20yTmgzK2I5TGZldk0z?= =?utf-8?B?V29jZEZYRkg5Z21mcmFwUDgyazR2VVNpeW5vOEJQS2txRHRnZk5HNE0wVmhn?= =?utf-8?B?Yjh0WkpkenFSU3dnczNNTlVCVVJ2Qk9JRGUvTkJCUDBlcWVBYitGSmQ4MDdK?= =?utf-8?B?N24wdURKREhhRjR0Y3piSGNHS3VtK05YWG1Qamd0UlJhQWFERWdyNlN0SHFF?= =?utf-8?B?ZWNjYm5vRmV4YzNtbmU1VlBCMytocVNJUEc4ZklSeDhHZTVNOEI0ZEtmZ1NI?= =?utf-8?B?VDZWbDYraENGbDBaUHQ2Qm5iYlpUd21LTERKejRkODYrcUwwNU9PTmN5eTlG?= =?utf-8?B?NkhIYmdFNFVEN3JlVkdSZC9kKzVlS3lDMUxlTERSL3psNkxodXY2MjNmSXdw?= =?utf-8?B?N2QvYVFOV3NRcTUyZklPMmU5MjVFS2tsVDdkYWFvMjBWQ2ZHQ1lVR1B4aHIx?= =?utf-8?B?c3hoZ1lHK1dFUmxFeFo0Rk01YWtLd1p1ZTJSNmFyOWxVOXRyZlFWRTNBd1lH?= =?utf-8?B?Zm43T0NvemsyU0JPR2lBeEVmQkJtNUVsR0Zpb1h3U1dTR2Z6ek5iZ1MvM3c2?= =?utf-8?B?bGU4ZWg5Yko1Z0xyaVNYU1ZiREF5bUYrd0p2VU85YUIweFVyUllrM1FjSVhz?= =?utf-8?B?OUM0RUsxTUlVeDZ2aHNmaXBuWkVBSnRnaVJSWGkwZk90TUIrV21BcGRTWFFy?= =?utf-8?B?ZDQyTW80MW5HVUpmWE03ZHhhYXlrZlY0TmtuR1A4Z3hTY0U4cWhKYXRIMU1l?= =?utf-8?B?amE3R3hpSytZU0g5dDJNa3FjZ25kRzVXWjFuaWdqZ3V1SThOM2hyU01GRGlC?= =?utf-8?B?VGw2aUZHb1Vld29uTjdqRXpvZEhPOFBwN1piTWpvVWRrRVFNL1dPSXpsd09l?= =?utf-8?B?U01waUhkOC9CZENJMTdBdGFiS2hzZWxCSEMvODZtOGpSRjE0blZGYitjU0R6?= =?utf-8?B?ZnZoSGJ6aWtHNXhERVJpbFVyRlR1c0h5YmY3Zm0xODhqc2hPeE4yL2pvY3Z6?= =?utf-8?B?bStzTGt2S1RQbVJUWDZBR0dvYXhFU3ZaQ3hTckg0TDZleUN2YXI2cDZBdktH?= =?utf-8?B?SEROZkc3azA1Rk1JTmY2eW84TmowdDFqUlR5WFl4R3dPSFFJeEUrZXRBUGtR?= =?utf-8?B?cGYwOWRPeFd4bVZwTW9iSzhVaVJyVHdLMUFXd3Q1TjZGaU1qelJjQzhvdnJR?= =?utf-8?B?MTVlOTF6MU9kR0JFMVZueXNiZHRLNjNyTURQK2hPMUZyRzhpVFNZODFBNEUz?= =?utf-8?B?cERHajFhVzNoQ0J3VGVTK3VBdzNYaFJzeWpib1dRbjFVQXZaaEpTaEZSeTRH?= =?utf-8?B?enVHamdpcCtlMEIweG5DUWpmcndsU2xWOGZIWXlBMXVRaTU5QlNTbkJCd3Nh?= =?utf-8?B?bTRYYkxsdlUxZDdVZVZGTU5xS2ptaDNCejFHZkx2TDRWKzhDOGJ1TkdEeSt0?= =?utf-8?B?cFo4VWN0M0labWxHdVdQZDdvTzFUMnBpR3NQTVRLUzNJcmFrTDhjcC9VTnhQ?= =?utf-8?B?Qk5MRkgyU3llVWgyQTVIeVdjTXVMdVE4OHZBOTBjdnA0RGd5NWQ3ZThQcUxi?= =?utf-8?B?Y1I5elptVjRPVGdkcWNJcGJBRitkZnB6bFBuYzM5NHdETUZkMEZUWU1wSUlw?= =?utf-8?B?dEdXMC9jamJnTE1sTnZEY1FQMW40d3FxekpYV2tCWU9yb0ptZEU0TndtWStj?= =?utf-8?B?YTVMdmI2T3RkTUg1R0cxNG56VUoxelZyQ3lIK0hsZ212RHc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;6:SWxr29s9NQxyjZEnT/cbtu3epTblb1obPA4W0X8kyLVh+spq/aJZcozDnPjqCNHE7A0lsjO1GwFsZr8vT6wEvgtJAx0IrruxrBPGPv+hilzvw0PMBa+xVfm4q8V91oyY/FYnrEefDlzTR9SKzYm9Zetvqf8zpdIf8bJ9tR2gYlM2j8+zVHMq0lUMF1/4R5vbUsPjgOXHXY0UK8Ah4zj8g7mm/lUWlJ2kG9lmK7NUylpD2C4tA6vfbKPDPE4k/fCOJ+HNrEH7VA+AwXLegZohXCDSwuf1EuzFwlRZiKajG6qro4tm5JVUB0Oeo1aBKF7efU1flE3RiyZnZ+lDa7E4UUFp2BxhgUOf8BwnJllnLgW8Bb6DNn4f96OGa4cGHn+OBLoRvW4ffLOhe0pMUH3V3fnUJAO6RQZdjCOw4GBuwQ8XNmR2G9cSrbK2y0etntHOZICbjYGBp2FK3v8LbvabUKnkVwnR1iJj4jjM634vfQ8R8N1pH9GE75Ipvb7BWYJ2cMm86FwLBk/sBXqfOQHMHEsSfANPwN41mbwwWYAJjO8=;5:N6Rrs3o9auoxggKkj+5inNhRkAJfSxoTTr7V89rC0TiuRwLnmKZDMizPhlh7ksKUZczeJ52pGB235foGfAAx9pqOkfo6ZIcgPHRk6k7ZRPn6XMbMtLL9XyhlwmRqFWoiJyRj/IAHw1hwfQQ4d4BeooesqaUdaD+mn+hFz271G2M=;24:OjNerT7wg4BVYtNaAypHfEpKAgRSGu5rp5ioeBl6ZKB6lqn68acRCAMl5ffpgv0s6ivijnjwmzGI4K0yZO0XJlN70v4SeJO4XvFS1/uqJY0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;7:ceiaqdd1Eb+JGO3snWzD1G35n3ib3nN/MNn0I5fW0uedClVnIvQhpQ6BkBjArU84LyoAY0YHQOwMYvAmN9nswzEaGdPUWBy6yJ7GxQv4ZsclNDRl/4HTie7tyn7KcH8i3AspHighp5lqrhsXN7W7OXTkKFtjk01Li3guXCm/cKnhZXUUZ3/MuEZR1PsA5ylTWwzLVT+IZhYcA5Rw0SyGRkgwCJ4wE7uPKzAJJ08mt3UfPWAZQcPifRWa2x6DTM4oCUnXSPg9StrQ2A79bT+43AEIuvfQlpCFWPbHUDuukPo/7I/Asj+GXPohEU9ZoiGyeTl+kanjqeWLG41u0Xxg9A==;20:3Z6t7d94bj4oPNTjJgRDQzEzy41elasp+hhJCNBQaDXNtv+ivjI6w0ophwkRHe3TPoqbLquO8D8JsXZ2eHeE1zYu/yNclpe4z8qAlqrTF/UBrDxhO4RvGlxbH1UbHH9TVWnWrUuFSCxQpIwtkPeRJ1OGors4+GEp9dl7h12fJJnez/7TIp6Mt9QyzJs8lboVyrD7e9sxHeRCJnYnjOo9V56qjuvFF/PeeLEuHJU4H7zx/vhGbs1hL4mU1Mf75SSh X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 May 2017 15:46:25.8730 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1138 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/19/2017 6:30 AM, Borislav Petkov wrote: > On Fri, Apr 21, 2017 at 01:56:13PM -0500, Tom Lendacky wrote: >> On 4/18/2017 4:22 PM, Tom Lendacky wrote: >>> Add support to check if SME has been enabled and if memory encryption >>> should be activated (checking of command line option based on the >>> configuration of the default state). If memory encryption is to be >>> activated, then the encryption mask is set and the kernel is encrypted >>> "in place." >>> >>> Signed-off-by: Tom Lendacky >>> --- >>> arch/x86/kernel/head_64.S | 1 + >>> arch/x86/mm/mem_encrypt.c | 83 +++++++++++++++++++++++++++++++++++++++++++-- >>> 2 files changed, 80 insertions(+), 4 deletions(-) >>> >> >> ... >> >>> >>> -unsigned long __init sme_enable(void) >>> +unsigned long __init sme_enable(struct boot_params *bp) >>> { >>> + const char *cmdline_ptr, *cmdline_arg, *cmdline_on, *cmdline_off; >>> + unsigned int eax, ebx, ecx, edx; >>> + unsigned long me_mask; >>> + bool active_by_default; >>> + char buffer[16]; >> >> So it turns out that when KASLR is enabled (CONFIG_RAMDOMIZE_BASE=y) >> the stack-protector support causes issues with this function because > > What issues? The stack protection support makes use of the gs segment register and at this point not everything is setup properly to allow it to work, so it segfaults. Thanks, Tom > >> it is called so early. I can get past it by adding: >> >> CFLAGS_mem_encrypt.o := $(nostackp) >> >> in the arch/x86/mm/Makefile, but that obviously eliminates the support >> for the whole file. Would it be better to split out the sme_enable() >> and other boot routines into a separate file or just apply the >> $(nostackp) to the whole file? > > Josh might have a better idea here... CCed. >