From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751170AbdE3PhY (ORCPT ); Tue, 30 May 2017 11:37:24 -0400 Received: from mail-dm3nam03on0043.outbound.protection.outlook.com ([104.47.41.43]:64144 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751002AbdE3PhT (ORCPT ); Tue, 30 May 2017 11:37:19 -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> <7c522f65-c5c8-9362-e1eb-d0765e3ea6c9@amd.com> <20170530145459.tyuy6veqxnrqkhgw@pd.tnic> From: Tom Lendacky Message-ID: <115ca39d-6ae7-f603-a415-ead7c4e8193d@amd.com> Date: Tue, 30 May 2017 10:37:03 -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: <20170530145459.tyuy6veqxnrqkhgw@pd.tnic> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR20CA0034.namprd20.prod.outlook.com (10.171.161.148) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-MS-Office365-Filtering-Correlation-Id: 64b297c0-49f1-4026-68e4-08d4a771c08c 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:c0kur54rdzg7l/wOQ07s8Xh2+KEtxMW6aMXrLn1frAN0B4jjH2q8n/HF1hQxZHxw1eTjxXejflSC8EQ0gpjXjSIsP+gnHVpp6kcGSaYudlruwRRcFwLa7qJTgdemH1T8qxGSTu0Dq9d7KF1ntk6Huu+1Z1UiAUcQLp3RyPZBuyu0PsYAAHRZFPaTXNEb1opyi3DjW52CesBg5ICboBja4xjmVDm9tQ/Yry5ff5ogr1tAYD1uJOQcYSDukWU5rad0ao27lynpGhGrzZ3UFNrSJEOlCgYptclgpOwKXfOZ98rdKBpBSIVlnrjmBxZwQsPOFbI2bF8FddFsMqDFBBcSunaWlRPqihc7pZunExXXO44=;25:nSJtSZXpUUs8B41pjLrzhWpJRcUX0RtIsiETaDChWp0514CsUspl016fGpukUyqMr14d8FwnD+Yw9ysX7F0UXSrQ70gtolC4nh/VHKQ/Hs1nx/vnSFZNJ177BKorll9Rn3jG1mubx6IHAmC1MlDVONBRWlWeCL27bwZ/n1KSy0Cr+vvurL0a/RfmJC7N7aqWaagysQboNWEkBEFsTUSfqp/rSAgCojsFVyIdozO7xewpkOfuRA8dRjediIIE1hxXD21vlA8vGLRa4aoQ88txAJofHNRSwDvST1+v49w3uZNIfqMC3XZvt2SyIdrIg0bk4YukTGs/C1Bjc05P2hjny2fAVdy8xAIRnHvRQih73QVkhLOpPvZU4xRUzY8c+e4cWPt7S3TNRshI2vFwncXlo9s/eEzGkAR7xytKvcINIM1EeIPBkNkTIiWAfNIZfXdmg/Vejt/KD8DCHqe1MftTUwr1U64YaljdJughLfZDf4s= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;31:3I101OyLyXyE7YlVoAPcw/quUZ16vwnh1OwcY0RBf4ACT0PC3HS5njD0XeO9raceu7aGRpF895Hw7RfLMvrB7hk5cDct2YsFUacYxPCCcYy1qRDUWfYfF8SIKkB2f3Gx4RxvTnPKVJCotGkmj2j69Gjz71ycUROAjEihkHLaZJb6expvgvSJePw5yNGqE/vjIC0Wn2AcYn6OdJTOgV3MJMku1QbpALEUAirTR066P6g=;20:6hxPGqIaHp/mcUolhoyXdbnLfLtIf/K5eh/fqyLz/pbTk9OAU1ZRGXzEdqYS/AmCCVNbq4C0Rwp0+YgkIjFImE4LAXIN2Uob45iVOeXOCnVrhq78PYaM27qTiYbnUp+pwSBqGFQJf9NlTMsS4RMGtt9lTcGROaHuw9xu2aOHFFvK43psDNrHOSfnnHJzgjV7OQOkqm7DlIKVGkbd8vRMBN2ebNFeDF4oySq/nDqF0XsedbSLdBTwYjrHv+3qYR1KaarxwKFd7zQpxPXmzxxP0D6FK+zzWMylIYH+Co8LSb+8YqorTne3KLAr2ZouZXVuwghCfv8XgyrJMzb8+EmTXY7K7udS+B9GWZojVkiuIApQARV1tuNrK0/+tYOZBTk7jqK4pWEwGQcicM/yR3y5HD0jpu9GlUsg+kEU/MCrVzDJA9v33RJYZXl8CFYFND44RHhOwUaNf3XXpsTDsZsgVSlc90WJyjUDNrT3+24Jn3DGiC737cqNP7niUBFShy+M X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123562025)(20161123558100)(20161123555025)(6072148);SRVR:CY4PR12MB1141;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;4:8+VUS7HMYXnPD+oFbeNBEtXuZHT82rzF4ERP9kW6ATKk7bsTggL1CrBgfiMOfiyLlg6BqN2Dxp4md+UnTWTIrSfCX6cCfeRzkclZmsT7UnThfT7MiZXYXOFivEDVRdEcQUJThdT/XkJ4fTnKY7gowbMPMMiCebVyk0L05ze62fQn2+FrY7EZA/8ZoO/xUmf4roj2XR/K4WkvkvvBevuxt6InOiMerI62CesMzcZEW4CIsZWrh0jfpwRhWi6HIlpRbX7bfIjEZExoapBXkdosXOermIYpyiiE49UwabNpx0rExuJwRrqm6Qs2Ql8qkLjGYZP/0IuDhY+s1ohgPVCjBt3JPDNjuJHfqNUZXZCM2/uQy1PuydQfOPiWsAaBMBJjrZZx3geL6pKRrcGPBzkzQRnl5QAppcg45/nGX9fnG254hXSgfzDVcdXdD7B28KjN2Tgwo8gO33rSGG40bvwMBMx4NfxAx2k5QNzvV+jd5dlLCaXyb3M23uHvDn4auGqA49Vu1ecmMt0GCrhG51Fxv3BJpdWbdT0xG3wGVnHQ6E+Rq/j0tr5Z6AKJA81Yz7rhFeCkmRI6kxUTGltOttwW86HDQGtsLbgNljPjIBvIYtlAnvf826oRAyZatt//PV1dIH0t9Jvvw2Vhn2VMaKOnEfegjYkBv83E7PFwzzrWTzumXvAV0clYqEc5ux8R9KGftN77vXS6SlqCL0walBcCxWoD0juKdUukTy2GDdKzcs8r8gvFCnu4/Zw7fB5w31aDDXBa72OCXn0XybdSNpXh2XfoP1EFlOAoEq3n378ufqBXhAkDkx+qhMY+6JB5Dedb X-Forefront-PRVS: 032334F434 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39860400002)(39450400003)(39840400002)(39410400002)(39400400002)(39850400002)(24454002)(377454003)(65826007)(2906002)(47776003)(230700001)(3846002)(23676002)(7736002)(305945005)(54906002)(6486002)(53936002)(38730400002)(6246003)(54356999)(33646002)(7406005)(7416002)(64126003)(90366009)(72206003)(77096006)(110136004)(478600001)(6116002)(229853002)(31696002)(93886004)(5660300001)(4001350100001)(6666003)(76176999)(6916009)(50986999)(86362001)(2950100002)(8676002)(83506001)(42186005)(36756003)(66066001)(81166006)(25786009)(189998001)(53546009)(31686004)(4326008);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?MTtDWTRQUjEyTUIxMTQxOzIzOkR3bHNPRzJzbmVVNzVHVzBkeGZISE9nNWE1?= =?utf-8?B?Rk44Y2g3S0tXMjVKSEhxZEllalo5NzJSaUdMNVdEK1BqWEk2dWRpdURxNUg4?= =?utf-8?B?aUhDeUJrN290eTgyQ0wya0puSjhFV29wampNMUlPNzlRNTE1WHRnYXJLMHQ1?= =?utf-8?B?UWV1TTNNRlJSdFIvREZSSG4vR3UrbFJFaE1MU3JENWVUaEcwcFFhY1VDVlQz?= =?utf-8?B?VUhROXN1cm5rcXFYRU5Mbmg0WllCaWZBNVlzQ2NCQnUzSmlMMnZsSjZBcHlk?= =?utf-8?B?TUxraDhDZ29pRm9oMGtLOGJuM0RjcTl0TnVsb05wNUh5aHZ6NTRDa2FBaHRK?= =?utf-8?B?UmV1WEtncUIvSWFjYnVuQkV2aVR6T2pDczJHREQxODY4R2UwY1ZQM1JzUWt1?= =?utf-8?B?MXEwNXN3R2h2c042VEFsTXRIY1RpZlBuLys5dXh0cUdOOWFsbnJTbC9VR1JG?= =?utf-8?B?RE1rSGM2amNLaTBPU3BIeWZQNnpLa1N4cnQwNzV3RVQzUTZuVTFyWDBZd01u?= =?utf-8?B?S2hhbUdudVp2MHlEVUYxeFBZWWUrRVp3Z1l0YkNKRU55Nm5Qa0xmcUJ5dXJk?= =?utf-8?B?bk9kQW8yZjVUS1JKUU44ZWRrd0VzS0taVk05U1lkT1FYV1dMUkFqYlljUVR6?= =?utf-8?B?V1h2cDZGN240WmdPb1Z2SlVGK2U5K204ZWo0cG5vU2RYOU1IcXZpOTFwTmZY?= =?utf-8?B?UStPVk1IZ0ZJWC83YVhRNHl5MDNSaUxKS09iYkMwNXZhLzlHN0dJb0NZNThj?= =?utf-8?B?YWtjN29FVmx1cUVGakhvVUtySmpTTmdrVHloTWEvUGlVWGFPWlVxaFdIMVQ1?= =?utf-8?B?bjBvUkpud0VuNlhiczdaZUIwL054TWNicXlQOUlvY2U5WXA5elhRK3M1TmNM?= =?utf-8?B?Wk5TTFJVZ0lySFM2SDlMRm5nN3hXZVNCa25Sa1g2ME52b0lYM0tnZEVldXNR?= =?utf-8?B?b21tYnlNZjd5dFlSbTZ6RHNwQ05EOU1XU1VVWGh6QlhoZXFuTUdybXBNdEpn?= =?utf-8?B?cmJlYzdVU0lVUlRYODRiaCsrSUtlT1MxL3ozajhnNXZTMGxYN3V3aHh2M3pC?= =?utf-8?B?Rk9EM0ZJSTYrcUhKcHFIU2Q3UFk5SjFSSU96TWl4dEF2V0J5R0hxK3VJUUNG?= =?utf-8?B?VW1saThzdUVBT2toN1hyZHF6bmJuWUZudHlQbWFxYmVKWTlnQjJqaFJCRG11?= =?utf-8?B?Ry9GVXNRTnl5Zk9xMU1zbjRtRzZoMEpxNWxGaDZneTFmSGNEeXZDZVNzWklT?= =?utf-8?B?by90WHNSdURoaDRPTEpQOFNPMGptQmxXSXZ2eVlBM2dXc0t4V012czh0d0Vl?= =?utf-8?B?QTNyNHlGTnVRdXBFZjUxNklnTzczczExUFlGZWsrRGo4eHFac0Q5eG5kRVlN?= =?utf-8?B?MTlJMTZ5ZUZ3cGpUbUU3Mmplb2JCR1RRWnlpMms5Z2NyZEtqYW8vZ1paUjZi?= =?utf-8?B?MDdQbE5nTHg5VHZNbCtDRlBINjhqcmVpMnprYVpWdjIzUHY5aWZzRk1MVW5Q?= =?utf-8?B?RmRsaXJmWFVid2NxRnRPdDNGWXVadU8xV1ZBYjhRVXlOTnpmaUlicFpzaElx?= =?utf-8?B?TFBGTE1mOTYxdEVlQng3YnBtQmVTN09VYU9rbWNwSFBIOHlJR3ovWHNlVGs4?= =?utf-8?B?MmxlVmFvclNVanB5MnVLVWZVWjV6TUdHTHk5NSttNmFhNG55MHJDRXFvd0t0?= =?utf-8?B?VUNlaFRmYUVwRlNSNWVyTkNpVDRGTmVhNzdrTmdqRlZ0Z2JTdE13U200VC9m?= =?utf-8?B?cmQ2TWplTmxPWHVnelg5U0ZCYjlRa0NsamJQNThvN1BTZDBrdFJjK3NJMW9s?= =?utf-8?B?ODNLSU5Nb3RMdWk2YWQyUmZwK0ZkL2lHMVROTTJGOWlEOEYzRWlWTllsYnZh?= =?utf-8?Q?+4Ua2qkOXJY0ihnNzFOoqy0tkYt4/tWJ?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;6:96ZGbk136PrduGeILdsLcLrymNr/Lf6PhS5kF5qxeQWjUYSpNHRNAXNf//uBU181c94gIF1BsUxnwrqQEd84hEVV05S3Aq8GMkAmDVNd7bFULoxgmQG7irDRGJJ1k2PLVFupqKMCm7lT4mfP41RRQ1tUKafCaL6LLreUqr+CCkms0TfEkND535zdXfcqv20kB5V968V6aahcXg65w9apoGeF9gJGZAfx7vE2Du3ZY7ECdRuJJ2K75wRo6IWJWwDcUiROAk7jEZWR/U2cSqY71AEnTtRt0omRZQSbEKyo48Jm3+Te9NfiuMtCLxqHas7EkyV2LytCN9SpdVdcvq4tw6Yd6rN5YEawn+uCbJfOfZRCHScnet4xhxbJX2fdvKz2bwcQl5IH3TR1FFsnC/fuQjAU10q6hHEzbGcWYRIc1TmdFL+ksnTWzwpF/dPfPs/LNHow0PJLjXCQpMMdLT/tPSXqmQpuP7HTBGXh62JrRn+d6hJRM8tzxfIAK5dCrGN0VEMP4FGRVrUw64iIUIqC7omlqzC71RJcWJvPP0jhW6I=;5:GjfyebC3BGIJue+FR3aumFaduJaF0OTI9XN1mlCXYQRXUMsAgOahqBI+ptkO+DYf996vEOYe5MTjl6WhQKl7TB9y/IrNvkCv3KNd+1bxvA69x/sFWMTfO9snAs/HNwHsruDW1ZnMpocPv0+d2J7dAW2GipmH2MM4cc7PJNF05fc=;24:PZT94cMKhwEIaPamCSnrmPi5JODP9bIOobVhSpRK5IJkPyg4rWsvfOsuytGBFoJk7xhQUHXKrlogNUt98C7q0fUE40NO47+POEazbUS1fzw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1141;7:HI+kzA5BlNAnjaHk8rWQZHY/zmxLByK6wTdGsmdQiBKveVoNizSUd0zH7Gw6Wh4N2bamobAts8NaUIuI98E+HrPfDo3OVyFm4YTo1vh1a1bCBNjOL2R9Y7Dd4sHg9GlClMH8LRUokA1KPmODoPY+JL8yKDNF7rthIJabGWJeez/3O9RjOwWQgDwzdn4EZ6rEi/2inzGBPKodOSS8TpTzZTPsemlDw63bvwitTlUkH8Ew6l7gPlTSi0FzwRye0igDC4dMGuS0uDQ8qrgvhf8+zGL5Ee5TX/D81f36vv2qUxcg6oXQxlOe3sPxtwzoSP5o0HAnomxA0Jvticm1snXzkQ==;20:GuXiJ7WXuQ0WKLP4lUAgOWpDXM33bWXDclg4xKBtFauZWUfzqex0UIK4SgR0xgikCspEwKWyUdwRclOMp4ARGyukHm0J6+DaoA/txyjlWXgCU0k5Mn51fA9jFR++YNsY9n6tvIhYFgOdYTICDpN/I6j8kwWJLbSkD+10zdDLq7QNOSt0UJG+AFGPb8efYjt9uGDiuIGidqHT8mLNUPNGqpf3LCDgCcRu0AuN+D7maRFtHdTXWZNfUr8Fp7AWzMaO X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 May 2017 15:37:10.5589 (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 5/30/2017 9:55 AM, Borislav Petkov wrote: > On Tue, May 30, 2017 at 09:38:36AM -0500, Tom Lendacky wrote: >> In this case we're running identity mapped and the "on" constant ends up >> as kernel address (0xffffffff81...) which results in a segfault. > > Would > > static const char *__on_str = "on"; > > ... > > if (!strncmp(buffer, __pa_nodebug(__on_str), 2)) > ... > > work? > > __phys_addr_nodebug() seems to pay attention to phys_base and > PAGE_OFFSET and so on... Except that phys_base hasn't been adjusted yet so that doesn't work either. > > I'd like to avoid that rip-relative address finding in inline asm which > looks fragile to me. I can define the command line option and the "on" and "off" values as character buffers in the function and initialize them on a per character basis (using a static string causes the same issues as referencing a string constant), i.e.: char cmdline_arg[] = {'m', 'e', 'm', '_', 'e', 'n', 'c', 'r', 'y', 'p', 't', '\0'}; char cmdline_off[] = {'o', 'f', 'f', '\0'}; char cmdline_on[] = {'o', 'n', '\0'}; It doesn't look the greatest, but it works and removes the need for the rip-relative addressing. Thanks, Tom > > Thanks. >