From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751744AbdE3OjK (ORCPT ); Tue, 30 May 2017 10:39:10 -0400 Received: from mail-co1nam03on0051.outbound.protection.outlook.com ([104.47.40.51]:13510 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751028AbdE3OjG (ORCPT ); Tue, 30 May 2017 10:39:06 -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 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> <20170519112703.voajtn4t7uy6nwa3@pd.tnic> From: Tom Lendacky Message-ID: <7c522f65-c5c8-9362-e1eb-d0765e3ea6c9@amd.com> Date: Tue, 30 May 2017 09:38:36 -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: <20170519112703.voajtn4t7uy6nwa3@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: DM5PR20CA0028.namprd20.prod.outlook.com (10.171.161.142) To DM5PR12MB1148.namprd12.prod.outlook.com (10.168.236.143) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR12MB1148: X-MS-Office365-Filtering-Correlation-Id: 9a698de5-2087-4ee4-5ac2-08d4a7699d9d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;3:klYbyfGGp850xd8lLTRs6GWhNBeaEt5j0osIzRXCx+nEKN/4yG/iAZ3QDexRB57IAxPvLX09y7JwrX48U/VN8kz3Ah35HSyRX880NWl4wpn+GNNtnmi1bOhHmAHEPs/Xh2IjwdcUsqYxbPHCZEBM2PSwltAYZ39OE4/jqQbianaQDLbGiJJP/VSllFk06tU3nlXzN0QvVvm1QBa/woLLSLOP40+jZwQ7pPqZWg3FQmKvTCRb6w3FGizageKYttHdEx5D/w0wWpC2kXn2+Hx8XLTmDLAwi1l78aAAbuDts8IK/HVOWwO+5M6E8FT3I4y3g1DJmXPqtOezUUJ1Fa16nQ5Cb+LcCTQ1Tm7jGLiIH6U=;25:+Q/9oZVv2NtKTND04GRs7HnqVwwONPTC9fzvHjd3JzSB2d3L8L+yfW9Oq0JLjuEPvteHJEd0t0i/jB0DkH1WhriUNtAsolklgYw+PFdPhXb39i+b+jJvRWhfa9FBGo4SKV2EbFyxC73yaidC3qeIb6F3thXZhTfbq3YTnmCAjw3Od1Irv0BxrkWWMJV55xC5dIGcFw2f61lWdeemt9tORM10ejyOje1+Y+9b6rYf93+HZaD/Asy13E/BB89ldgEODgs4K/of1O27LxDUWB9N6Kh0lJrbrLaVH2FqQl6G9q5+FNiIZpMdaTDxU1wmpDTpNMB6iydZUvrDtfFcKGpO3YQvOV/9qJC+3wX1AIFpF/52p5gB5UE50EQmJkzoTgZcBcj0whq1kLZjepAzeyywSeSEEIFn8YwS7dmFANKKrkCepSR5d+CNjyXZxAWwwc9Nbzy8LX4oym3mC4OGIUyWJ5jA84emIB83DV07oKC8oIA= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;31:/dZzVcb0qmDlD6ye7wwSPenjp10/d8jGUGIRFJx4s2u1y+xxd6tjtdrce5xoTTQz6quJ37uuM3qpbuZ2suZIshC5z7+Ya9aJ9rKzZCEqUBq/RSDRiQhJZAfAJGfpFfHN182dlSjj3CWm6fifoPL1bqiaSsTpAIxIOZxZCZET4zSnGS6YwoA4hdAW8PHQrgd5x7eUtw5hGmQa4hqg7TY2lCY8dPLJB7i55xdnPYMjA9k=;20:hGBCC1FnC1/xgeUbMmXQIVs8Gy7vhHnnVk7auE5domWIf+8WBla30oWAmxGDjnx76G/KUItTnbfp6Ja38zS5iJdZF+02/dQDnh0LelC3jmVQAEineiVjgcAQtk0nOhkZp4IBS86NkSuGI2dqOKO8zQSklxISh5ODEbL+ta6C2GnyIFE2IfC+h05bpI+Tt3WgL2oK788QmWQyN2b7Boo90pNuPsaAsYnnq/OI1LxqwnV8VI5OykAe2D7vI6JNP7DvcBS0s0505f4NN8HpDUB/7prPD8I9LvnqSz/O7mHCpNBjbYIEti/VTqcsufOQBCjfzUXtiIpMh+oxWig27qVczOjfNgMhC+cQ8K4yyiZDbZ9Q1m7UlVsCpH6MuqRr8wtPx3GcRbFQYIKSNfbr4caZaXSq/iHpTj3NSTsI59BFc32OGgu8+B2yOdIKgc9AAQ795jOASc1/crTXpPxzLD3GJ7C/Y42RYmmgkTpNlLrbEH+ORs9YbQEj3x6L49bxsR5z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700073)(100105000095)(100000701073)(100105300095)(100000702073)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703073)(100105400095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(6072148)(100000704073)(100105200095)(100000705073)(100105500095);SRVR:DM5PR12MB1148;BCL:0;PCL:0;RULEID:(100000800073)(100110000095)(100000801073)(100110300095)(100000802073)(100110100095)(100000803073)(100110400095)(100000804073)(100110200095)(100000805073)(100110500095);SRVR:DM5PR12MB1148; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzQ6Ky9KTnRQQkxTSnpFTlJDWGFVME5qdDN1ZFV3?= =?utf-8?B?UU1aMnd4R1hEQXIrdDdCSTd1NnpoTXVDRGZMbjE1RFZ4SXJkRG1sdHpYSTh0?= =?utf-8?B?V2YxRldGeDJwcWFJN1crdkhDUkxWdmU3QVhPRFMyUHRjSXBYUjBwNzZxdG9C?= =?utf-8?B?WFdhYTc4S3NJQVdRZXMyQ0NNR0JMWXJxYzJtdHJUWlY1ejUxVERyVktVcThH?= =?utf-8?B?U0Q3VG1MSFR0bVhUL3A2bGF4ckw3aUluUm9Md0hWa2hoQ0pRVzMwQnlIUFp2?= =?utf-8?B?aUhhMWZFa3d2OXY1bWhkV2crcmZBYWdyV3dIN1g0Nmc2SE0wMXBZQ2VDNVVx?= =?utf-8?B?YkhDMnAwVndMZkNvRlFWYkloZjliekFweVoyTkd5dzBLVnYxb2xPZjNOUTdw?= =?utf-8?B?VEFpck0rYnhxV0V1d3pqUFB6bXc2cnptYW12K3h4SkpJdnB3TjRNZEVVQjhL?= =?utf-8?B?MmZSRE0zLzVFU0hZVlovOHFhTG5BQkRZcy9CSmJieWJ5ZEszUDZoeFhGQXdn?= =?utf-8?B?UG5mUFF5WHZyUFlQQUZsblYveVNOa0JMcVFjSHo2dHpRVnMrMUJIWWtaR1E0?= =?utf-8?B?c3VkbmNnT0JrNHV5bkpTaWlWS1AwTlFHc0hQRHpyMXYxVnlSdXVvRkVzdk1q?= =?utf-8?B?N0wwdFNoTS9XWVZTYStOVGQ3dk8vTFVjcnUxdFlJL3hTS09GUEUyME1kQmQz?= =?utf-8?B?Qk1oNmhJWCsxZ3FGSmdNWFVNZEpVaGFRT0IvaHBoZlgycWtCbURySFcyREdy?= =?utf-8?B?bnpDUFRvdGZwaS9tSGdHcDJENWhnZzdNMTNYUlhPWlp1RXBEQi9Sc3FSLzFE?= =?utf-8?B?YXU0bC92TlRYUjFiYlJKdmhGM1EvbjRvWkNoTEN0bGd0NVV6ekFGcTlqWCtO?= =?utf-8?B?dkdDUXBhR0hWWTVIeHUvUFVkTFFsbGFGRnorc0M5aFVrVzc2THhHYUEvUDRS?= =?utf-8?B?UmRQQnZiTFFIb2pISVRmc3pYUkF6c1dxVWxkVlVEaEQvTHJ3THM2SUFNZFFW?= =?utf-8?B?RXNtVkVCZFZya1ZlYUpxR1YyRGMyRE1SKy9OTWI4bjJyQlZycFRHR2lER0Y0?= =?utf-8?B?WERXRVdnSkZOQ2g2eHVqKzJqeEgxSzhLYTEzZHZoUXFoTUR3YnNxdG54NWt2?= =?utf-8?B?bTR1eE01NWk4TjJ0dUR0Uyt6dlcwQnd3NWorQzhzSmlISGhhRmx6bXk2UThz?= =?utf-8?B?clYwNkdjS1M3TTVYMUFLSHhMTDZsc0hLRUNSaHExV3B6TFNBUDI5ZHc0NzJ2?= =?utf-8?B?RTVnbzFjVWl5NDN5bUdtRGU1SE5GV2dNTnROcFBqM2tZbmdTa0ZkT01Jdzcz?= =?utf-8?B?OG83MWJ5bjg4bTBNaFJUTWh3dUpjek95aWtONFNhOC9mS0YyKzlWdUgyVEgx?= =?utf-8?B?bWYvc1hRaXVrWE1EZXE4VStsV28vNzR3UWpxeWVOUHU5LzNOUjVqTERPVlVt?= =?utf-8?B?M1VxV2x0Y0M1SlRkMUkxaUxiblBZQ3Y0NHRZS2hpM2M5V3gzRkR0L2RlUXR6?= =?utf-8?B?aTFqSTBpdk9VZ21nS0dxNFREOGpERDlLUXl0OFdvM09hdTZLYTFQZHdiMkJZ?= =?utf-8?B?dzFzS2s4dE5SbS9YY2RzUW5rUFU4UWtoOWNoY0JIYkVNU3JsbldpT3dDeFVB?= =?utf-8?Q?TcKM96Hh5c5cRDZtNR1?= X-Forefront-PRVS: 032334F434 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39410400002)(39850400002)(39860400002)(39450400003)(39840400002)(39400400002)(24454002)(377454003)(5660300001)(33646002)(47776003)(6666003)(36756003)(2950100002)(65826007)(42186005)(23676002)(229853002)(66066001)(31686004)(478600001)(6916009)(83506001)(4001350100001)(54906002)(86362001)(6116002)(230700001)(3846002)(7406005)(72206003)(7416002)(38730400002)(54356999)(6246003)(110136004)(90366009)(6486002)(77096006)(76176999)(305945005)(7736002)(31696002)(189998001)(50466002)(2906002)(81166006)(8676002)(53546009)(25786009)(53936002)(50986999)(4326008);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1148;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ4OzIzOlpJZE9LUFdxM0Y0ZjZPUzNmeitmK0FyR21s?= =?utf-8?B?OHZ6OWxiclN6QXNnR0oycE44c1ZJNW9oZkhMQlA3Q29wRVJvTzd0TlZKRG9v?= =?utf-8?B?L2JTK01SeXd3UzdnMVdIZ0tqMWxBcmI5dHZCWFROQlE5eU9aZlE0MzUrSklk?= =?utf-8?B?elVxWWRuZXRPMk93NEFNTGRpUzhzaW1WOXRFeEsvcDBtVEhIdEUxcHJPNGFn?= =?utf-8?B?VTlITDdKY2RWVFRJTjBqNk9QSFJ0MGlYL1B3eldpVkFMQktJYjcwZElHd3VU?= =?utf-8?B?VWV2SU5OWko0SmpKeFFZVU1ZK0M0UXNpRklzWDZKNlRhVkk3R1ZaaG9SejBW?= =?utf-8?B?dXkwTExXTTZxZnNOMHduTFZrenh1UUFnTkxaeVcwakcyamNpaUNzQitPUVFj?= =?utf-8?B?OTZRR2FjeWdMOXBTQXUzZUJiL1N1RXlZT1ovOWtjcU5mOFdzdWxMSzF0VXcv?= =?utf-8?B?RU50cTgrOHB6Vml6VzM2SVM0ajEyb3BUeEY5bmZzbTdPOENJc3BQWVl2KzlI?= =?utf-8?B?blVnNHZXdDBoWXFQNW45WTJucHBwNEdMVllTMCtQZm1VeVhyMmZPNUsrQk9V?= =?utf-8?B?bGx0ZEwzdjhLZ3E2bTAzYUZ0NUVkNFV4RUdUWTViN0ZkOURYaVlUNWQ0REt2?= =?utf-8?B?U3JLNHNvb3JTNW0vL3c4UnZia0YyNFo3ZVl5cGVlUGlwaXVLSWc5T0ZZdHpM?= =?utf-8?B?a2l2STRFNUUvZHFTWnl0WFRyTm1jKzlBTHFOMWdZTXJuVGQrSThkd3FmSWtH?= =?utf-8?B?c1dqYVNEOHM0M09JZ3VXNWRZaHJLQllrMEp5Q1BVdVRJMFo0enVPVXU1Nnhz?= =?utf-8?B?bXdFai8wc0I3citORGtSUmMxK0w0aTBBMUM2RnhvNlFoT29YbEEzNkJ3YVpR?= =?utf-8?B?RUdHaUo4YnYwdzNuc3BVZVNudnFTM1hNUk80Syt6ZXFlVWVFL3hCM1ZkVSty?= =?utf-8?B?WmI1dkxGK29KTWFQMFpnbFF5eHFsSXQyUGdqbHZ3RXhkR1NYRzlzeHJJaVVL?= =?utf-8?B?MndaN2UyaDlHUFJDZmg5VUk5ZlhJR1I1NGw3T0RjcXVWaWJxOHRFNFJZaG84?= =?utf-8?B?Tm84SGlUeEQvSkx4a2Jqcy9EL1YydTlwTS9qM1V4U1l2L3c0ZW1UeWFSN3VC?= =?utf-8?B?S2thdTlpWmdxNXBWSzdDVWVWc2NEWkpkbWVFUlN0Q0FRR3JrcHZ6NVdZeW1J?= =?utf-8?B?Q0NsRno3QzRrR1JEL2pzVkR4ZWJLUVl6SkkweWgxN3hYNXlWTXdVbVo4bWR6?= =?utf-8?B?QmlrM1dxME1hNzkweXRkMS8xQUNaczlTRURydFg5a2hDUVNUclNIbndZeDN1?= =?utf-8?B?NmRkbjA4N1ZsK21FWmlleEhROFhDMUozOWlMZE1zOUxDTGc2NjJ5anB5WmhS?= =?utf-8?B?aDJCR3ZEZEg1Qm5aM2U3V21MU2Q1eG9iYmFRSzg2bWJqbm9zTEdUNTJnZHcy?= =?utf-8?B?MGh3KzdxSCtscVlZRFZuVSt3diswcFRsYzN6TWFJcWo3MHdzNHZZRTV2VWNq?= =?utf-8?B?eWJ2bkM1SlZMdkcySkFsUXM3OEtDbnJRNDgxQXFGbHlIendQNEMvSzliZjVn?= =?utf-8?B?N2h6bHgxcHVrTndEWm02eHJiT2VHeVJTbDZRNWFWc3F2emtBWjJ5cEk4SU1W?= =?utf-8?B?c3MzZDhxeHZNZmRyY1N5RWM0MlhEK0U5c0dITjA4RWo4VDFyUkk4VGVacitJ?= =?utf-8?B?a0pTMlV6M3l4R0ZXbk45M2d2aXhDWFlHSmVNemlRc1pXM2hzMlA1YVBQT2N0?= =?utf-8?B?cXc5VmMrdjNLT2NhU2FrbTY3Nm9VNDRXZm5meGV2OXlUb0ViYkpudEVDVVhM?= =?utf-8?B?S2l6NDE0ZnBTaGF1Q0thU2kyb2pKSGJ3Tllod3Iybll6YXJyamFnaEh6U2hl?= =?utf-8?Q?SFPsSp5OOu0=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;6:PSZFFjW0Viqc3OFRzKNVz5tm191p2D53LbsQ6HrybdX/Wz1dAo+3MLybCnWCCFVZr+g3uQ1GM2z7R3Soe7kFKL5kLOs8gxUCFoFDxr789571LnG4KaAQob2kNGWARcDx2Y0LbIMwpgY4A3l4Igmc7c6lNcKewiTRVhhZeajRyKL1OeDEKVJ824gg85JT8v3LXB6rMDmjNHMV5iPeaAl4wLli4kezinxrdy8fGLPSxWQezDA0b3n0YYAZ9gA+L1ToFyV3EExpr0tvhGkHMdMhyHdB0F5idkUaHvgeN78qfq3+HE/O5+YE19q22V8OIc10Mn/AnBi0SKPswwmjVtgX7VhqvWhLAvdqNTTvmlFPNWri3Ypu99AAmNRAeW2uUM8/FjlH+6GlOP+c8htYqvyW0K0kLJ9X4qzNEHo/Q7w5m9aTec8z9oQuZjy2tSIuo/8r6WB/l2AKkau3nwYcV4OMWIdyftEA/PoaRVSbnPlafSg8XAbhPzqX9wSGvinRARYclAOI8J9UtlRj2pED0R11RJ13ptyhWPUN4lJHI6xht7A= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;5:4GMYvODTs6hKLVvKOuM40mULoUzw2Ibf2fYihAJJi36pegFaMw/0IgzntHRVvzGpfxRaCHnoySseUvx2WxecKX3yfs4ubZ/wvmmOpWVbyLaAPFBRhocqolQ3tjY2unvjJcmkfTxNdRAvSyo8a9XaJqeeT8tzlVwPGX01u6xR3bJ54yBIkT1aJKy+Bzq37I+PayKUp3QER9wPPFxjdmFeF7TpTyCLex/zqQmew11YYg/AFmTBc43ktwKC549IvlP0uKRx/j43spqRS2j34xJD7L9VO/veMSYBUBvBeIpltjziPeimpjNVE+T38ioMyzzwTJv+djjYf9ctcNfU8srh0Mfzr4Pb+Db3hxMQfoDFpjsaZvJiMWV9eGhwRBTnoaK6kUWK+99YpGPitcRX6IXStZse/Az0421XRkaH6HNAib2zuja8VSTJbfCUKwG5v5AwuwaO/0HTRgXbvXGnb5PY97yTKAFPDyrqhfEWOQobfokOPguZAMll9QneGGOF6Ngl;24:z/iN1CUF4eublJRHZKokB3xeOnQetr1zMG0zbY43qnkNDEugCMdW1yC+K0BAzKIu7tEUX2uZAn7C7GihWwM6r/ZhF+X+mbd7PREpnJyfUdE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1148;7:Y9XZ0sZB0ayW5HogBNgmtzs0XMR4kNS+C5AW6daxgx97CJ2PyaQs0+6xG4a2DPMwXOqVTtXXM1qxR1YcFQmC8PE16mCpTp4hasF/plRukXHV6KzLCg70CR6SoYLNOsqJWq8RcwTGqUuKqHOlnGGEUDUhwTa9owk8oHGwy7A0V5Kyx8+v2qc0KtgYSLZpNXKL9fnYF3Zd+XfA/StY/s6f0xlR3yidJUhMeelYooFtMLHtTMB1FT0NMeI+JKs8zcTOivMtHugxToW7sHIduHnrsXXIQvgf4JyycpZQSBLjEigV0Iym27ehODomElyD+Kk7+GdyPdBvvZ0pUO2vT5SYmA==;20:HjLCFBTFp90swwnH+95cqGwEQStrM80DgmZHRuzbezO8iLMlNVCeyvyHX+vKeg0pK660hoAlhbNOtzzuhGPEW84aMZTi4Q4cWDcobtGzgyV7R5+pSW3UGDeKUBxrcAPTMeyjA5Xi9r21Xsv5kV5eiQGZ660mGr9E8SeIPuAvlAzfrO34ogzTf+JLo393ySBIzr07IzHzYebymeOcq3bbH5KqtxedesQQOVbphwUf6G9DFHHhCqWhoWgn1ere/69u X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 May 2017 14:38:56.4134 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1148 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/19/2017 6:27 AM, Borislav Petkov wrote: > On Tue, Apr 18, 2017 at 04:22:23PM -0500, 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(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]; >> + u64 msr; >> + >> + /* Check for the SME support leaf */ >> + eax = 0x80000000; >> + ecx = 0; >> + native_cpuid(&eax, &ebx, &ecx, &edx); >> + if (eax < 0x8000001f) >> + goto out; >> + >> + /* >> + * Check for the SME feature: >> + * CPUID Fn8000_001F[EAX] - Bit 0 >> + * Secure Memory Encryption support >> + * CPUID Fn8000_001F[EBX] - Bits 5:0 >> + * Pagetable bit position used to indicate encryption >> + */ >> + eax = 0x8000001f; >> + ecx = 0; >> + native_cpuid(&eax, &ebx, &ecx, &edx); >> + if (!(eax & 1)) >> + goto out; > > <---- newline here. > >> + me_mask = 1UL << (ebx & 0x3f); >> + >> + /* Check if SME is enabled */ >> + msr = __rdmsr(MSR_K8_SYSCFG); >> + if (!(msr & MSR_K8_SYSCFG_MEM_ENCRYPT)) >> + goto out; >> + >> + /* >> + * Fixups have not been applied to phys_base yet, so we must obtain >> + * the address to the SME command line option data in the following >> + * way. >> + */ >> + asm ("lea sme_cmdline_arg(%%rip), %0" >> + : "=r" (cmdline_arg) >> + : "p" (sme_cmdline_arg)); >> + asm ("lea sme_cmdline_on(%%rip), %0" >> + : "=r" (cmdline_on) >> + : "p" (sme_cmdline_on)); >> + asm ("lea sme_cmdline_off(%%rip), %0" >> + : "=r" (cmdline_off) >> + : "p" (sme_cmdline_off)); >> + >> + if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT)) >> + active_by_default = true; >> + else >> + active_by_default = false; >> + >> + cmdline_ptr = (const char *)((u64)bp->hdr.cmd_line_ptr | >> + ((u64)bp->ext_cmd_line_ptr << 32)); >> + >> + cmdline_find_option(cmdline_ptr, cmdline_arg, buffer, sizeof(buffer)); >> + >> + if (strncmp(buffer, cmdline_on, sizeof(buffer)) == 0) >> + sme_me_mask = me_mask; > > Why doesn't simply > > if (!strncmp(buffer, "on", 2)) > ... > > work? In this case we're running identity mapped and the "on" constant ends up as kernel address (0xffffffff81...) which results in a segfault. Thanks, Tom >