From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752889AbdFUPPF (ORCPT ); Wed, 21 Jun 2017 11:15:05 -0400 Received: from mail-bl2nam02on0066.outbound.protection.outlook.com ([104.47.38.66]:62848 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751133AbdFUPO5 (ORCPT ); Wed, 21 Jun 2017 11:14:57 -0400 Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH v7 08/36] x86/mm: Add support to enable SME in early boot processing To: Thomas Gleixner Cc: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Brijesh Singh , Toshimitsu Kani , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Paolo Bonzini References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> <20170616185115.18967.79622.stgit@tlendack-t1.amdoffice.net> From: Tom Lendacky Message-ID: <8d3c215f-cdad-5554-6e9c-5598e1081850@amd.com> Date: Wed, 21 Jun 2017 10:14:35 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: 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: DM5PR20CA0029.namprd20.prod.outlook.com (10.171.161.143) To MWHPR12MB1150.namprd12.prod.outlook.com (10.169.204.14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 26210eae-4724-496f-3da1-08d4b8b83da0 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;3:1kaayF30UFqWcb9McpJbj7UMFXU99iZA0ka3Wroo2Q0YgUmmOH9IO8VHBBJk7KvJnxKx0wUs6grgHtFzDXWmJftilQlgqLbnBmLcSaEMKOAgzO/YB+oeo+5NNV65JTpnr5THXkRb1h177/TeCqpCyGPuO1sSWEybbzidXVt09+AiymjJGEFe2gKHo6WMddbXYbCkJEA26ojOybiE0L+3+erFqnJOaCFakNNBq/wiEWykr0WtMUFZDFS5NM8iEAah8Ow0lJaB95XJYDYoGAPAYh32PwYMYzRWNjIYkLjY1wX1nCSFBLbpNAiFr/QmOzF53wbQQdTlGtntb2SecbG9gqUSo1KuZ3Hm4r9WH0XOjuY= X-MS-TrafficTypeDiagnostic: MWHPR12MB1150: X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;25:7SaLTR4EBCeVtLuhfSN31XGlLd0gFI2TYDyS1iqlq363cBP50qr1RZh2i+TIcmrFeSR65LUxWKWWm/oLZbv2PMcJTigLcNsyflflTjxR/D5Y3archIoybTln6yRc8KptNOUFIbeozE+4eQJQFsSZDPngGEttx+uOrqiA48+qOZ9QHQN9ffjLBdSbbxz7MD1DzGpZ0S/jQTloA1Kpdg9yo7U4MpJmXPi2jwKXBeADleGoMjJjikeBLi8opSclFGIeO19BQndAF8V8b4ymKSnoQRWIUwTcoStRXUdLyCNU1xwpbrumIRIPGkIMihE3ZTPkfsBeqDyUrtJDhmgK5/4uywLoInf/BOGO0vxVRCfsVDE2jkC3Dt2lwlpzQKe3X/UGfUXr3d+kQra1/+3DqXyYLwfZo+Xuf03vfNpmBwFaz/ROMIDqoujny6VILcnVkyH1N4ocrME+i6nnEcJerY7NhEJ5tLf8PkkMzDpKBZ5vvlJxn94D9mtKym7rDO9HJpjaylKLPCdHj8C1UKzvMKRuPSXqj1x+fUi+mNGruBcmtVANFIm1f8hq4nE63Ff3lmF2jRT3zAs8a5mRbAbWMBQGhJalslAjGLcukSpoeJ5oToH45WMg86cDvgtG49HGDwQvpj07LlUhDpiVJYKdaqDP9wFXoaTe5lUpWGLMghViSq6umENJFpguv7kNUQsRW45UtBUwg4lwBW8w6EAbBBV64q/xsoBPbIpMqwDriTbXhH3u/RnYFf3Q5qKli9V5ZGrrDGvIGPiKZKFQu0a+jJn/KyjzHgfxDsMcsI8ltwjprhpoSGnbSxoqSEf4PjCJ2ln9AW0HcKaE4c8KQvBDI9nVxBW8IlD0r24VXMjU5pqzOvryomVtb9gSqJfqqiBXxx42pIGPMUun8eoFGVPEt9KWsAnJMCRTFMikqSoDG5AP4vY= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;31:t4SWep5h8MNcNe39+bPeWMxI68zfVVHKr1TvSvqFlcv6tBgE0WV5bbmGgW2hPtjvH6LrF/cwjhzkLU0Cf985xOK2UbqWUhZfq7Iv95pneeRWc4JBgPMMGdNkMUN+8RvWNQAblzRf0jBNGcorKguPJgQp+fKWAFvhJ72A72FhxVp8jZPVt/W4C+5uYnrKnTxFEEsfHxfgWBuaUstC4yAgSv9gL1+wgUxgBi8v5/GbBiRkRySKPe9NhS6BoXN0fohacj5BPVtN4DrJBdPHJHot7vIYQ/a7IRvwdOcc32SvGtwkczxwTteiS6t/8SYVCJXA4YVtPX5el6A4hScpR8dw+ZFtTzZElwVrb0CKynA5V4lMPzyQhrt+JPHnAOB3jART8HBGEk+3At4fvom7ecTQUNjoD4vj2Kf8F+RSHsGuDD3Y7vhzu+pqJkVAQ7K8sC+umqIcRV7htqlsP32MoEHmIQBFYQdZRVzaoEt2jGV8TnGYzXKQnmIq2cwNskp2tMqbAs+U/y5i11V3ghsrXPlCgK9niT/A9RQjzNQjf09fQqweDkL4jxb4LEp0nYSF/aIgXMX80+kyi58tlGy9PHgjR9z6qDaQ/vKmkNP173AX9quR16Z6Wr70CaHXIpU5Zin5eUuhNg4NXhC0Fn/51t2V+uC2F0ZGv3oPSq2zz8MIud4= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;20:jWylJmc5kFkSpclx+8UXW3gGemHz1YRl4BFzx/n76GEQHe7QmXseLduQFwG6dogA1a8xZDoBPx5gUw6DBOk+M40qWCqRuryey33/ytJndNPaauJ5dIq/cA128x53r6EdDjfdciNppugur5EFWW+DoNOm9veTtXtsZB0oR/Xr3kPfcLvzCUvyAWSLe4z8W07CPHO9AAHFQ6gtmcTqTLh46J2PJ32HoxmXH9BhGigg4C95m4S8KPUVb6yYSD+7GWkIzANzBN2PUH08wnUQMaFoPPEYy+eKg/wNIjAzziMmVoPZgFVVMfcRVr7H+ErpU3RfKXtaojmrUBpbYCHpPfSKVFh6zjzGjoYv0fSVQ8GgTXxz8SRmBNBXpHpgcaGbiVwDSNZ7HyPmt+ssMLVljhR8cBhv87sWfYIFIHGQiJW4+HwappE1bcTB7EtjwiXeklqp68oFg7Hqo08WoTUBDBhrWql+obJTM9JJkDo2KCR6mpic4lTaC57+jePUaYGImr1C X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR12MB1150;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzQ6Q0UwRTNKRnJacytuYU4xZURBUUl6dW92cWtM?= =?utf-8?B?UzZsdXl3ZFRaakJCMVJUUEdwdStGRDNjU1FxRWFaazB4NEUrRFZPK3RJWGc1?= =?utf-8?B?cENTYnVBN1pwWXBhU2RxV2taRTNSVUE0QnVMSUl6MXYyRXA2OHRtZlpSc2ps?= =?utf-8?B?WWVaM2lWcFFLL2JZa0RSdno0cExMWHJWKzIwUFo3SkVRWWJ0azZLTkUxRXBV?= =?utf-8?B?eEUrVjVFYkZJdWFBUTZEQllyMjI3UUI0d1lyWTRDdFp5VmljanFDQ21BUjVz?= =?utf-8?B?OUh4a3NtRlFhQmttMnQweFpOMHhRVVZSRVhjNy9oMjh6aVFSV1BKb2hrZWZu?= =?utf-8?B?L0IvSTRZSHp2cmpFTVprMEtkZW05cDFmNjlJSnFFT2RMVkNaVkI5S3lpWm5C?= =?utf-8?B?ZHZwa1FzS1NlODY3cExQbFhTL3RrZ081aVZtZmU3eFhFU2t2QmR2Nnd6MXJ3?= =?utf-8?B?VlVVdWh3cVpZOE5BNUtxb0h3QnZKTUp2bEZMdE5MelBmL1RQcnpuR0xMd3dH?= =?utf-8?B?cW44c2dDd2hSRkxsR0VmYy9XUElwa1JLM2tDUk90cEl2Q0daOUtOajBHc1N2?= =?utf-8?B?VEduM2tJZTdqMlA3dGgwWEFqVE9haXF0SHNNTGxFeVA1Y0JkekQ1L3oweXFk?= =?utf-8?B?ZEkrMmhKYXgydmNBYlFEaHJtcmY4ZEFDV2o5Y3FqYnBRWDJsbVFKQk1Xc2hh?= =?utf-8?B?eFowSlNYMDd3Qk1pMVo0bVl5YXRwdWR3bGNKNGlKOGh1UzkwRFFDaHlqaWxQ?= =?utf-8?B?RHloYTYxSWhOM0ZzQWR3c3hlSko5UFlCV1dhdXZiSTAwdFRsZGJEMUtMY2g1?= =?utf-8?B?L3R1L01wem5vMFI2bTNRQ3ZwODI1NjVzQisvaFMwT0JtaWVFd3lIT0lFamp5?= =?utf-8?B?QlVrTXFDemNTQWpsQ0hqVitucndSRW9vQ3paUjRtS2UrallGOHNqaVBYQWZn?= =?utf-8?B?ZnNNV2NSL2pVNzR1RnRieXd1bVV1eXQxWlJyeXFkZ2FqTE1WVVdTZTFnNkls?= =?utf-8?B?TkZtK29Fa3JteGdTbE91V1RUL0JNVmlINmdBTmI1eUdFd0RKekp2eXJXTHZ4?= =?utf-8?B?MFFXcWN6aEZ5ZFpsbHFKSmFMU2hvNC9wWUlmVDNEUGNtVnkybkdqeFpaZVpq?= =?utf-8?B?bmNkdjRkM0U4SFBHSnU5M0NSLzk2bG5sc1hadmlaZU41Qm14TGwvWjhnckYv?= =?utf-8?B?SDBSSVZnSnBQdzZxdzlWZUxWUjZmaGlFWGV3OVg5Z201TWFWZXAwY2dJMzhY?= =?utf-8?B?UzNGSnRaQWJ4bmp5dEZhb3RpdVR0OFBGYks3K3FKUExrcXBUMmtreVJ4Kzhj?= =?utf-8?B?U0QwRVFRYmgzWjV2d0QyMTBEbVhzWnRJR1g1SWNSRlQ2N3RNVlhJdzVPNklB?= =?utf-8?B?RmxNQ1I2Qk5PQm9sMzhBZFdYTEVoSERjaXVibExpSGViUU53S09hNTBKWU9V?= =?utf-8?B?V2xaNWxZQnVRL21LWmc5SVN2bHVEcHhlQVJnZ01nTEp4WEpJMmIrQWJ3VCtD?= =?utf-8?B?NWYvU0F4Nm1JMGRaeGI5Tm55Y1l5Z3M1cU5uWExXRUdoenhMNTFtaUJzaWgr?= =?utf-8?B?em9BVy9VWTRjdngvU01OYnJ6UDF1QT09?= X-Forefront-PRVS: 0345CFD558 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39860400002)(39840400002)(39850400002)(39450400003)(39400400002)(39410400002)(24454002)(377454003)(189998001)(4001350100001)(3260700006)(53936002)(25786009)(54906002)(38730400002)(50466002)(81166006)(23676002)(6246003)(8676002)(110136004)(64126003)(6916009)(2950100002)(6666003)(50986999)(54356999)(76176999)(53546010)(229853002)(77096006)(6486002)(5660300001)(31686004)(42186005)(7736002)(36756003)(7406005)(7416002)(4326008)(6116002)(3846002)(230700001)(33646002)(305945005)(72206003)(478600001)(83506001)(86362001)(31696002)(47776003)(2906002)(65956001)(66066001)(65806001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1150;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzIzOnpHbHVsZ3M0SUJwVUhrVnUwL2ZkQ0puWm9H?= =?utf-8?B?WDlsS0J4dWdBY0g4anNEVWVUVVN6VDZtRDVka2hxUGtwUTRtMHBkenZGQ0pV?= =?utf-8?B?SXZYQVR2azh3WGhDM3V2S0NFZW1vcTFtOER6Z1g4VU8xaUxycWNCMUM0RzJK?= =?utf-8?B?ajhZeHR4K1duS3BRZ3NJTHJHUkx4Z2d5ZEdUcW9XQUpaaEYzN3NNbUV4NEwv?= =?utf-8?B?ZUJtcTRyN0J4SFZiNDh6R1doT3Y5anVBd1VwRFJSQnN2enNISEQzZjNrSmFa?= =?utf-8?B?R1ZybnZkR2hIb2UwK1ZTZW5yYWNBNkF3cEFrRGExaFRFdWpnbHNkWkdhWnZN?= =?utf-8?B?L1lkZnlqYytzM3RUcGtNNTZQVHNTWS8vMWdzT0JzNWFhRno4b0tRVWpkbHVr?= =?utf-8?B?aTJ2S004Q3JoODRuNVprWFB3R1FJVFBQK2hXZU1aYi95S1N0YlNWamFYZUw0?= =?utf-8?B?aWM5OTVXSitxdG5jN2g2Q0hVMGFpLzArMkhQbGhHMThYSk5RWHlJWlNQemt6?= =?utf-8?B?YndZRnZCZFB3MHNhdUJvUGpmR2RROTM0eWtxL0xXVDNuZWwvcHYyY3MxSXJ4?= =?utf-8?B?OG9tejlPdE9nVkt5RjdYNWJMN2crM2xPdUMwamtjcGxLRmE0M09ZSURWSUl0?= =?utf-8?B?T3Z2blU4dXFCdFJ2SWNad0E5YnhtSTFiRHhXV0FxbUQ5V0kvUlc2UUJZMmQ0?= =?utf-8?B?STdlZHduSmVjRTA3UWYzdzYvejBDbUVnaWw1aktQREVQZUNKQ2R4TjRtSGo5?= =?utf-8?B?dVNkRUtDQ3gxdzMwY0Q1Q21QQUovL05EaklmM2VTN3k0dlBjeW5ZUFVycXRp?= =?utf-8?B?TFF4T2E1SGwzaGxTZTVHVjRabHFCS0VadzJPRWhnZjNnTEluWjVDNXdreWsz?= =?utf-8?B?QUpXcFByRWJ2SmQrOW5jUWRLTEJKRCsrNXBuU01OWnplNlJCV3dtRGpCZENl?= =?utf-8?B?YVRlcnNkaUpwLzVEV1Z5c0xTNGFXYjNrWnNoRnlQVlk2M1hyY3g3MnpuWUhO?= =?utf-8?B?bmgzcUpZM1k4aWRKRnVXdG04TnhIejJnS1M1bFdLL2RQSjhaUENHeUJpQk53?= =?utf-8?B?bXltSi9HZmJoRStldjAzQjBwWU9GYW9ETGpHNzI5U3Y0MGlTTXp5Y1BQczJj?= =?utf-8?B?WVpEbmRMeUZ6QVI1T1c0U21HeHZPUnJRQXJSVktvMXpzanNMdzE2VlhLc2g4?= =?utf-8?B?bWxQY0VSK0NIdHFaNDJjWko0T29YZCs4UVNCNWE3RDI4aEdHRWZ2cWoxM0Q0?= =?utf-8?B?Mm9xM0hTRk1XQmVrL3V3WU00QzQvbzNDSkJqVW9uSURSTXB0WHJrNTQyVUsv?= =?utf-8?B?dzJ4Z0huUFRYa01LT0pucnFxaUFqQ2g5MGkxa0tYNHlyMjZBd0dIYmpQK21j?= =?utf-8?B?ZmtFa3RmeElDNEQvZEdwQTIwdWY1V3lyR3hZVk4wRXZzemdCc1JFclhZbVBl?= =?utf-8?B?QzRWbURrOUp6L0lMenNBNUhiRmp5cng0RlN5bElGQURkYnQ4RjQvYk1YMmNp?= =?utf-8?B?OTIxeko3djlNMEJFWFU3dXh3a2FXNi9NaEtQZTEvSmh3MTFFNDRKYlNaT1F4?= =?utf-8?B?ZWxEcll3bnNtVE0zL2JlSmpSK2V3Y0IxMzBpS2x1RzNuOWVRSUh3MW93T2tV?= =?utf-8?B?MTkyK0g0MmJoVjd4eXg1L3hOSnRCUUhkZy91UXByWmVSeE9vWUtNQ0NGODNk?= =?utf-8?B?ZWRtbmh2TUlUU3pKR3k2UTAvVGxHOXJWLy9Jb3RZMFBCSjVxeWxGeGVvWVho?= =?utf-8?B?ZElmd3V4TExGbFlVS0ZzRnJPeDl2YVdGTzVHa3ZjbDgyTVB3d0Q2Qy92VXhH?= =?utf-8?B?bGV5WlJXVEExS3B1S0V1Q3d0WUZRcmptZ0dIbFMvU0NDNXdiWUxzam56R0k3?= =?utf-8?B?aHhxaWhLdElMMkhqTGg5TFNRMTFlL0ZFcCt5MDZTQXVDa3krdG1hOVVCTEg1?= =?utf-8?B?NEJVdk5qMCtRPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzY6YkRZUnFqKzlwUmE2S2R1QUF5cEFsVVhqUjJj?= =?utf-8?B?OFNEUlFTM0ZVSlV5STl5bzZ0ZmlIOXp3NlhwSzJCT2w1R2dyV0V6L1JaSXR4?= =?utf-8?B?SlpxRm9yRktWOUc1SW56a0l4S3hWYWRJcFJvYXFnNmhOZFZxYjMvNys5YWh4?= =?utf-8?B?ZHVpZVN1YnV1OU1VUXlmVVNmc1VQNmZ1Zzl4YnhkU3RHQ0hLMlVjTzJDeTNo?= =?utf-8?B?WFVPd2RJMXNjeXVkUVV5NjRqYzhiYlY2QTVTWVV6NFc4dXovaHhiR3djYUc4?= =?utf-8?B?cU9palErQXZlVnNCTnJEV0dWVyt0T1pPdndMVE5yRG8xbkNUeE55Wkt6elN5?= =?utf-8?B?VEppaTNzVTFUQnB5bG1GK3V0VXROZk1iTnRLczlMK2ZsRU8wcG5QdVIrZ0x0?= =?utf-8?B?SUtiQW83c0VlVmM1MlRFb3NYcjRja3Y3UC9ONHlmZ2NONlpFOXNVME9JaHo1?= =?utf-8?B?SG0zWlVMWnhnTTFuaU9QSnFIZU84SzdGM081QkFkRjVOYzYwZmJtMVk2YVZD?= =?utf-8?B?MlBCa2dxTDRQUGUycGZZZnJKV0RjeHQ5OUNiaU10ZEVKbXBSdmkwdndIQzJj?= =?utf-8?B?MGJ0TWEvME01L2FLK2U2OHBOUDdmeUUrcGdjaXduUHRkeTJKYjhza3VXZGQy?= =?utf-8?B?Vnl5YmpUZkVvSkpaek5CaGNOaTlhMm01OWRGYjBlY1JOd2xjL0JPb0hWanRh?= =?utf-8?B?VVpxaE5qS3Z5QVFLTEFZdFd0RnRmUU1MVVpFa2I1UDhrVDRScG1yNHpvc1ZN?= =?utf-8?B?VmNPd2RHbC9iSE83eUh4cEI0NmU1MGR5NEQ0OHBNYWx2V2pmZlU2cGxnL1RM?= =?utf-8?B?S3NRSFdoZXFVOGo5VW5LNFRSMFU4Q1V5USs4M3JISW16eldSb0xYUmFjbWVN?= =?utf-8?B?d05XdFRnTTRQdzQyTVdhbjNUeU51eHBMck9NUVRSVjIxMXplT1c1OGRhWDlX?= =?utf-8?B?bnJkMVZQUnZJQWQvNVpRd2JhUERWRWRJRG5jaUxaQTBQekFlb0VHUG5XSlYx?= =?utf-8?B?MnpmM1VVVkQzNzBXcUhRWmRnMGJZeFgwaUF6dWxmMEhHbk5JYXc4OFVoQ3A2?= =?utf-8?B?QUN2MHRDYXFNaFlBUVpObk5PekF4UmZMdXQvM2k1cHpZNnJ2NitTRGI1UjFO?= =?utf-8?B?YXV1REJtSHlCYkhCZWNxZjdNV3BVcmt4bzVBL0xCK092aXJYWmJiWHRVL3B6?= =?utf-8?B?K1FXMmxzNXc2MTRHSGZTdi9KaDBSUUw5dVVzSVg5ZTRyZnVNV2x3OGUrSE5V?= =?utf-8?B?dUppSFlOVk1TWmJlc2FjUmxjbVZ3YVB4c3BjRXBITm5BZUdEaUphWFdiQi9D?= =?utf-8?B?cUFlK01LT0dQSG9oWldOeTF2K2prL21JUkhaWjRzQjljeHViZ3JpZTVWdklJ?= =?utf-8?Q?5IKjBnw?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;5:QZjcVeTQ/W6i34N8HGvamZoNmo90ucrnpmlH3gZu7hrsuITtQG/qPpThtelATAqpYL5oWMLrmmxmqEJvlBN8ZOTSv+F061osUpZ1oE/Q4ZkIDySZg3faQzWouzRXmRG7SgwdY6nlIuc1ccO+I/WyRYBnedraOi+cz8xPv72O19m0FCsYoQiC+hu8gQ6irASD4L/KuPvJFH4p5MV9qBIwFBrBK8+L0EZW8CMAIaHtw66VztLsHS0yZzISJ/11ecwlY3xYB6T0Tis67hIvL9adrRLlGA+zdSaN7cnMEQoGaKVVg90VMortymOtfMAG5TTqXxNSqgIlfD4ymnOAX+pj9Pr0G/zHMZ3dGxzQQMyDvyJo3r5GqRPytZrbvyJqmUZ0E2kJT3VwAdSGCaMa8Pxg4ykRqNqSX5LW9kO0jpII9YC0OjXua5FkxtCwwCzp5B0O7KK50AgaDxZ/ya9ZyZ5SXvXpQMxtDPZ88n02Yabcgi3n97kFEGWmQjUAsarO2cOK;24:jQbMu61lO4vnNN9bWklmBT7v9Dv/SJfvGS17DmZLYW9BwurzITzkUVR8OEqI5gFjV60icruxhEfeQuR2c+j8A0PaNrAi7o+sKlxNW39olP8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;7:l4FJXCN2kS8TcsMuwKaIVim635AYQ2LZYvidWjdfcfMA6HlvCUC55iJkndLCjxTuTU7ozL/BcuB1i1wxFCPO50a7aeWHT+1GVxQ96Uba9XX5VrzSFoLWz/O+kkjsL5scAIcBiWR4kuhAtbSMsqmJT7y9j1JSChETmlC28qTs7UlzzDc6uJbekWSj0hM4FfU5S/LSlIt5isuNwCa/Mws05mQJcRCo0k9hfsA5I1iEiR6l/qTkYHkC8O/OSB3NZzCsz/m5nbDrp0nk6YMLQgUwwiJ42TdTCrquiQKeo/trPJDWP6X0zDMcQXhEMl81cDpRN4+Fbw2xpM2qKs5quemvPCgop6n5UZshmhaMu00OxyWlBeTJ3W+sjld9PYYYyR59OuFjsYRrH5Wc+sP+/H3pI1EpRQkdA7KUybCXrI6Fm8doYzseqQJQtCNc8SCNmy9Enw2SsQ5NbDBWY9ThzCYl5bAFOAjLUqxy+SaGOe9JNciTtEWJkYoPU1EYCaIHVKqkImNHp2J7x8anLJzFoMSOeHIHASwXhvvWtEbC4DHTPCXADmy9le9rti4MOg1/xtbRe0rqJtisDVIeEJA1Og7cPFlRWR4BDSVbn/2BEHwrwFI2JG6vy/vaWumTECgsXJdIfhE1QUZAyLzxkDh9pA8Ho0nt7E6ueUd8u57artItRbvZrakSn6/RptDp4RBJZ/2I52KszhC5DsF1I4+B2g0aYlELPJFqrV8S8E1gSWvyXgtCWXhfejqwCS/4+FzjvLxwS1CYPCSN9Jhi3UbFHfewUc+pjGvwLVExy9fXiUSmNpw= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;20:ehTURg1wRQ4IrEhI1XUsdqgZPSLf/z3RVJWcjCd8jVW/a1eNTmgZJ1XQE7QIvZ3wT2s5dm+XO5u7EHftEiCFvOaPfvg1whLWrXVIfCfXhk1L94nBkfVe/2+q1sf9yFMy+0xHm/Hymm/HLaiRJnc0ciMzLQrvrr+rnhQk6bY70WsKh3lf3Zr0SEv9zpaZhxUWxJjofJreN94VyEKY7ZUArI0E+pUsNEmYQ7O7MydaDuqxRYwwPAyD1wOPr72fEbJE X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 15:14:38.6768 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1150 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/21/2017 2:16 AM, Thomas Gleixner wrote: > On Fri, 16 Jun 2017, Tom Lendacky wrote: >> diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h >> index a105796..988b336 100644 >> --- a/arch/x86/include/asm/mem_encrypt.h >> +++ b/arch/x86/include/asm/mem_encrypt.h >> @@ -15,16 +15,24 @@ >> >> #ifndef __ASSEMBLY__ >> >> +#include >> + >> #ifdef CONFIG_AMD_MEM_ENCRYPT >> >> extern unsigned long sme_me_mask; >> >> +void __init sme_enable(void); >> + >> #else /* !CONFIG_AMD_MEM_ENCRYPT */ >> >> #define sme_me_mask 0UL >> >> +static inline void __init sme_enable(void) { } >> + >> #endif /* CONFIG_AMD_MEM_ENCRYPT */ >> >> +unsigned long sme_get_me_mask(void); > > Why is this an unconditional function? Isn't the mask simply 0 when the MEM > ENCRYPT support is disabled? I made it unconditional because of the call from head_64.S. I can't make use of the C level static inline function and since the mask is not a variable if CONFIG_AMD_MEM_ENCRYPT is not configured (#defined to 0) I can't reference the variable directly. I could create a #define in head_64.S that changes this to load rax with the variable if CONFIG_AMD_MEM_ENCRYPT is configured or a zero if it's not or add a #ifdef at that point in the code directly. Thoughts on that? > >> diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S >> index 6225550..ef12729 100644 >> --- a/arch/x86/kernel/head_64.S >> +++ b/arch/x86/kernel/head_64.S >> @@ -78,7 +78,29 @@ startup_64: >> call __startup_64 >> popq %rsi >> >> - movq $(early_top_pgt - __START_KERNEL_map), %rax >> + /* >> + * Encrypt the kernel if SME is active. >> + * The real_mode_data address is in %rsi and that register can be >> + * clobbered by the called function so be sure to save it. >> + */ >> + push %rsi >> + call sme_encrypt_kernel >> + pop %rsi > > That does not make any sense. Neither the call to sme_encrypt_kernel() nor > the following call to sme_get_me_mask(). > > __startup_64() is already C code, so why can't you simply call that from > __startup_64() in C and return the mask from there? I was trying to keep it explicit as to what was happening, but I can move those calls into __startup_64(). I'll still need the call to sme_get_me_mask() in the secondary_startup_64 path, though (depending on your thoughts to the above response). > >> @@ -98,7 +120,20 @@ ENTRY(secondary_startup_64) >> /* Sanitize CPU configuration */ >> call verify_cpu >> >> - movq $(init_top_pgt - __START_KERNEL_map), %rax >> + /* >> + * Get the SME encryption mask. >> + * The encryption mask will be returned in %rax so we do an ADD >> + * below to be sure that the encryption mask is part of the >> + * value that will stored in %cr3. >> + * >> + * The real_mode_data address is in %rsi and that register can be >> + * clobbered by the called function so be sure to save it. >> + */ >> + push %rsi >> + call sme_get_me_mask >> + pop %rsi > > Do we really need a call here? The mask is established at this point, so > it's either 0 when the encryption stuff is not compiled in or it can be > retrieved from a variable which is accessible at this point. > Same as above, this can be updated based on the decided approach. Thanks, Tom >> + >> + addq $(init_top_pgt - __START_KERNEL_map), %rax >> 1: >> >> /* Enable PAE mode, PGE and LA57 */ > > Thanks, > > tglx >