From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754858AbdBVQoA (ORCPT ); Wed, 22 Feb 2017 11:44:00 -0500 Received: from mail-sn1nam01on0053.outbound.protection.outlook.com ([104.47.32.53]:12832 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754247AbdBVQnx (ORCPT ); Wed, 22 Feb 2017 11:43:53 -0500 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=amd.com; Subject: Re: [RFC PATCH v4 07/28] x86: Provide general kernel support for memory encryption To: Borislav Petkov References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> <20170216154332.19244.55451.stgit@tlendack-t1.amdoffice.net> <20170220183823.k7bsg77wbb4xyc2s@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 , Brijesh Singh , Ingo Molnar , Alexander Potapenko , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Thomas Gleixner , Larry Woodman , Dmitry Vyukov From: Tom Lendacky Message-ID: <9b048215-0e78-dbf0-e82c-de3a1ee91ff3@amd.com> Date: Wed, 22 Feb 2017 10:43:41 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170220183823.k7bsg77wbb4xyc2s@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR21CA0052.namprd21.prod.outlook.com (10.172.93.142) To DM5PR12MB1146.namprd12.prod.outlook.com (10.168.236.141) X-MS-Office365-Filtering-Correlation-Id: a823c415-4bf1-4b8a-fbc2-08d45b41f9fd X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:DM5PR12MB1146; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1146;3:whj7jaiJ7X9dmqbqyFTFmB6427JfuqC3i6pinqVW1D7fEn4JybVevvq8wV4sE9V+5n+3t4UHyDx6oM5LmSoEIjBslKVVlvrJGkHBzkvrP3LBrq7yQaGsVKPWaWHV2GcuALEZ97qaQQeNs7bmuedWBdDek5cLIINJk0WqDbUoGOie3jiy7eFV57OiP+C8zSnjStBSSBEZCGJfiU+NDsFQn4xXwuUDGm66DQwNsw06j0j/MI+801jmbMxzEKvBJuxprhwm4OHaJq2JZ10rBWqKdr+X9uC+Fg/mkzeOKVXZH/s=;25:ErdBDv2R1l3cxFpYZwEgGHg4pgvJizUw9ncKL/9Dt+4pgsNxa+Q8nKIafEkH096NidbsyR+ce4kCI76DQukyLNCnCo1wDlWdtgtWK9Fl64UHAJzASeNjjJUW41F18hQplKSoVwVtuRgUBRGquMMWcCIrR6HPIHjr2FYs0mcFb8xnvjn1beq9JC7XP0Yq99NUYitWkTsdRF++6tSKTa13R4pRcaDwvcfBEc0kpzYCxt8wYiEUE3E1l0eUSAJDHvztGG7QBC6TjmAybtgTkiqmjhWYdml3Yn7sKP45u+E+Qk81LRvUbY2LLmJl/KMz9C+1COywbeNuJZgF+JM9UnqxSuhup7dQeDgDGxGskwSOemOVmnU7Ymd2f9DOLNNsw9t/uKkfd+MhkKlOjCr/79IYZCIQfzt+TerAivhWejnCxIKHleFzPI0cnYCviNCpOMSxcl9l9ulaMSD0cXovjFQ8IA== X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1146;31:qCxAcEiby5DSTBYBz4WKO2rpogw09NukWMIyn8rlV3svWvaI+65GaDGT8fKxkmsjixK30qeePYU/abTUffDCMSvAYndBgNOD22u5MCr8iidzcKIuVmQMJRzcVEyRzWRMvn3SCOTj3l6mQd2dPQ7UIgqbWMWDdwrypP7D38T0om5Ku6kdW/tMVMyc6NR9neQEIRCZivk2SZNXDFqzQ+HwN2alq2JoZyB3ExOkwQsacUsYhdUBDx9L4m6dmlhpIKft;20:/M0NycBVgVHyLClKU8sjDDtN0XPTXYzMIRaTpqyN19um9+1eVoBhU3HVeLmEVEs/nnh+G1QiqUK1a/RXAiYnHyu0rzWdshrZ0pyMkks6KyvfwJ0+BBgNYdqsteeOCqt8rzDPCBfoj9BabIXl96ZYZ6Y1P0L1Bh949UgdjnJssQrL9KgjO2GyVDb9A+W4mO6OfXBd/dLXta6gJFVRhJiZArPzauhSKIwdd2cFNDRLC6IwQd2hRfQLM9ud4tOeYeVAPwJspwIAJrgdpl8cxwPiy7uyjCAnayinFV6Cu14LIOUr+QKSb8gMJBUX48COjxK/IcBpri6mraDGorys5hSlWCFAf9AMtU26xV4kQXF+fOy2PTgd+MW+qz9R2fVkl+71htedmS/OTzbLAr2J+wwkzZoPMc6eHSmKCVFxBQcENdC4cyqaHmS6Hy00c0LAfCcrnQK+gXLRbTJdAGl8wFrNcV4KPH0nmWN/S23oGKZi2xPfUEVHBOqbwdKBKrKv/I0q X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558025)(6072148);SRVR:DM5PR12MB1146;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1146; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1146;4:XVKO7aBYOhYSavAQLghDi49kMTaSAkDAVDhsUpI4qz3LN46uaof6ajtKJpz/zYOyN+ARHHFoGQsa13Q4RPZymuS/PtFbbOLEIuLo1PBuzwZTsABG7TN6a7utpGMeMXz/GKETBe3wjoqzzDE5J/SlqyTHdERU/vEbtaRS9X2sri3aATafK86dU4Q7JvaJJOZb2eB7vuo0yNjdYzr74WejDmoS9tjJ8lKJKXc/pikildyztBxr/WJcItO3LTlC59dQGYfakUYIia5IsO+IHJn2J1lOUVkXZ60hsfDu91cHszZRwkGIHLwGVHe/Pqwxpm1LQ0a2kdQOdaGsKasPo58UQblcay92sktuf765FDOgOhJ+J3UAT5cWQ/VoRJdFfWYJ/x/L+xTM/MTfzEu1pJ1dpqRQNFomN3QAsLH1W5ii3sJNZ/gJRkBOd082ypmppmiEqJGCPturaWevV7kstiQH6v9kfrA/VCiBNZRdthfXIe6hin35SBtyeyl4Px9BREEgXde1bZKkjG+llQCIWm+Ls6It3ZtCb+IIJPZs9AcvyRWvnOPWIsZ5fKwrMhNMJcRHihe/OAfjmgCFaYxpz66yVTY1Hljja3x4ntSOt61LaUJyLjCTqc+0nevVKAKHuixu+YdrMO4X9mp96eRt5qS3kQr24X4GlTHYOQnDHrogRvc= X-Forefront-PRVS: 022649CC2C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(39850400002)(39410400002)(39840400002)(39860400002)(39450400003)(377454003)(24454002)(50986999)(4326007)(65826007)(66066001)(6916009)(33646002)(65956001)(6666003)(2950100002)(83506001)(36756003)(8676002)(7416002)(81166006)(65806001)(92566002)(64126003)(31686004)(54356999)(7736002)(42186005)(305945005)(47776003)(6116002)(230700001)(189998001)(76176999)(3846002)(25786008)(6246003)(110136004)(53936002)(23676002)(53546006)(54906002)(50466002)(6486002)(2906002)(5660300001)(229853002)(77096006)(4001350100001)(38730400002)(31696002)(86362001)(90366009)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1146;H:[10.236.64.179];FPR:;SPF:None;MLV:nspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ2OzIzOmQxOTJtK2l4WnhSdndPUzVCTHpTUGEvNXdX?= =?utf-8?B?ZkxHRDRJTi9ka3ZwaGpDZjlwdkw1TzR1dE53dWZLVm5ZTkpuMHNQWDRqTnZn?= =?utf-8?B?NWNCU2R1ajIzMFNBc3FMYThwWVJVYzFPa3MvcXZuUjI3NGFFcmRaYktzQ25x?= =?utf-8?B?R2xJcmk0ZGcrdDc5YnRMbG96TStPODRTemtxMTNUaVdFOU5WU2tUbWhHUEtn?= =?utf-8?B?dkcrbTV0VENUc1FFak8zQ1NnejZvUWh0bDUrai9SeXh3amdKbjY2ZHRNM0N4?= =?utf-8?B?NXR4dHdEeEZZT3RrOFUzRkc2a0RMVzloY2Y5WXpOYW52b3FRZXE0eTI0enJP?= =?utf-8?B?YWYzMFRWeDlaL3ZBS0wrdnpWQlQvUWxEbEhuS1IzeE9oYnd3WTlVb3VkRytQ?= =?utf-8?B?YmJMdXljRWFta2YzNlJ1aDZpNDh0WFpNOThHeHFSOWU2aVJDZDRaeGhDekpJ?= =?utf-8?B?Ymwxb2FrWERBaVA3Y2lMWmlSMGIzd1lNVGVybHZwbGtDblFhaE91MW1ISFFs?= =?utf-8?B?ZzhwMXowTkF3MVBaN3RaUzhnOUxsSUZ4K0FMcjRxc212WHVVRDNZMmxoaDVL?= =?utf-8?B?Z2ZtSDNBSFp2RGhZRVdhcCtjaHlSeklBUGowbkpOdmw2ZkNkZUVWTW43dVRm?= =?utf-8?B?L1pMR2ZERTRFdGFTYmtBWWJ1N1lncTBVamNadEdkQ2wydU9BbU45V0R6NGtn?= =?utf-8?B?M1Avd1dpaW9BU3NpTUl2eHVIeWU1YlIvSEdVRm9uclYrYkRrd1FxcjFWZ2hx?= =?utf-8?B?WHh0VmxhZzFJd3BzTjFKU0hpUmxiZGluT1pVeXkyZGUvWTUvaXY0MXNvZGtT?= =?utf-8?B?ZkJRa3ZFWHM5OUZRTzNMOXVJVkVaM3RvUGY5bUFhZXdiYUlPN2lRajJubXJk?= =?utf-8?B?Ti90YTMxS29hMS9LbFAzWFJHS3Rwd0Nwd3MzdnA4aVpnSXQyajB5N00yOXlv?= =?utf-8?B?alIrNGlUMlFMZE45azV5ZnB1SGloQnRRQ2JQbFlPL1hKSEdab3R4b1ZpQUxM?= =?utf-8?B?ZnFEcXBBbWZROEdyNW1NNjVmU0wvOFdGdnJNVE5JcDhoN3lCczM2S3VTaVI2?= =?utf-8?B?MWtnQTRPUHloUEZremRhOFVWVG5EaUZnY1FCLzBuWlVQNW1Vejlva0NkQU9n?= =?utf-8?B?cSsyQ1ZVQndmbGdhVkRRMHlSWSs4UXJOVjNwZTM2VG12dGxUOTMzSEZxY0pn?= =?utf-8?B?U2tHNVJQL3NNNGwzR2dsNC8rNVdNSHhmZzhwNFcxMEorSFBEU29od3RPUGJN?= =?utf-8?B?MzhXUDFKVitLQTcrRENjNzJOanMzeWNRUEpJSWR4bGVCZjVHNFdtRTdvY1FU?= =?utf-8?B?emJ6K1ZDRzh1Q2gvSXg4OGEzN1FJK1hIeXUvMjlWOEtZajhIZ3N1THZkTlRa?= =?utf-8?B?MXBrdEpYRnF4NlpxV082NFhacGlEQ0JTZFgyRTNCam1FR0U1MGZqOUZoamsz?= =?utf-8?B?ZG8zR29YQjB3dktaeWQzOU9ZdU9LT1VMYXFCOFlVTjlxa0FXMkUvdzlTUUE0?= =?utf-8?B?cU05dmlQdTNZTmQ4bEJwUU5PVXczWXVFUGI3eEF6K3p0c1lXSVlnbk9lRUhI?= =?utf-8?B?UFc0WVlqdGtxL3VFdWxldUwvdnd2Mms4QkZTMXdKNHVBWitwOVlEZ3lrODdM?= =?utf-8?B?SkFCV2dLZG5JMzJ5TU8wekZXMVRPWFlMTlpabWUzb3UrU0ZhMkxxUVZoNW12?= =?utf-8?B?WDFBMHJSNkdaQ3JiTTl4TUlBSXNwbVhmVUxnQTFndzdSRHd6RERmM3gzVGp2?= =?utf-8?B?bHNSZk1teGZxTUpuMDJIeWtuNy84UmlUSXl2V2FyeXI4QWt0b2pGQURlby9J?= =?utf-8?B?Z3lISFpKSmF2M01vTFY4bEZ0TGoxOVVkOVNDdXd2YkhyTkx2NDkydHg1dlFH?= =?utf-8?B?VTlLbUZFeUw2OFJyR0x5c05OMG1jVlMwYmZNTVNIbXF2c0hEbFcxcyt3azZo?= =?utf-8?B?UXk4dm9WOEFRPT0=?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1146;6:mjBXnW+CZqxGGwviPCH/Fkp/3KhaYSHV3mN34+F15NCO5WWagwG/GZAmt496yP8YNrQZ7gnKTylckhuVUjN2U5tyOJNSjk2aQtypHlOKzdgZHreQd0Tdq5w4SQhM64X4aP2hkBePxHl6lI2aK8OmbOPa8L62oITjCD0MezftU1AtteY+4gKqZRgVTSn+RlRv5xCQkrp6v9nEEFDQXePi7h1Nl4jlBSJ0EIVwpn/ItRUhR/v5BTlVVO4f5FPQRfjgT4BzV3KZ8PzcDVPbtyhztyoLM8bEllxzlgbs+3A0xDLNyLPhKyZcQUU831lmzLqJInI3IWLoPyl0yuD4KXVsoTWrCdwtVJ2Yyd1xsPFL94a9wYpHdJt7aBdwMFI1RyRKi+wmUOlWwfC5UC1D2SJWaGjwSy43YKBgGfMV3W/ovr8=;5:1A78sTCNFb7mE8yH3rY4QnF72UYBkYWExzWWQ0lyVMvncvWnL2dIoW134KY5Hw7fiVGnT+kccx2AjND+BE5EbYbRbWzxD+q/Hjy+RCTBcp5p+T/Kkd4TDOyd65CWNgPZj1Wh6wNWK3ZfRfvekV7/IQ==;24:i3gQWfMrKOphhDJOi50zbmE2SWfI7HYm4wS6ybDl6M8KYqhjkjkO0/5GlLSh+M3Cyey2UnAmf04McKCwA12NU4Uwf2m/MkOEcX+7f+Oe5aM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1146;7:A2Z9fqpbwCpthMfdbFw5MUv//IONrwRwPI8OaoWMxLPqj5G/TE86KunEZ/MEfRXIkEdk/YZQUcx8XIN4m+28WbPN2vA6ucClYbMDUsHGkOXvhWR1wnJbtWQen4MrjPi7bNLhFf8lP9ollg3w+5GijAqmSIuWcxaYqccLynKKvRJYM3zpEKo9wP0EgiVu2sIlcYj3gxxP/dQsPlhS5hn9PgqCDNyz0/Rn5j3GXVvZ1czcvGV6QL1E2MhTc5YNOVb7bqehiK0wjB9c58RW3UFt887vu7zwwYT7fk8oVQKFkx8MzwpfjTiaQXBajvS4d8SOH4sqTRepkjEHeWVYaqB+ag==;20:FLTtVkSXaJkE9lJUttMltRWwaBW/mhhgYyKaAwxAWvmml+Ah1F1rD11478IbPUsMGvPlE/8nop3Pe9bdPx+/N4KaVLFmim50h3bkYLSEE4i+SdHh5Oz8FQ2wu7zjx0ySGP1jjJVtfHcvhNi36ZPW07ebAp8OBiTU8yP9GOElGbxNXKc3HcpTs5FHWYsntqcJLkJpxx2Qh8QTf+x6xolzcR62Fqp7v2teY8TV8+WLZPQ75dqRkE5n+q9bqaLv0PA/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2017 16:43:46.2702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1146 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2/20/2017 12:38 PM, Borislav Petkov wrote: > On Thu, Feb 16, 2017 at 09:43:32AM -0600, Tom Lendacky wrote: >> Adding general kernel support for memory encryption includes: >> - Modify and create some page table macros to include the Secure Memory >> Encryption (SME) memory encryption mask >> - Modify and create some macros for calculating physical and virtual >> memory addresses >> - Provide an SME initialization routine to update the protection map with >> the memory encryption mask so that it is used by default >> - #undef CONFIG_AMD_MEM_ENCRYPT in the compressed boot path >> >> Signed-off-by: Tom Lendacky > > ... > >> +#define __sme_pa(x) (__pa((x)) | sme_me_mask) >> +#define __sme_pa_nodebug(x) (__pa_nodebug((x)) | sme_me_mask) >> + >> #else /* !CONFIG_AMD_MEM_ENCRYPT */ >> >> #ifndef sme_me_mask >> @@ -35,6 +42,13 @@ static inline bool sme_active(void) >> } >> #endif >> >> +static inline void __init sme_early_init(void) >> +{ >> +} >> + >> +#define __sme_pa __pa >> +#define __sme_pa_nodebug __pa_nodebug > > One more thing - in the !CONFIG_AMD_MEM_ENCRYPT case, sme_me_mask is 0 > so you don't need to define __sme_pa* again. Makes sense. I'll move those macros outside the #ifdef (I'll do the same for the new __sme_clr() and __sme_set() macros, too). Thanks, Tom >