From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757234AbdESUu6 (ORCPT ); Fri, 19 May 2017 16:50:58 -0400 Received: from mail-dm3nam03on0045.outbound.protection.outlook.com ([104.47.41.45]:49017 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757038AbdESUuo (ORCPT ); Fri, 19 May 2017 16:50:44 -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 17/32] x86/mm: Add support to access boot related data in the clear To: Borislav Petkov References: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> <20170418211921.10190.1537.stgit@tlendack-t1.amdoffice.net> <20170515183517.mb4k2gp2qobbuvtm@pd.tnic> <4845df29-bae7-9b78-0428-ff96dbef2128@amd.com> <20170518090212.kebstmnjv4h3cjf2@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 , Larry Woodman , Brijesh Singh , Ingo Molnar , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov From: Tom Lendacky Message-ID: Date: Fri, 19 May 2017 15:50:32 -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: <20170518090212.kebstmnjv4h3cjf2@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR04CA0038.namprd04.prod.outlook.com (10.172.133.24) To MWHPR12MB1150.namprd12.prod.outlook.com (10.169.204.14) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR12MB1150: X-MS-Office365-Filtering-Correlation-Id: 11187e62-e81e-4dee-627a-08d49ef8b4a2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;3:cnhcSbAfi4/bQnyo58gfF1aTet2bELRFv+U+00LKUCPKIZhgu4vgfX+1TU9OoRqn3HhRuoIhoadB5bPxqD2G1ZRAmgHTXja6k6QmvoFvOq3WARGsnskWYd3i145oPw0uODPe0jIdh8ClXAtg1J5p9j8TZRGcKOF9BImGAdH/IWzmG80HhCSEe7Nqix6rV1brmpTpdwiosZU5LHSNi3VOXHRJkddMRy1oBLcWUUNgkgli0nsywlJ+3nrBcP9dIFyCpaIp3vqTj59XAWzIMDnU0AL4Ua0MxbNV2mYDdFsWFTn9VxFfbuK1osOlXKFf40pfmX28eTLtVGknKxeoGfTCQJ6mYrD2jVucFVzHI/tpU18=;25:bO+2N/KVZk7A/D0OSp5zSj1F5kLGKTB3Q5hOPBjfmH/uOuZLIKR130AZIDraJGG32WfEtgUP7ee9yWb2XOv1P2HImikc1dkKijRhrtZsu8BSNjBDVwgjMu2V8uubHulxCfsr6sv68rErrpj+S5CqokC0zOYRkREo0GEoTgMcSTqCCwpvI1+pVmqw7TM+f4I2wO0QLnmEtWvx2wdea/rfNInXsaUDha5ma6h95eqe2m75/GVkweTY/wg25/hNmLNaZzNspqu8qGCiteouVwwJFdjHXeP5aLiOpFVv9yzHzxGhg9LRs1A5IyNGcu0JLQLCBrdOkhPiBsA3Fy+bpfik6Do+EaFgdw8sfx+66eCNv/UimMdEhp3fHIPoPc+MKjMu91vDofKAozhp/G43/2uqDdZKqAtwpw6pM6l//DaCDND8sd/ET1oZWfV8iywBcZthwaCICDLySYTt/YgPc6wn9dkuPSz5t2wE9vBb4Omct+w= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;31:UPOhBvAv2u9g8AMcvC4HHe5rlg432E3Gb14ni2XetMGF7+tAVzmBYcfRD9c3//eDKsN6wB/gouffoF1emDTz8REjNtcO5ljci473zoCLLsG46s+EQCuqwgrVq+SolE8aJohKFYctNIzgjxqKeQ+GvPM4K3d46tge5C5/7tWcaU0S4qszxCeaar6wCB5iNek+y3y03iC23/c7ceAPgdldckIas2bSlPTZH/gXOX5vy80=;20:J3nuTK2qrUap6cvrEeIP0JLU5ko+6AwKsOhAtRDXjYqipkpTK6953rmWHXvlJq+TWo8JbSq0aXSh7rzDYruzDMuaV3l1d3cGpYE71PnYmIUh/sPgzGXI1CzMcnUVUwWC+FP848qVDRNEyhHb6gIV46iwDp+50n7wZUx7b274Gzoh0Q7QdK8D/kWQEqwtxAO96dK2TUFloJ+6rxz0UGwuoXOO8+nIsaT18WWALPalLxIlM5ikl/CcOkJusqqtfDiO/v8jQvIgL6BiUcD7bfpcueLGOQnzk0/rzh+rrgJIA3JIsJoULRHWU3pCnMyeGPvNqKRr6+/sCOPLa4A0RcXGkW8FJixbILnBVAF/q4XV1t/TrN4KkpNSO1CA7ytqaZWRKnJIxT+nfbO8E26KYYZ9IZ9mkdTevdcFSDzSH41Z7neKPpX560fzKUAamVJwvRmhIu/ORgswylddi8zukdM2nsOr666NmSXk0jEzvP3D2RELmbJ+A+TTpSHdTkbHtY1X X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123558100)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148);SRVR:MWHPR12MB1150;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;4:0PXy2/fn429fTyCbu3WLwu1mjY2+ewEBtg1oHzFrVI1xXyTGHa3xvw6C63Vn2WVzkLyidLAUUUKD8i1LaDsr22IkXslusJLpJ9ZXQcnbuii0D+KgB7bAemca3cJTrmul+PyehzSFEVW5dUWRN19OZNjTy7jFj6TbLqSg75iZQPJ6CDlbqQLszgThsw1F8JqRt1gEYE9S54LPXb9iDIog4GaHzfXKIIovEN+AgYzPRIwwW4xgNgzYEcyYUF3MuTA/23w8YFDGOBV0y+rcde7Pq9X0p6ubUTQySOrfLFQqvwvNhvbAmC1kvzVFsJWQt+R7slnSdA1VtpMQikfdTXtheHzxN2WYOC4czNYkI0l0QlXYQN7BOx148j1htOosRbTR9G2TOgZUtHqO0yzCdwFoUioSd/o33ijUO6XZuAldHV+ECjHQS6evnLncYMInS01rzC0LqwjXPMxN0fmm+obCUMvTUpS2Csuc44rnP7xdY+tFr6fjwcNnFWZAoC30Kc7Vug21KzLSBjzYt34DVffqy69xSO+cTa5g2rvqoqXpDR7jJVTVPbAYM7tJIpueD9XUoyDpOmQTshF7Hl/dJnT9a9FbykjAzdGjjV7MD6ruUi0w+8LrGYBo3XQJ0lhfB+lK07YKEvy1dEOM0m8wy637kxTuJW+VlpvC+30CioBfg90dmWoUM3d1M/bEFdLHJxmei3aNnotNf2rVALS/rz+FtzW7ws+yzJx6Z+JPci8DKMZ9hW3l5UqL1ChHS1i6XGVsfBorB+C7BwdyP2LDFYBxBxMNLDC4qIXl+t9GqOZ/7koeYxg06D8ayx8Oh9+uzj/qysyTf9MeN0R+MH9SpPBQR8/wJMihZubv7TNOn42twTo= X-Forefront-PRVS: 031257FE13 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39400400002)(39410400002)(39860400002)(39840400002)(39450400003)(39850400002)(43544003)(24454002)(377454003)(4001350100001)(36756003)(305945005)(229853002)(110136004)(6246003)(6916009)(189998001)(83506001)(5660300001)(81166006)(54906002)(33646002)(65826007)(31686004)(8676002)(42186005)(93886004)(7416002)(38730400002)(2950100002)(86362001)(31696002)(50986999)(54356999)(25786009)(64126003)(23676002)(76176999)(4326008)(230700001)(65956001)(47776003)(90366009)(2906002)(6666003)(53936002)(6486002)(77096006)(50466002)(53546009)(72206003)(6116002)(478600001)(3846002)(3260700006)(66066001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1150;H:[10.236.64.250];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzIzOnJLaFFoZWlXalNTZjdoTVo3d2JLQWJ6QlpC?= =?utf-8?B?VUgvWC9zTVFKNXVJYW8zOTdya0lHNkVvRFY5bnJpeHJsQnppQit5d1NNTmd6?= =?utf-8?B?aGtyaitFUHBkWnpSM0pSVzdJeXQ3cEdGYUhwZ052bDJNNkRIUHFncXpBOGRo?= =?utf-8?B?Tm5oVkY5anZrSFdPVFFUczFjMEhLZSswUmRzQ2hCSkVXZUJyWjE1US9OeXAz?= =?utf-8?B?ZFE4WnBvSnlFMTZsWk52L2tEZlpxNkVHdXA0T1o2VkViMCtNNXhJcjBrWTAy?= =?utf-8?B?aUE3ZjdDSGZwR2xiYnpKQUszM0dpYmYzWVQyQnc4b0JpQ2NwY29jcU5ObUMz?= =?utf-8?B?UHdtUVZISVVYS2NVTXhiaFRicWhxd3NkNkRJVGNvLytjcmpDSmM3WnZIQnBm?= =?utf-8?B?K0ZvNjR3SHdpWHByVTBlOFRmRXNBQVhwWVJtcHBVRU5Mb3lyMXI3QjZXRE4r?= =?utf-8?B?UCtNaVZ1Zm9jOFRCcC9pT2xMdEd6dk53YWVVTG5iNDNhR1dkNnQ2KzVsRG9F?= =?utf-8?B?QkRrbStSRkNWSGNKZGlOTmRyMzBMOEVnUlNlZXhldjRiWUpRMWc5Y0ZONm1r?= =?utf-8?B?aUhwR0RSc2NBTlYweVRLNW5teWVWVGVmc0FPcW9tMWNWSktJUGxiVndvV2dN?= =?utf-8?B?SmpRZVI1cHNDeE9VUmozaytLR05EdFk0L3JEUmlBT0YxbDZBc0JlM0k1bysx?= =?utf-8?B?QWgwK1JtYU9TcHVTZEt4ck1ZOE9ZVDl2TnJ4MlR3VFpDbWlpYmNhYm1zR0Iv?= =?utf-8?B?c3A4Uk1Md3V1aGQrKzNPc2F0QzJPY3EvSUFpWHhYVEtxQkxOdm1qbFp6bGo1?= =?utf-8?B?eFRmcm82M3VwWWNWMzE5VTBnck53R3dDNHZLcWZPQzVSblZmQUF3Wk1nQzNE?= =?utf-8?B?QWNJTU1JOVZOdm81aUNUZ3BEa2g1STQzNnFZMFlyanVEOWVXeU1hNUNIeURu?= =?utf-8?B?bFB6Z0g5Rk9EMTZmdjdlanowR21qQVNJenlqVzBqMjA4ajhLRFI4OXozcUx2?= =?utf-8?B?ekNNM2Npem5QNXBjbzVTNU9UM0VaZlMyZk5pb2JCeVdRdWpIaDNsaTlNcVBG?= =?utf-8?B?b1E1TnlkNzBMN0o3cVc2MTI5eE5NQms1cDNPOXU0dW1STFdtOXNKSjk0TzRF?= =?utf-8?B?Rkw0TXlUeERseVg3VGlKQUhwSUxTT1FEZFdxY0xZcjJNcVRNY0huSDZMMWRk?= =?utf-8?B?NEtIMnpFTEMvalc5OHgrU3M0RklHM3NUaGRyUXY3emh1S3o5dEVrVGszVlpN?= =?utf-8?B?cnJyNlNyOEZvaDM4bUhLVHVYTFhNMDJIVnVDZUpZUGVza2hIQVM1OUtBRUNI?= =?utf-8?B?bGFucUFBeDhFVisreTd5Q2NnS1psMFNJYjB0RUExMDhVK1crekVFZnNrbXZ1?= =?utf-8?B?RnlXNkN2bUJ1OGZGT3BwU0ZGWlBaY1k0anZZeHVDVlpyN1ZmNU4xNFhxTjJF?= =?utf-8?B?eWJpWmhhakxZOWNtNkZXeEJ0K3puZ3V2MkpPcC84MTQ2NXdvNjNqLy9JS3VD?= =?utf-8?B?RWJvK1YwVjhBMlhvUEx0VzAreFJhc1VLNHJXZW5ab3N0UWNWdXh5bzhWN05N?= =?utf-8?B?TXJySUR6R1FwQitDN1BKbmpaejFCYmw1aGVacGQ1eGF1NUlrUjNjMHNQdWIw?= =?utf-8?B?eElaZVYvOWdZVFhIZEtYK3czK1BFQzZ0eVlJaWd3Ny9TcUVQWlJkS1NuNnBN?= =?utf-8?B?cGMvYmEreWNNU0JVbmdPRWpEQ1ZUVHFkYjd4cWVuckQrTm0ycGFmcTc5R3Vo?= =?utf-8?B?aFZJVGNNeVdmdTh1ZC9TdzhwbExla3pFb2xta3dLRVhVQkZRWmRvSlg1bzI3?= =?utf-8?B?a2t1Y01GUWFndlI4QmxTcVR1S0dYc1F5Ukw2cUY1YkJNMjZtd1BrOWhyNy92?= =?utf-8?B?UUlubEtzQzh2Y204SWcvWmJubGRFQXJ4UkhYRU1JNldOYW91K0lGUk5uMEFj?= =?utf-8?Q?gytq5k4glwGWlDSpC5WkENjy64bjTA=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;6:gJjkn6yLqW0y26URpgH+Gq2fMBCnCvFzlYz73ZFtQ1IlYduUy/cJuYpn+GjhSKTEtBb34mfSI9PFa6qAm1b/Vy1tuyGJnd2CfElOUfCw/8J9D1VHHjX2CXz6lfFrszfTBsptyN/njN3RGOCImvQXuGgbU25mUYpKLEUAVsjyZGcyPmGjhiJ2ECrsu8rGTfX+cMAPltqdiU93ksJ935wPzRkCKwv2T82qczFB11qK0Y/FQgQlsFx7WO04YIh4Ksp55dpZUqpDK1g0+LXg8wCG/58m3lYPhienyRUKaq1skWCNkJ3Gh9Z1YKCKjSuHpIKP7p/vQY16m0ce3ku10FaO2HUrP24yUbJeXwcDwWnA6yDg11xHirq+tkMm5TPVrAGY7byLwpP3YHcOe/vbHO/F4VeI4Tz7GYxWK133xatt5mgjuJeCbgvqJCrvF1rSlxXE8gD6PaQKPgda9SDem/fRPrmevE26UDiwjeDGwqQkUG3BOyG7EGRKic1na4tCSM9XLeqF3G1xn1j4y0/IYxcmHKBjUtsDWqjB1wwE+BbGqh8=;5:VQNjS60rqY1keMgtK3N2Xj5JTMeXIV7hCHeXKaiL2pMvKX+iPTCpRt9RCHYQg0dKvvfHFBQrlbMiWKlKttTdFZzrFuzbiGZEs/fycxex54hsOyCW7PqKFGHUp/kNj7G4KFeZ1YGEOTKvr/smTGaTNQ==;24:JYViovAz9OUcRkGqO5ddlCTU+UMvGHXnOPy/x+Lx4lC8brThU48FNGpsEY2ubCkszQIZIRA3xt9Ho/0Ea+uU6mG8WwmuEPaez4erRWqMk08= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1150;7:V5Y1hBBoFYBbBZYgAQoeQvLe/GBp0M2wHWejde6DsUIIL2g1xhNOcvHVjuwoUJzdCkE/MRFsFWY7JtjNxorx9b/nvs180k6kkGjfddCS9UhHdcYcfwDfUVFenV9eOmkdURup66IlGO8P/cqv73hZOl8BmfHz5rRmYnb6cLn3I79fbFP+NS2Gz6lJbPc4CuR0Ju//iF/LlfiKhXMIUmM03SGNjP5zms0iNNHEeKXO+9069TvdHxKkgBRcU65mPfYwYlGg0qmaC/1olP9NKwAhkGPJkvV63T2+qp4l3OKyRHpLtjQL3w5ZASRArp5ChL1f3DLz1YxyL5VGgPMOyBkssw==;20:79r37s/HEv/tXqIuHQrqpuUasbVdB5TJRDXFt3FEVkfoUCTPtOjGWmtNz6xiYgld7n886hcdp+ea+giXFs4RTjXsQPmwMcegkruloRpPpcEGvYSM7iUAx3Kb+Y6MXQduYP+51JkB4LIRZ1MiWfSPCVqVAgzidOzrQVP+IVmixAGxSO/f+PVukkoOqLmUVI+oTdvXK5qrr2d/OAQFaIeXg7tCjN/F5yaj2AhYva/KUwHLjkUK66XBq9FV+ox/aRj7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2017 20:50:36.1841 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1150 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/18/2017 4:02 AM, Borislav Petkov wrote: > On Wed, May 17, 2017 at 01:54:39PM -0500, Tom Lendacky wrote: >> I was worried what the compiler might do when CONFIG_EFI is not set, >> but it appears to take care of it. I'll double check though. > > There's a efi_enabled() !CONFIG_EFI version too, so should be fine. > >> I may introduce a length variable to capture data->len right after >> paddr_next is set and then have just a single memunmap() call before >> the if check. > > Yap. > >> I tried that, but calling an "__init" function (early_memremap()) from >> a non "__init" function generated warnings. I suppose I can pass in a >> function for the map and unmap but that looks worse to me (also the >> unmap functions take different arguments). > > No, the other way around: the __init function should call the non-init > one and you need the non-init one anyway for memremap_is_setup_data(). > The "worker" function would be doing the loop through the setup data, but since the setup data is mapped inside the loop I can't do the __init calling the non-init function and still hope to consolidate the code. Maybe I'm missing something here... Thanks, Tom >> This is like the chicken and the egg scenario. In order to determine if >> an address is setup data I have to explicitly map the setup data chain >> as decrypted. In order to do that I have to supply a flag to explicitly >> map the data decrypted otherwise I wind up back in the >> memremap_is_setup_data() function again and again and again... > > Oh, fun. >