Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751213AbdCQTyw (ORCPT ); Fri, 17 Mar 2017 15:54:52 -0400 Received: from mail-co1nam03on0083.outbound.protection.outlook.com ([104.47.40.83]:17307 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751189AbdCQTyv (ORCPT ); Fri, 17 Mar 2017 15:54:51 -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: [RFC PATCH v4 14/28] Add support to access boot related data in the clear To: Dave Young References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> <20170216154508.19244.58580.stgit@tlendack-t1.amdoffice.net> <20170308065555.GA11045@dhcp-128-65.nay.redhat.com> 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" , Borislav Petkov , Andrey Ryabinin , Thomas Gleixner , Larry Woodman , Dmitry Vyukov From: Tom Lendacky Message-ID: <79f1c44e-0138-8b50-8931-723a5d243644@amd.com> Date: Fri, 17 Mar 2017 14:50:14 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170308065555.GA11045@dhcp-128-65.nay.redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR20CA0011.namprd20.prod.outlook.com (10.173.116.149) To MWHPR12MB1151.namprd12.prod.outlook.com (10.169.204.15) X-MS-Office365-Filtering-Correlation-Id: cf9c0271-8a18-4785-6ef9-08d46d6ed8b7 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;3:T5L1+FxgtgxzN9uysPwJv4hnHOSv8vOlDLTkUcu1wC5jvnGhx0eKGqPgToqISok1bK3GBTcBuE8iZB0kiuqXwcBaTCrV5YRWjqh+YUtROnTscPfNZVGvLctteZ7E3szwYsC/4eRmKl1SAltWNchAM2jmaT6q2X+NJB0512jcD6GBjqtRk72DtVTOuf8a7UxiUFLUEfXtfIRPOb3CfdtDwG0fyPyy+cR+a8CeACkI4u4bC0Zy5SMgqQcSFKi7vgwmi883HP1Wz2L973Cpj7lHh7ChGSpk9yAhdnzsujH1P3M=;25:1JlSm27D6M/t7hAYjkAawANjHx1FlmlyqewoCizWlbrZstUt+vhoHuusRMkdciOnJcMUi+wUGY4HyHvGmzsZNg8HC5tw6lat+XI8M1ZV2yw4FW92w8jYK6uf7GzToz7XE/6xH4PbmfYrzBgpmMNpmOR19dYnE6KLCNjjgGKGHC/YJ2eoZCtxWIydxBGqyVarG5i8h8i9npdOIsNymIarkkVM1sJukKbbi9qCGj933BTfGg7vQwnyX3jmRnp9H9JR/lfVATF0+rsqXznSgF/QfmSw2/MVMxGerN48lAOGw9ZlYmF6jMIIpuHeNo626a6LJ9yNdcXTeo3pBqKnIlIhKn31pV5mLY7Gq9jVbI4gXl4QHUMnSIT8vc0qIFLK8aR+UnW0OEjglJYHeIVe85ytRALu08Aj+U2wRxYBKPv3nejqANqpxZRQ3vngx45kF0mY+7SFGoOmtaYs8z+SkXFsHQ== X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;31:DfnMy6pX0SRLYZSMVlBfJfMRoCIy9RLvMUNQ7Zq9NTnFfDhw/jlPcUUmgpaviZZBarXf9VXQDgvw+Cn85NDiqTWZO3lprEJyWE67QZ4TE5QkM3mnqLnLqQjzJwDhnsl6jdUpWCTqnBAq0ZJpsQfpWV9JuzoqaNgltV+aqpMQuBEGV5Txj9DXxAqYauG4Rc/nQdJL584rMgPnlJ7sL1c1UomC2W6ZDIiIIjOtZEAnMl0=;20:4T+7TxWonrREhglrcL3X3kkV2kAVty3zUvYi0u30rJL6rBogxkjd4EbXDSRKbTxEJM7ZCBYvglZMiyKlzMsIqx2ToAG9PC93ZQNY0Hrv7zW4a0e7+kU0YI3AKJnIiSEXBW7+tAaKikafLWxoDqX//WD/5IJ0Si95+3C8NsQkd7TEcNkqR1cLxIrFN3WDeG/gQncBBTeT7woTMjJ1BeLDh8cExkFpdftkzCNEFCAr8C8UOkg0ZVrZx4+FqVCNA5lPzWBqcYmE8M8cSwXfe/hdJzO1JwTXs/eUsuwHv6TA4JUWmEd7hb4CuuNQEOQqsqa9woRZoLpf+1xwV85xeCTh2/RZd4MsO748CopE071k9zMeF4DXQgaFAzdMHCqs6kICgpOURQavjQRTO6znz0nfDJqzvtMiiTBIqV3CPb4Fn0u6zsOuzut8K1mkTFkys2XTcja+yK7sXBSi+U0eUTVHe4Wq5tKgVOyuTqQ6pI26R75ZasPCIZvlbwMVWh0vAHbe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558025)(6072148);SRVR:MWHPR12MB1151;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;4:kqp50q+Qk4jrRtMucIWgF2O1h/m0724IHHGJPEMwuevkyxLHA99/VjIIGfeLUN5DDSllfT6e4ZUteD1DjvC147J5IgEW3leZ2gw2Va0hBGaEeldQPvWbaicd9coiK+CAFbW0+dWW5q7LHtD5w5ByZ2Nh66oJTMzDlr+hvGdVtkjshih8LIXRBKZ8fzu9ZpmKkaMZHr8R+xV0+ExdC8C2nhyt7cFZ+6Qzb/eMPLGJHbw17mzSdBolmTp9DDzphGvY11Q+9rUEiKNnVUFVfw1PVlm3eMw8x3Z5/8YnGsqXiOg5GrJu4rfrlyxgQK8PhD3fMPii++Fm+hTNhgI3LdFvShnTblxwTrto5e9tGpPAhpy8/zv0ANo1tPwexgc36MhPeXPH4MyA3V5CwWyR3poICv1nPeJIskLVnO89hILDz2SddV8OzSIsGgnm/mhmM71QyoDDGCSzuf2QJ5eyH02t35OdN81gGmwXQtK7vqK1RasP/TOQZMz7Qx2o1oujr8cch3+rrMjTmBXq8Eovb3oBBnsHIMotEFgKZ97/UYc0tgaNjVQdKW73jnRwrS6Ko2ZTIJLTXr5zjNoK6K97Yf5lCZxQJ9WFS5R7BWIvwgiWOPpRMfhDY06gHuTMOSAUOezd X-Forefront-PRVS: 0249EFCB0B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(39860400002)(39840400002)(39850400002)(39450400003)(39410400002)(377454003)(24454002)(7416002)(8676002)(2906002)(23746002)(305945005)(76176999)(5660300001)(33646002)(54356999)(6666003)(36756003)(50986999)(42186005)(2950100002)(31686004)(6916009)(6486002)(77096006)(66066001)(6246003)(90366009)(229853002)(50466002)(25786008)(7736002)(6116002)(230700001)(64126003)(47776003)(86362001)(38730400002)(53546008)(54906002)(4326008)(31696002)(81166006)(189998001)(110136004)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1151;H:[10.224.10.65];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;MWHPR12MB1151;23:XwuExzhANaOBQ2DJ1741JnRRNoS1iLXLYg0g5?= =?Windows-1252?Q?bpumf6wVygeyZbE4e9VIH4/7GIIVm0ziunk09XsPe1OAqgD2adF6jUF8?= =?Windows-1252?Q?ENrasyiVi5+N+Kc/3OGcuHLR7GzvmDL5zaq0woQA0EqGNEvaGRN8RFJJ?= =?Windows-1252?Q?w/Kdc1ZjaQeXurjR+Q7qWE8UAF8LeeaSPd2eFus5kaKYGDSxb3JTc5qK?= =?Windows-1252?Q?I5ewXgZvw2Zxfv+Fl3iunzilMxcuydTs8RWObOuru3E45lHQWg36kaEv?= =?Windows-1252?Q?BJexIHrC1wQlTkX4W2wrPTy6k45I59MyAG36oLFhmBuM1T4ybvyfMgmG?= =?Windows-1252?Q?ZvYLEhSXgIk+e65pOCrpeOZxhXit+mKaWRTpAC4wKC+YMNyZk14+Om+g?= =?Windows-1252?Q?oSrAL3c8eL7L1YBvCwQuGlALfG1sDsiOxegf82ukmhLKGoilyuWxjux+?= =?Windows-1252?Q?+KVnoDXUhsfPVbFYH7+Rb75yc6fG53RPUCPM3ZHgbgxmO4KKMUdqutIj?= =?Windows-1252?Q?Ob9Dz7h+LQLBkTI99khjHC4aodgILy6OoFlQl2Ohhik/PM6yZTOyQOQ3?= =?Windows-1252?Q?PVkI7gjTcdeioAW3gkuHWSJqlFniBDo5OQgzjbPxVrOaOilMs7lwoAQ0?= =?Windows-1252?Q?NjdSD17qM1uBjW+noh6iLk9u2MZCRxBUCPYqfvL4JZgin19z8hJFcUsM?= =?Windows-1252?Q?U1TXGw+6HlBjOuDWonVcj9l4/1BMaq/8W6ysiBA3fNv8gAS37FKne7VF?= =?Windows-1252?Q?pVMh1cTMnLmLnwhQt3gGEvTtmus+UQbjmw2pdUpF/GJ4WKmkeDdCxsQ+?= =?Windows-1252?Q?UWxthQzcYKM0Nv8hfx78MWz7kRRG7DF7+wXEApi7ll1DPT72l+eOpnSo?= =?Windows-1252?Q?Weg76rH5nDRISGHyClW3rd7JexGmXgLaFe7iFiRTa7rvD04Q3+ljFwCK?= =?Windows-1252?Q?VPCFy5bvtIMB1kfLBS6USeyL0Li72ToBQC7KAy4+qHPsSyXjakoY9n8b?= =?Windows-1252?Q?CBLoso9QW2Rat593dd8RWQVcrE6zyjFDs0e7ZjjdmxFW2ikMtfKwOuMQ?= =?Windows-1252?Q?vlQqpdDfhCySYh6I+IgrXb+mCICj/Xxrt3QLK5zJfEzeZcSsIEulvurX?= =?Windows-1252?Q?HSIuikB0pYF4Hu8uhEr9/dzlY038EfsDK8QLHj8QTq58W/eOdu3R9Isa?= =?Windows-1252?Q?3L3ryEvvSvzdtXqetpaLhMUQS0AG1ALHkAHLBmHNZJITqlhBx2H7pUD+?= =?Windows-1252?Q?H1nHMn0Wff2q20epmC9H2hYtE6OLEKb/TYiiu6vp1WBJEqMEFHrd2FFb?= =?Windows-1252?Q?jU2?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;6:dVJETcelAIOxcsiXNFPq5RPWZmYMPKym7vji3w0hHc2KqyhmA9lv0WQKIMxet0oYQfck7jKxATsMGeORQBZHuSY3hpVGZlGwCXHukMskP3iOom9Qm2T574Hch8jkN+BCp0g3t+R447kMPLEa203wJ+TAj2ZZcFpKAWuwEGBimrezzvjwjtWOQ6VG8XtxHyj3NUu4j5jPQqgNGVqgxkVC4MQ7EAwSQ6bzgl2dRdp/PkwBWGXQjeMmADdOoxkfR0ThHMo0MRMrYm5HPIFuE0yGBLqu0pI4Fei0PkqEVqtSZCYZD0QfBqp9UvKhockbwABoOg+NvnlfAzBD+u3+HJQMACTZ0nobeVjatJy6I2bfobyz7C6Q3iYugcn90F08+BHVNkAsCAP1LMzdfh5Chr1OwUR8CtxUEZnqvxv6mqU8NUM=;5:o+MIFHbUMJJjOc1VjsdO/UAP2CmuVxWB6d8RTT5gbGyaPcF+1YXxtne4ZX2PdC3El4EU867ylR0sDY8Kl2qJG4oG6mvqyocuUj2b5bpi3OyBvI2eyBteUcanYeLD4d8AzdiPWAaP3tfOLb5qZoSDvA==;24:G/vk8Sfh9Y84oHfhJNL5W5OOYBba3g/3cgyvd+pW4ekxgNjtaG9Mr9GRKv3EyP7y8tr+LG82GUYaGeEE5kK3epiAXeqiAe4gI2KDxYwCfAM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;7:DZyAYGoFVucbbXgS9XeAeYoGKU27Ku9c6zw52ZdwPHBZ7RdPoMoT0tw3xlCVrN3kzzULLxLXVxDm7XHMpiRsSgjLbzqUml5u89lYML4dyvTx4RP7Zfbim7kmqo6SwkOew2Wliyd60S/OLeqmjo5hmN7jYPei8cx2PbW3KzuY+y0jxvAqUqsqba7XzuCl90cABVMLlOAJpwOJq8iyCtU2DIOFsxiuuXC+FZ2Xb8GNulVUeUKf3vN0HIEaVAYzq1dk2LZkBgdX2XK2H/RYYq0/MM59+KvfYCR790flUfWsNbl2UHgLnBaBGZVzBJHunTr9CR/mD3vykx6oRMVoK7Jbig==;20:XojVAqReeg8qydAOqVksDcdACMZFRt4PPS2Gg+/jYk51YgLL0XAkyIABUKVLkVShyb0oPMe4yHwCL+wyoyN0tWIqqm361xiXkbu708bMwJrtTxBaaA1hAlmviloIQ90HGK7DVN9LQKhCLOQ7szvSVl9Pc5TM3bl/xXIcsNiMQ9gtzHrbaphZDBSRJlRIVEiGZbdHk8xOVYlAATBdk6xTo65aj7rMYp65TFqM0QHXDusvyubmpd8Q6djbFeaaYyKF X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 19:50:17.7901 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1151 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2038 Lines: 72 On 3/8/2017 12:55 AM, Dave Young wrote: > On 02/16/17 at 09:45am, Tom Lendacky wrote: > [snip] >> + * This function determines if an address should be mapped encrypted. >> + * Boot setup data, EFI data and E820 areas are checked in making this >> + * determination. >> + */ >> +static bool memremap_should_map_encrypted(resource_size_t phys_addr, >> + unsigned long size) >> +{ >> + /* >> + * SME is not active, return true: >> + * - For early_memremap_pgprot_adjust(), returning true or false >> + * results in the same protection value >> + * - For arch_memremap_do_ram_remap(), returning true will allow >> + * the RAM remap to occur instead of falling back to ioremap() >> + */ >> + if (!sme_active()) >> + return true; > > From the function name shouldn't above be return false? I've re-worked this so that the check is in a different location and doesn't cause confusion. > >> + >> + /* Check if the address is part of the setup data */ >> + if (memremap_is_setup_data(phys_addr, size)) >> + return false; >> + >> + /* Check if the address is part of EFI boot/runtime data */ >> + switch (efi_mem_type(phys_addr)) { >> + case EFI_BOOT_SERVICES_DATA: >> + case EFI_RUNTIME_SERVICES_DATA: > > Only these two types needed? I'm not sure about this, just bring up the > question. I've re-worked this code so that there is a single EFI routine that checks boot_params.efi_info.efi_memmap/efi_systab, EFI tables and the EFI memtype. As for the EFI memtypes, I believe those are the only ones required. Some of the other types will be picked up by the e820 checks (ACPI, NVS, etc.). Thanks, Tom > >> + return false; >> + default: >> + break; >> + } >> + >> + /* Check if the address is outside kernel usable area */ >> + switch (e820__get_entry_type(phys_addr, phys_addr + size - 1)) { >> + case E820_TYPE_RESERVED: >> + case E820_TYPE_ACPI: >> + case E820_TYPE_NVS: >> + case E820_TYPE_UNUSABLE: >> + return false; >> + default: >> + break; >> + } >> + >> + return true; >> +} >> + > > Thanks > Dave >