From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752512AbdFGTYJ (ORCPT ); Wed, 7 Jun 2017 15:24:09 -0400 Received: from mail-dm3nam03on0087.outbound.protection.outlook.com ([104.47.41.87]:33712 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751929AbdFGTQt (ORCPT ); Wed, 7 Jun 2017 15:16:49 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Tom Lendacky Subject: [PATCH v6 18/34] x86/efi: Update EFI pagetable creation to work with SME To: 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, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Rik van Riel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov Date: Wed, 07 Jun 2017 14:16:27 -0500 Message-ID: <20170607191627.28645.4398.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170607191309.28645.15241.stgit@tlendack-t1.amdoffice.net> References: <20170607191309.28645.15241.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR16CA0038.namprd16.prod.outlook.com (10.172.42.152) To CY4PR12MB1142.namprd12.prod.outlook.com (10.168.163.150) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1142: X-MS-Office365-Filtering-Correlation-Id: 471e41ee-b8c3-427f-76ee-08d4add9b477 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;3:5PX3jWKJUg5FO8q+AmgrtZAn/FrSs8HIJhDACQF4phNKL2qtjPG7eJ9WqdgX9+d/6Zc5cLTgqBb8X9AMKVQnZItaypIhwNF9rScH2r1R8roREnA/ZDgxYXFO5oGDU4xSeI1ajbq0qzaGw+H39OtLB+M/2SrOZy3n45/RIytWzLTntr/9DsEFDKyeGgN0gWJ79L7EgNPtbZ5zhBdT/ES9FsiB/wnazuNqCDFAaieiFF7KSS6ktUOKPbSNNkNOL4Pfr+1/No7rOBKxuxBjl+ppMnxJ+vLaMaol9X45zBHAVTHkN8+wrFbNYw2wnschYlxAdv6W5NGLRLitTrfPlS45iRs91noRvTfLsxgsnhhKQDo=;25:rNmtvNs+/0t1NkUPZESPt0wK/iEDnPN27hZWuO0eyBJITKkhvybx7SF4ks+GiaKAHOPQ2EehKT4ybwW7NgsOxQe3BNKNr+OPp0t2/L1Vw5lXz3ukelkozEXYkcoiamKo8uYeiRlsmBGgF2MIlrg9qSWaY7aWLcf/6izvOvKeT/ENttjo2Qf7q3bB59HPKJ46gWRHZf9ZZ1euxMo72dg3I9EH2OEgSx9zwMj8wxBjsB4reqsqUKF9RLCoC5E5avqo810RlTkLZNGgXlr6xviPQULL/UTzXERItOMJaxDe3EXx0BJsO8kBtIMEXol0lJkVMSbThRkIF3EcqeTxilWlgckAwI2uvibVObhFoi6TquJi+cNdgxD5u5kEuyxKblmwSRCGIxVU7BQp+jScHvlwnws6XU5aK/mKY1yn2kuNP9gIL0RkrSAEc9SZwd+rmhTDJPPIqwH1dsDPYTSjGVYbGgsQUFTPSrVBBd8gGs4loCs= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;31:1wwQeITV41OzWZB62DI8N8dcuXrKKCrSkXQssYSHBUIH2hKd7IT3UgRqePtNB4jTrVgqRhennCAhIWxUN4Q6nGewT8eW2T7F2PgchqBhh+Uup68RmKucnU6LYxhL4nu21TJspowoAyqSoOGCSWkVxN7LDqWm4FzuzErR3fyeyhj687yddYZmBeGm9nDUOr+Bwutme1ElfluVghbAW9wpKfNE6+tsWLx77tCiQqZZ5p0=;20:QR095gCDmFSN/g4rI0sTepXpPw5W+n0FGJJcwHW5C/DsTdFLyinmMtb1zu2mfjnUdOAlWaoyaK1WiVcKuap0cAZfRwyo9bNnC5hOIoIxrN35dEHH66JnHRxhWuGEKH67PkG6xPWuf48o5KVKIeXTTv8zjCJWepVBAR4fOAmrikaD6HRV0TCDAbW9ADw9aYwNMxwr881O2cfMyGVrRVqiB1K5JHeh8K9M3vUrLKWpkC/PIqAw2PCjTl6p9COFzlFKKvbcvUCjteUO8HFvhsYGQg5m1kKXuFk0p9B2/+QWWjH1A3+/htu7TjdWPJf13AheaUYdUfVO+fYmRVAlwo4sOGobilFa96JsKn2zZ41VPQ34lFLZTsRvG80DKSiJBK1gK3iA/Pd3T1gexbKAD/JvqzwFNk9dPpFHrl9LPppbvVJ0NxVtRumGkRVrjNvQ9GhkV999SWB97tcDgpRPu8p6snveBO5XgAjB3/iSUWMZPMQf3QmcHDU17wgQZMq8z4bs X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1142;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzQ6T0xTY2c5bGFlVGVXSGJDazZSbVR6N3JNVUc3?= =?utf-8?B?T3NtVGtSMktnSm0rbmRzNmJTaktGczdGczNSMHp6dUFSUThnRURTUFJnR3Jy?= =?utf-8?B?dFJlQnBBYmpPM0RhTURuRUdyaDZRNVJuaW55U3EvNUhYdDNRSmgzSzhnYmJQ?= =?utf-8?B?dFRrRytRVisrL3dzVWRmN2Z1SktNeDZpRTdKSERUcmRZMDdhOWhDSnozNVhC?= =?utf-8?B?OStUYmJJYjJubzVMVEVJU2RBY3QxVlRuSWNtMXF0aE94Y1dMbWdpOXBvZTJC?= =?utf-8?B?UXJCSUJtQ2JMSjhBUGo1NGVpZVN3MFJpTlRQcHB5Z0tMYmxJV0IvMmVyWk1u?= =?utf-8?B?WlBtV294M1VuUWtJLzQ0V3RXVThVVXRYS0pHa2laUnFydWZyUlU3cXlsQUk3?= =?utf-8?B?Yi80NlJqRlE0ZkkzRVBVMUlqbFQ1NnAzL3J6dXl5UFJhdjVuK2pXQlFZamxp?= =?utf-8?B?ZVJpV2ZjMkNNa29RNUhGUHU3RDhPdkt3UUFkaml2a2JSUzhGTW9TNUYwVXJo?= =?utf-8?B?NzEwbGZPT0VWQ3pJZTdqT3JuMGlvT0xXTkVHLzNuOEI0V2E0dlpNTDB6dGk2?= =?utf-8?B?eWtFdWlYemJtdDVScFlpZjJQT2o2UnRvbjVDaXhiaU1aWm5OUVhMWWIyZ013?= =?utf-8?B?OXE2aHI0TGRuR2Y1K3V1bjJjZ2xON0duRVNjQkM0NFFmNk5rYU9MY1NJMmN5?= =?utf-8?B?RVBHQSthOFdzdG1EVUMzbFdwNlU5dUd0VXdzZHc4dzNzbWJ5cXU0TUZsMmRM?= =?utf-8?B?Zkw4amRsKy9MaDJiZzBicm1ReVpoNWI5ZTlXc2h5S0dkd25zdEZHU3ZaWSth?= =?utf-8?B?elVWNlJmWjYzMUJLdlgybjU4RDY2VzBTbStMUk9FMU0zejU3UVQ3YVVQTC9a?= =?utf-8?B?SHFMcjlTeVJ0VWEvNjFBWVdyN2ZsOVVEbGhxVnZteXlPcWQxUmxLQXFsTExv?= =?utf-8?B?Y2QrS1R5eXIybHVSQ1RXSUY0VnhtWWo0R3NJZlk5QUpENGJjVmxKMXZmUHRI?= =?utf-8?B?QWtuM2poTXp0a1hpNU45QmNKSU1iNVFUdm9oMWlGNjdRUTJrTExjMjlURVZY?= =?utf-8?B?RGpoUjRoOG9sMEhJVmNMQVkxMUwwZmhKeWFVVnFYWXVuZFkwVDN6TnZRUTVh?= =?utf-8?B?SVRFaDF1Q0pLWURqalROTk9kQUVxbUtRZFl5eEI5QU1IdUZwbGluNlpyUFdG?= =?utf-8?B?UURTWFZEUDdqZnNOU0s0c1VDNlo4M2h1cmJMU0FuU2xMSUFqSUpIRnZ0NVZq?= =?utf-8?B?bVJndGQybFRwczU3RzVyRmcwb2liZU1oQnErWFNVT0MzY0tSTFVPV3FHTkk5?= =?utf-8?B?RUErVWhmUzRLdWpxMnRNb3lWdWpaSjN6K1lrQkI3MXZvMU53Si9zWjdCaG1Z?= =?utf-8?B?em12WmtxUnZ3dmVkSVhhWmhXRytHOGdtQ3RUdHhZcUtWWjVGaHR5QVl6SFFs?= =?utf-8?B?VDJUZWpJVEUydWxSclRlaHJWRGNLWlpoUWkvUWcwY2tvV2lyM0RaSFB5bFc5?= =?utf-8?B?M1JUMkRuNThHRlZYa0hENnFqZWhLTkxyY1dISnJ0SUNwNUtKZExwV3ViWFhT?= =?utf-8?B?U3Fweld4VGlWaHVHVEdIcFh5OWRXd09aMUVuSzZ2VHNyMlFOZlg0dzVpL2l0?= =?utf-8?Q?WKoqJmSoEn6mPT7ZaBT?= X-Forefront-PRVS: 03319F6FEF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39400400002)(39410400002)(39450400003)(39840400002)(39860400002)(39850400002)(189998001)(305945005)(7736002)(97746001)(8676002)(33646002)(103116003)(4001350100001)(53936002)(9686003)(54906002)(53416004)(110136004)(4326008)(6506006)(38730400002)(25786009)(478600001)(42186005)(66066001)(7416002)(76176999)(50986999)(7406005)(54356999)(5660300001)(72206003)(2906002)(2950100002)(6666003)(55016002)(6116002)(3846002)(47776003)(1076002)(230700001)(50466002)(81166006)(83506001)(15650500001)(23676002)(86362001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1142;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzIzOmllK2dOUlNqcDA4V0VnNUNibHJmSTc3Y2s5?= =?utf-8?B?YzRFY2o3d0pLTUkxdm13OHd2S3RPMDU2TmNCTGJnc1lxcFRCV293M3p5TEIx?= =?utf-8?B?Z2l0VVoyMkFPcW4vRlBvZm9NK1hhZUh0TVcvYXRBbjRWV3dFTFZqNE5XVXZt?= =?utf-8?B?Ky9YZ3Fuc0I1azk4bGVqNWFsekE0SitYNWk0UmE4MlhhMkpGcWYxSkdSMmlI?= =?utf-8?B?aXVYR0k0Mm9PclRncXBEbUxhYTRaWUhOMGRFd0JuS2RDMDBYVlZUWGhidFI4?= =?utf-8?B?QzczZUdIaS9NZE5aV1hhR05TU1lpOUs2Q0E4b1Y5Q2ZaMFoxcFk2Vm1pNE5F?= =?utf-8?B?cnVVQmRzV3poSXgxS1ljQlZ2SzNUYzBvZk1uYjdCcndydTFOcTZKdXF4U1d3?= =?utf-8?B?SVRpMk9DRjBud0xLYnpKUnpuOUVpYkcrL2p2WGNqWnpNUEhvdWNQbVN2eFoz?= =?utf-8?B?aFV6YU02Y1YxVWhpOXp2UDJyWW9FN21vQ04ybVlpRnpUd3dJYlFaLzJxRmhs?= =?utf-8?B?VTJFbG1LZzFvUC80VXMyeDhPSkgyQUhrYTFGVHIybi9peGYwT1YvNklMaG9K?= =?utf-8?B?SUlwL3ZIWHI3UDAyUzlGcnNOSE1NemZKWXk2WHNYbUhKTnlIZi9UNkxGSC8r?= =?utf-8?B?M3VIZit0Q2ZTOGpYWmhFU0Y3Rk9hWUFGN2t1MWkxQStvOTg5dVR6bit3dzZq?= =?utf-8?B?dURicXExdkdzL3g0SHN6UzZlbGZHZVNqZTRMdEg5WTczV0NjMXRHWWYyRC9m?= =?utf-8?B?djhGYTJjQkdUY1pndzJ5RWtGaUhabzNsOGRsL1pyOVA4UTRjRVJwRWlxQ3Bq?= =?utf-8?B?bUIvWFVqclFOYjFSWnQ4Z1JQdXZWZVZUMUpPMWFqVEVoR0VrUUt3OVRRS2Fl?= =?utf-8?B?TlM4dndzSVpLMHVhZ3llRE96TCtTVUhaSnphUzJXcFllMzZ1ZkNvUnBTV2NG?= =?utf-8?B?bDBQRlJvZEFGZkR1RmRxWTVScFRXSDIvYUJvS3JlRDFWT25vdzBXQmUzYVA0?= =?utf-8?B?ZGJUOW5WNzh3aGFRMWRmNW1LZk00dnpnczI1K0RBQ3NXV210Qmo1RFVFbjFu?= =?utf-8?B?cDJ1Y3pVOUt2VlZRbzlJK1QrUldzTkNvM0ViNlMyVG5yYUF6Zy9FcFE1eXpG?= =?utf-8?B?VmpNVHJ6VmpPZGJZTmFKdVRWSEpYSFZ2KzdJVnpKeS96WW5CNkZNSENvUUor?= =?utf-8?B?S1M5bGdET3pqSHBUdmN0RXNZRWlhci9rMEsyM1VSKzAvb0NZOENkM3JlME1N?= =?utf-8?B?NXJrVEVxOEt5V1BSQjJkdFUrQ04zMXZqM0s1endjSHVTN0N1Tk5mM0FIQ1Zy?= =?utf-8?B?eHNrVWVpVW5wQ3FzazhQOGRjTmJQYlZoZHFaSnZGN1pHRjlyTHlLaW9YZEZY?= =?utf-8?B?bXFrK0lDNHdKMmNsbldsWmNsZFQyaCsweXU4RW1yWjc3NWhmZXhMTHAwTmhk?= =?utf-8?B?K1BwYkhMU0hMN1c2Mm1YRHRlanFGNEVkREFYNWZjbmxHOGM2VG9vODZLMk5E?= =?utf-8?B?YlhyOFBnZndMd3o5TDJyNnBIaWR1bVR3NzFqR2lzb1hPTUIrdFNPZ2hlSXFV?= =?utf-8?B?KzlsOXJ5UnBsR1lyY2VPRlN2RGFmSkhRUFdCS3Q5V2JQZHRkMFk3c0hyQ2x1?= =?utf-8?B?RnpESDFNYlo4Mm9nR1FERFZqNFhDTjdtYUQ4N2xnQzc2Y0E4aThRRktvQ2RQ?= =?utf-8?B?OVUzNjlkUW42SWx0T2hKdG1EK2IyZy9jZHJGdjFiVk1naDZlbkJvVEE2VXlT?= =?utf-8?B?dGVSZlZteWNFTU9EMngzQT09?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;6:GP4NItHSuRQBYCfwbAnamlJpzkQI7XcLopAhzt5d9+QBn2nZNYpy3f32a7th1u7gwxAnre+xGm3pJxWD0aHLvJYctz61kZOHb4D5JDrXvAnSEOxKt34FVJn3NvwwGF+tkvBwTlwouKuyOdBLY+66Jl3p/YjTPGlxuMw+NT5cllP1fEQWByMjIXJfXloRrRWKah0D/TdvEZg3tIFV8ychAQbzXMnud+nsaYrOhDIw8eI4kEHE0qq6qhtKFakSh+xDbJry9dGrA0tC6/B7xzpN2Vd3HkFHibwuB+k7XFzWl1LXcIs5SWlrqmsdW+i68vf1lTcxTi+N0XXtvfRWeTQZrsrJRVPBQ4xavHI8BpLtkGR2uQjZJz+x1+WJtMItPvT63gcAYJtXfuOtfN/cn54KD/wpPTrV7+nK1nm9aIqK7Jmg0Wta1tMnGadQsQ1JP0+ukBNaJ2rgj9WeG1/go0zF3UGVjRffx+PRPoT/AxN5Ff80hvTd/A5+LQwfk1nyQEt0N77AlbsjroYsuF4D3RRhYlAUZHCLZw+Tr97M9K03Vxg= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;5:hZmMsLlsHTqZuMBC/1obUpPU0H631FO3OuHPNAzCkn+/zpBsPmwHcZHiQPFQ9h1S8kFuBEk0bnO8brQqH5EYKmp3njyy4oMXg9QApV+XKm1WzjHZbcYXA+uJsOEzwyoQdofwaTiqRJ0qtj/ndfZXvwp/ZJ3NUcUI8Fze8iBphc5w0BN5J7Mc0JgyS/4iiviJnrFDunYBgyt4QhSp4aLJePltayXcwgm1A4sm8TBXNtsdvxEbUmFFSEXWq7uFp8jTSsQqS1+akdocCwm5Ap9V5mG9xK4w/ZHza6zCbfVo+HcJsXMjLiVfhWsi43Z/qqOairPKi/uno5GPk+q/3mhGn/3Enjz7efH0i5kzHc8F2pYABaOr6rMFKK4Fz4TD+vaJXiHqeind02pDnJlqABc6erebIJa9ws+O4bCVuh0SFGw/aF6dK+tAVWeeBagOOSuoyg/q7unoQeCZ025HeAJoRYi4sudgFod6aYF4JsBGcEFgmaM6guptDcA6mCD9MHfq;24:o2kvUyuwoBHKv+AmiyWxMfd3ioKJOISTgPWRaq15Et4g1N3xBeniSJuBeuEoLMNL7DIXA+oIGXKvUHG3VW8QxaRPe/EGgre/LuzFlzy+ma0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;7:kzDBpOWNrATC+NWGsHbd0YlRs4OGHBh2GkH9Xk6tv3/LR27H2AqjtbbSTS81SYwOcsw3Kvyzrhn5kSj8G0L9p88XneH9mcvaRaOhzxSxy61yO8DBBWHyVCn9VeZXzsImFAE4f/HuQu/QPbXgSiIWMaXPnAkwR5/5iI8r7qq+YhILGMcEv6BWsz8O6rq3nLl52PZuyGHWI0Xwd+EBMCruivWY4HzXXev9RgLDkwMiJLxuyVI/LjVvclsqdazBz/06ofaLCV7uxnuszDpkEa5n5VMulG+B8Sx6s0uStoH5bzyHLpWcUKPYnvt7Qdb1CRRo4ij6jMY3UhLwqHQh29ZGcg==;20:C0DkxbKNS0dOUiE8EKaLIE3mkajV39iQ3pLgBnf28Cu1ED4sqQ6Ozx+7m5HL0NMtEVklelnTQy/SVO+7JB2zfsiyYhud+vrlnRC0VZKsjVczrZpTfBBaDjhSRyJtpLSzf7Cktc6r9zsptUlzRxLCT/+mLZUE1fh5zn4UwI/I209EJa/eu3GaKndjOCCKagNpM86OE3/e0WlRfkN7uvNEp5Q60th4RRkV2yqo7QlmW16rZwK5j7UQyMb1AVjqUSGr X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2017 19:16:30.1131 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1142 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When SME is active, pagetable entries created for EFI need to have the encryption mask set as necessary. When the new pagetable pages are allocated they are mapped encrypted. So, update the efi_pgt value that will be used in cr3 to include the encryption mask so that the PGD table can be read successfully. The pagetable mapping as well as the kernel are also added to the pagetable mapping as encrypted. All other EFI mappings are mapped decrypted (tables, etc.). Signed-off-by: Tom Lendacky --- arch/x86/platform/efi/efi_64.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c index eb8dff1..ed37fa3 100644 --- a/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c @@ -327,7 +327,7 @@ void efi_sync_low_kernel_mappings(void) int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) { - unsigned long pfn, text; + unsigned long pfn, text, pf; struct page *page; unsigned npages; pgd_t *pgd; @@ -335,7 +335,12 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) if (efi_enabled(EFI_OLD_MEMMAP)) return 0; - efi_scratch.efi_pgt = (pgd_t *)__pa(efi_pgd); + /* + * Since the PGD is encrypted, set the encryption mask so that when + * this value is loaded into cr3 the PGD will be decrypted during + * the pagetable walk. + */ + efi_scratch.efi_pgt = (pgd_t *)__sme_pa(efi_pgd); pgd = efi_pgd; /* @@ -345,7 +350,8 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) * phys_efi_set_virtual_address_map(). */ pfn = pa_memmap >> PAGE_SHIFT; - if (kernel_map_pages_in_pgd(pgd, pfn, pa_memmap, num_pages, _PAGE_NX | _PAGE_RW)) { + pf = _PAGE_NX | _PAGE_RW | _PAGE_ENC; + if (kernel_map_pages_in_pgd(pgd, pfn, pa_memmap, num_pages, pf)) { pr_err("Error ident-mapping new memmap (0x%lx)!\n", pa_memmap); return 1; } @@ -388,7 +394,8 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages) text = __pa(_text); pfn = text >> PAGE_SHIFT; - if (kernel_map_pages_in_pgd(pgd, pfn, text, npages, _PAGE_RW)) { + pf = _PAGE_RW | _PAGE_ENC; + if (kernel_map_pages_in_pgd(pgd, pfn, text, npages, pf)) { pr_err("Failed to map kernel text 1:1\n"); return 1; }