From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752706AbdFPSxS (ORCPT ); Fri, 16 Jun 2017 14:53:18 -0400 Received: from mail-by2nam03on0071.outbound.protection.outlook.com ([104.47.42.71]:57989 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752690AbdFPSxK (ORCPT ); Fri, 16 Jun 2017 14:53:10 -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 v7 16/36] efi: Add an EFI table address match function 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, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?b?S3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Thomas Gleixner , Paolo Bonzini Date: Fri, 16 Jun 2017 13:52:53 -0500 Message-ID: <20170616185253.18967.55724.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.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.78.1] X-ClientProxiedBy: BN6PR1001CA0001.namprd10.prod.outlook.com (10.174.84.14) To CY4PR12MB1143.namprd12.prod.outlook.com (10.168.164.135) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1143: X-MS-Office365-Filtering-Correlation-Id: c082b774-134d-4315-a4dd-08d4b4e8e999 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1143; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;3:BC930b1QEH51iyExdTFeYKTNHhy1qOgc0UEMPLb5PLRiZwtiOiezvyGipfKYxT0i2HWa9CAJYcgwMxOh0bx1A5CAJolrIXsGLM9GtciYwQTcbfDfiqzGOizQV72b9XKU+L/LZVaJeUD+QDcKd1LX3o0muSBzxdPctk5PZAPCKCAL7owyLkdmoJvwS5VQ9WOswk89gq83GziTzmutmZsMzoZMSjuNFuAQTMkcklU2ICjlUPk+eZ7DuXCUV+cRQEWXsGqRGXhIrFTeTh/r1JwCeWnafiAHlypnRN2wP3z0ESWUAphgZGLqLSy4g7b7JTQO9kTnXhU8Bb8H1SCm0fW1ZcV/KnGiDZG5dcYEgC3WNCU=;25:oWmZrtSorm/ZUN22bBRjaoUcLBE2ZkT1TlNRNefglCMhh27mUPsrVeqfq3VjdPeOfWE1s8+50cjEym6uj2WGzqUmoGtVPTIAMpvFHTOApJOjbD/Zn9q2Bqk14HXYE2gkMIXRklNTZ+43h01uv+Qo0eC6Zzzvbh8qTjAb88uukCojt1fA6DzvBNhRrV77H118S1SwX9IuOZjC+rA0IuHbg2qRGZpqSAVzrJ0Prm9lwp3nLt0vTt09o2OWGRGI/pTUhuj3aavKEZvi0a5alIGVkK2EW/wtkyFqSQMvTn/rbahTRj8Mc5FYwL96Bw/6jfS+Ikai1/ACnR5MZ7p40Ha+E23Ta9lMVsSvG3yVK4etqf7/zCCfHm77wnOY3OdNtIiuTtYlTIBDA2e3PNUp06bBVHZEqOFdhVXpGo+S/dgkTH+LQqGwEQ+p+COtJKGga17HhrPPPiGm4AWQ8JfvvudSCWVJldRkxEC9cMGNuQ9i908= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;31:GGe2n0qHFFWO1fbkPd3gXZGg3Wylx6fcJGFn59+jx74fDzBmtB0zxHzK20zKnGs0AgbzgftsRvXNkWn50tdzCeWsBjFmEyt2AtLJr9KE1/7GSX1wjEkrjr6HEKSFVbl1vDn0nZA6i9q3cvciUDDjuSuwNw0i3l467btXjy172K08ZP1R2LojBplj9oj4RJYNn0nXETUc6mZyYnS+mEKHT/qjzzdu7aXukqh1yC4sGzk=;20:FzA7f5e1fX06GQ1aDNuKvuKZVmKYQA6YvPL3pBgtqfEZ/Kl9cYriM99p32o1tXHPqUYWHSoXloMlp78lm29x7cM6Wja/DljIkobG2UWMNUYT48CWHLjpTyiM/Au/1b1BIzl+NYRttpmMGOY9Dlm4wjaYgNUmJdLgD1r+36ayTEglDViPfPggX8Fyn85y/GEvNPWRs6Z3PwUhupB8v085whHtxGVTV1Z2uq1atIJViCe1JtBKMfCCu9oM/54lUSjY7RXm0DpC05O3SvJRFZ0zw4BO6/8mcZk7IZ8CvGpvsM6bb+bKVGCAhHgTFvhM5lTIaeQIpbqXYMBxA+wYrczrQb2ZRxRZJglrnKDIJWa2cSytomIFjcXVqDhMYdQbC5zJhBX0KBjXDu0FyehTTtOVTWky31paUQI1Hraj2xCNtKyuZKQkDAFRv5nm4kTCrXN/SOw67RLtfWHlUl8hiwRGSvGxKr7NxO04xdR6okT0KWE4Eo4cx/iQP+MHoeJIwqPW 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)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1143;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1143; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzQ6TE5TSklrMVMrQmRmakFLYVhZWDdWVVlYQUs4?= =?utf-8?B?VDZEM0FVeVd0aWc3WUxHTmVDUk9nSUdZRzQyTVNrbi95dGRIZ2lSQ0NyZWFG?= =?utf-8?B?SDRSbGszWE82OHhuSTdKVG5xR0drR3F6bGR2d0FjNE5oRDdXbWEvQ0duOGxn?= =?utf-8?B?RCtGemptaXlkZ0FiTHlDZ3FSdEhEbnFCTjlQSE5jRkZuYUFMcW0vRk15cVdJ?= =?utf-8?B?SG0rTzhpYVRwYVgrMWFWelIycjdBNmJBWjBwOXdKT2xPRDd3M3BFaWR0bFJV?= =?utf-8?B?NFc1cEJwbzFLZWpMNUdLK1k2SzJZM2ZZRVpXVHBqRkswYVM2aFQ4OGF2eS9j?= =?utf-8?B?d082RFJJZ0E3OWhEbFN5bEdlTk9SSE1mZEMvaGwzWjgvOEFXQ3hWWXNiUUt1?= =?utf-8?B?MW4yZVVpL0R2WFY1dFMrSUwvR1RQSDRaVC9oQkxOdm1PMkZSOVlBdzExaXZQ?= =?utf-8?B?a09nWk1UQ3p3MExVZW9Sc1JzejQ1MmZZZm9EMVg1cU1ZSlZ4dWNwSXVabFZm?= =?utf-8?B?TDVkbmh3WVpwRVZ1MjdzK1Nyb3FXY0JwalVWT3ZPNWEvcUdlWkNuL3RFOEFR?= =?utf-8?B?dEFmbmdiRFFDZnd1QTk4ZysxdndySkxKRnVQTFB6b2tuaXgrSVNnbjd3Z0I0?= =?utf-8?B?dnRWbko3eVVQZnJzK2dwQjBXOXFLQUZsOUh3dWZFWjV1dDY4MjJ3MTJ0TzJI?= =?utf-8?B?dGFGcWJoRmh1R0RuNTZEVTdxUlZ1clhEUTVOd3hSTmRCcXQrbnpXRzZmN2Jy?= =?utf-8?B?K1RjYVIrcW1Gak1QenlzSE9GY09xOEJpbDJ6eFdHQkU3WDlaRTNpVFVwQXdW?= =?utf-8?B?emx5c3JmN0hxNkFQMlNZaEozVmlsaUp4NERsejRuOG1GYW9RY1YyY3dubkFQ?= =?utf-8?B?MW43SkVTcjJEMHJOd3dhQkM3UmhSOFBxNlNZSzN0elVDUmVydklmYkthQ3JG?= =?utf-8?B?ZnFWTWNBYm5jV3NDQlVQRThZalRKdWpRWlNkM0lxUFEyZXN1RFFGSURhTEdx?= =?utf-8?B?cStQdlFCbnNHY0lWZ3VTSGUvR3JaTDFPUVJoMTFqQ3pKaXhNblJCQ0JtSTdy?= =?utf-8?B?YWkrSndXdUtYclVPVENvQlJ1b0JEeXR2NWRKR1BRL284KzJEZUxEaEJCWTZl?= =?utf-8?B?T1ZZSDIxc2V5RmplSGJzTFFzUWE2RVJHaGdYeHVkYXdVTEhScHgrSmdZWTVs?= =?utf-8?B?cWRpUnN2NW5ZZ0RiUWVtd25KNlhMY1Y2b1RPeEJaZGRHbTlRcTlFV1pnR2NK?= =?utf-8?B?Um9McVpoRkl1OUZWb3RZL3hMVExJQzV5R0Vtd3c5UU1nRVVXeU1iYVB6MmVr?= =?utf-8?B?TkpXVXhabUIzbGl4cjdZOWNya1lQYmxYdzBwZTFUeERnTEhYZmhWbFBMZkpl?= =?utf-8?B?SmFuaUpFellBeHNvVlphbE14VDhRajd5RjBFSGRmUDVKemdEZURqb3NydE5K?= =?utf-8?B?cGpmMjBZbTAvQ3lvTWFza2lNZjI1cWlNbjU0d1BvbTlFYmg2b2V1bzlDSGY4?= =?utf-8?B?V01qUzQwc1ZVMjJCZ0tlQUEzSStQMGY3VVM4bjY2ZTduT1ZFY0dwaGVFSXVh?= =?utf-8?B?ZDR6NHpjSVhhT3A5OXcxZnJsY0FqSUFIREd6d25leENVdnRvUExwdnZIZTcz?= =?utf-8?Q?TVwwYDdkbOcxwdvilMO?= X-Forefront-PRVS: 0340850FCD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39400400002)(39860400002)(39410400002)(39450400003)(39840400002)(39850400002)(23676002)(7736002)(2950100002)(6666003)(305945005)(55016002)(1076002)(4001350100001)(53936002)(478600001)(3846002)(54906002)(189998001)(230700001)(6506006)(9686003)(86362001)(38730400002)(110136004)(6116002)(2906002)(5660300001)(7416002)(81166006)(42186005)(66066001)(53416004)(83506001)(72206003)(50466002)(8676002)(4326008)(50986999)(54356999)(76176999)(33646002)(103116003)(47776003)(25786009)(7406005)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1143;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzIzOmE0NEE5MzlzdmcxdFRab0J3WGM5S2lBMkQw?= =?utf-8?B?VjRSNnd5TXQ3ZHMwODA2dDcvTm00YjhjYkswRC82bklJSURZYm1PaGZ0Q1Ey?= =?utf-8?B?aWJ0dHVVbHdaZEhab3RlYnlwaGlTenNydDc2VFdBWkRRQmV6UkNXM3pkLzN6?= =?utf-8?B?Uy82LyttanRicytOb1RiUFhOVEtyOTV4TEI3LzFmQzhrcnQzV3RUR1J4SnpJ?= =?utf-8?B?WnNCNTZ3RGk2Mk9SbTFHQVp4bVhGaEZqUktybkt4TCtnN1NXOC9oZkw3cm4v?= =?utf-8?B?WHJYWUJJYUU1RGpXSjZ3QWpzbDdXVDNQaXR2b0VDTXRQNE9odXFKeUhKRUV6?= =?utf-8?B?KzdkYThtbi8zNDNuQnAyMzREVm9ESzNweUhPbjJMZjd1bWlzclVLam1velBi?= =?utf-8?B?SmtnQmVxUDFNc1dlL1BqZkJpSFRQYjN6VWgrbGMxSGZxOXpWdjlNVWFsU3hR?= =?utf-8?B?Sm5Ka3prS3Zrc2dmTDRuSlZwTVJXM2UwRVBSQ1d3QlVqU016czlaWjBGbFU2?= =?utf-8?B?a1ROWWlJNkFoU0JrTllrQVNVcnVaN3krcG0vOHIxMnRSUDZYTVR4TEs0RUhQ?= =?utf-8?B?MkI2cW1wUVFlTSt2dVlWS25Ddyt2YW94OERsUkVyLzlIMXZHbUl0dUJ0ZUE2?= =?utf-8?B?b2pUMmdKdGZzUTFkS1pJbzRkUmVDbStYQmNqaC9BOFJ0MjdPZFAzUXJNcmlI?= =?utf-8?B?anY5WUc3dFpDRGhxYzFiaUtoOUFhTWovU2pGQytQOVZiNkRobDhDc2xMbjM4?= =?utf-8?B?a1hHaFo4TGk1anVvYXRseEpST0VJaFdmNU5FNkRvUEJZMHhCWk00Rm43Y0pQ?= =?utf-8?B?UlBqMHF3RUFOVm0zUW91ckFhUWlIS09xSGJSSVA2cWwzTVYzdzRYTkZmVTVa?= =?utf-8?B?eUF4dFZzVWJZVkY5a2g1ZnNjNnRVUmhzekQ4NktkTzRuUENuTDB5MU9DQWR5?= =?utf-8?B?NkxNeUl0RFlNWWc1UFBQejhzRm0yZEdXc1N1UkYrK1BpRnlsTW9tWTJFcEY0?= =?utf-8?B?NS9DdWk2L2FRYlVxY3BCanVOalo2S1p3WEpxMTdyNzY3WXdMOTBYeVpjZ3Ny?= =?utf-8?B?RkErbTZjUkZqT2hsbXNHeWp0dk1ldmxkdW82MTdXMjArRVRDWFFoTXZCeUZa?= =?utf-8?B?Vm1xMUZkUUNZR0NNNWNDcEhBaHJQd29VbVgxYkwxMENJaGNOb0NESnMzbEdy?= =?utf-8?B?QTE4VjdqTzhDekQ0cG83Vjc5MDR1UE12aU44ejZDTXpzeW55RGZVY1lyeDJa?= =?utf-8?B?NkExc0NFeE40ZHByTUUzMkhZR1dhSFZIRlFOTXdlNnFreC9kekxYVVNxT2Vy?= =?utf-8?B?MnJRc3E1ZTR4UnJLbDRLcDBEdVdzWUZNYXJNZnp1MHFwR21yaDN4b084c1hV?= =?utf-8?B?ejdjZk42aDlzMEhhdjFzN2hySXppWndmeStJWWNTSE9TSXYrNURhUGZia0Jy?= =?utf-8?B?a284eXlRT1VnNy9NenJxanpMZkgzQXQ3a2pnMTc0MXhWVkJ6N1FHdVVOTHJV?= =?utf-8?B?SmxQRzlNdDFUZE8zS3NGcFBSdjlyRTJBZnhGb3hWQnFFWDNvOUVJay93SktS?= =?utf-8?B?TnloamtzQkNJN1VMMnV6S1dyTm9wdm02aExHak54WnR3ckg4NlVnNnRqZjVv?= =?utf-8?B?d0s2aHgwZFprYzAxSTFmR1dxSDltUzVOelZTbVhCT3FjTFpIMmZoVGdBPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzY6MW1EdnQ3c25iZXBHVHhVZkJNbkp6UjB6T3RT?= =?utf-8?B?U0ttVlpGR25XbDI3VVZCaTQvME92am5KMzFNd0k2MklwV0tGTkd1KytCTk5F?= =?utf-8?B?QzlmaXgxYnFyRjk5c2hpUVBpOEdkZTNUWkxlYXc1ZzU3Tjc2dE55Tkk0aWgv?= =?utf-8?B?SnRTV1BCWnVKbVpKSk1RUDFrQlVMMm9VazBsK3h2R0M4VHAzY2M1M053R1M3?= =?utf-8?B?Rlp3YmJMenBnYnh0Nng0UGVUSmFWTm1HWm9mclVUdGE3ZHVsZEdJRFlZU3R6?= =?utf-8?B?SDN3UkVxR0RIcXhqUlBUVUZZaVBCMkY2alpEYTdEWHF6bHdzdG9rWmxMUG0y?= =?utf-8?B?eGJIWUZ2cFR1M0RGNjdxSzhlVTRKYlVpTlY5YlNJYUk5OVpiQmdzTEhXcGpR?= =?utf-8?B?THF5eEV4dnJKaVpjZGEyczdEKzFtSkxpMHorUHRicm15cnNsM0x2a2dmdS9m?= =?utf-8?B?VU1HM2psSGpWVVQzM2EwdzkybmZXWVZMV2RpUmFHRlJ4eHpUVjJhV3JTcEhw?= =?utf-8?B?UjlpWnU5dUo5TW03cjRjTlpLdkFNSjU2ZCt0djBTRUI4cUNHZmlxdzJmZ1Ur?= =?utf-8?B?RnJUYWIzTDB6MXZGYmxMUnRQNHRvWUhTdkd2eHZ5WTVyV2lIR2d1amF5ejF6?= =?utf-8?B?RUpnb2JqSTNiRkQvcUVvSjhVVEdDRGxmQ1JxYXlsaVlYSVdsR2JaOHJSV2VW?= =?utf-8?B?RFlVckZiVkRxSytXVXRMRXRUZzJLd3lMMnZ2RzNTM3pUc0hXNXc1T1I5bFll?= =?utf-8?B?T3YwVEdqVHpFL2JCL2Y5MDJVZGxRQVFYbDhVSWY3ZFV2Yk1rRXlUK2xYTHk3?= =?utf-8?B?UnFxemJlTmNaYkd4bmV1Z1g4UlVRMnhIaWVJR1JqMGdQb3BLcDRMVXR5QXpG?= =?utf-8?B?d3JCMHZteWl6MGhiU0hmQjNWQTdIZWc2NXFDRmNZbnd2aFJTZFpndDhxdGE4?= =?utf-8?B?YnU1bndjclIydVVySjhZWlNUTWpNVzM3VkRRT2V4QWN2Y1ZJU2ttRGZJeC8z?= =?utf-8?B?TzRBdkkxYndHNjcxbThxOE0zd0pXWjBVL0RPd1Q1Q21lbWNMWmljdC9tSThF?= =?utf-8?B?dGZzN2tmOFlRaDduclBCOStqbDBYbG1vUGljTU4rZkRLOUlPMHRUeCtObWRJ?= =?utf-8?B?cEFoN1pzM05SSHpvZVMwT3hDWDQ3L09yUE1EOVpFYitHdGNCWXE3Zzh6ZmJa?= =?utf-8?B?T2ErOGZCRTNKdFMrYTYyMm1PUEUzQUdaV2xHWkIvQys3c2VJWVVqRW1MR29I?= =?utf-8?B?azJMQUxzeTlmeWxRU0V3SFE0M25DV0dFWngwck5uVDd2UXNUaFpWVmFxNlBj?= =?utf-8?B?NWZIMkJhak9UMFhGK1NQWVozdnhpZ2Y3WXl4SkMzam8wWUI1aVppcVNGNm9o?= =?utf-8?Q?Qkn5sdY?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;5:0AZsFHxAe1slrK39bp9Y1cNeoYP5KDIsi8Kt/RFTE8hK8ISpND2HZ+3gF57VpLdOxjiMGWgyDPoprJhvjm4h074mHSPB8LFywY2BugUb/W5q+a2jTZgb4F9bCNY+Qjhnl3ExdozOQFSLQJzUpQy3yfDEchO+y9YAL4vQtV5Oo0MhXWMrldYd33jOnu7rOonUL/DClQtyW3HQEYeld4tPJbAI6Fr+BAl+9wl4exNexBTOEeTN9wlkrpY6H3xaqOuyT20yygZ0uWhofUcfaiNqHOTIFsRQIEhHotlWnlxHrx7rDZwcAL1blGtFSGrrQsU3flIfbqxMKVmwsP5XA4EHGrxScEwhd1CIDJnW1jhAIDcktRKNqsXa8d6aOserSPj1MRljlx/6CybnytlyY09+cXOBU2K4Jy4V2g6GUUV5GPX8IiNBvt1EFKzqH1Qot58sa8Db/UPJFpILaPjweNMQk14+JmGezFBXieBoTZDPAVIuHcfg4LTIJCoZjr7h2gEL;24:YM2gwJgC/6a86L9jFdiOjcNXtQjqFM0gp/HgBlqmoiqUOQMbMWOjd1puVvl2azZXSmxCPw6/05eGMoVmdrBEIRUuLQMhocuMS7HL6iH7PMA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;7:x8ulA9WXb3jC68k1cIwSpOJCLqoTD08zEjRlE2diDH2bSst7Qeu4OZuxuws6iObltknxLL0nhQkc8KzVPTUbWxA/SeB06QcuGPS2cdY83aHpBGsnTUN2RFF9fAH3ISSkRA2xmVGzwI+XltIzCNUrOiTs3FcJ8FHTXFUgEDqCsxm5pWnoKXTsUJJVkYVvEf93pPjVf/zwaS3RWLAmD5k2vnD3+wkeZPbATLGf3LEWSYEqfvlisOtIKVYzVX7nUVobOfooG8gtDnxqw2YzUVRgacjBU+EWmibWp13+G220JU8MUmlwf3MV+EohpKKRVXpisgWoDK6d/FePPEsyWveZEA6AqMMFUm9O9/sGqWlY7G/ocayivD80xR7eaDt2h8nBf0kLpLRcfR2z5fis1HPGbg+ech4lWT4F4vOtm/3J8E/nPxhRiF/sMzUF6CPMb9kXfyuCm94mfvLCA5h57xFmgBgX9CY1dDE4onGfjwY11FPphkoeacrMI2AjcgQzlk8nwVHJTGBuGjHmF8ypjTt5G/GSlE6O0o9HNNXzwg+3fUNzWO7xrk7ahI1id9OP43tfkwTag3yrryvswHeX8WO2ePZZWSvZdc8Nx29iYrtp0C5HIZmH+1kvPIJ/7YS3SdExXtK+L7LM5FCQnJh4GeLYxI3KihRx2j7zpLs88XBS2hjXNcfHI5Z9hbtKaRGjEHic4SMU1xxSPOsjsl4TFf4dxGJMVb6MtStEsvbNASOrHiIXBKG94b2M6FiAEWziCoL3pNQwL8ztlqKgjtJw96eISsHoCd3o0OL6MmymPuYgRZc= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;20:Y6hI8eWWx9bJwKxG7cLaumnh/o3zzP4F+Q6jI+cOQVab9DlA4M6WE38Q1UizCEOstkes4sjdMhCl6LKCq6tfRArhfBFsx7As0b+KHm6HhZyj58Mr0Ajq2RpuEcwxG4U2WVnJdniGsrV37IRBBgT8z5yMXwHqosLwR5I3BLD5PYzv2xgl7ZN4RxCE8RJTo6/UmeliuFjAwvqLGhI2XdUhBgoJZKAN1TcHk/FfVcdzmX3o7l7cbCLjaInAM8L2qh8M X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2017 18:52:57.3155 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1143 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a function that will determine if a supplied physical address matches the address of an EFI table. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- drivers/firmware/efi/efi.c | 33 +++++++++++++++++++++++++++++++++ include/linux/efi.h | 7 +++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index b372aad..983675d 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -55,6 +55,25 @@ struct efi __read_mostly efi = { }; EXPORT_SYMBOL(efi); +static unsigned long *efi_tables[] = { + &efi.mps, + &efi.acpi, + &efi.acpi20, + &efi.smbios, + &efi.smbios3, + &efi.sal_systab, + &efi.boot_info, + &efi.hcdp, + &efi.uga, + &efi.uv_systab, + &efi.fw_vendor, + &efi.runtime, + &efi.config_table, + &efi.esrt, + &efi.properties_table, + &efi.mem_attr_table, +}; + static bool disable_runtime; static int __init setup_noefi(char *arg) { @@ -854,6 +873,20 @@ int efi_status_to_err(efi_status_t status) return err; } +bool efi_is_table_address(unsigned long phys_addr) +{ + unsigned int i; + + if (phys_addr == EFI_INVALID_TABLE_ADDR) + return false; + + for (i = 0; i < ARRAY_SIZE(efi_tables); i++) + if (*(efi_tables[i]) == phys_addr) + return true; + + return false; +} + #ifdef CONFIG_KEXEC static int update_efi_random_seed(struct notifier_block *nb, unsigned long code, void *unused) diff --git a/include/linux/efi.h b/include/linux/efi.h index 8269bcb..8e24f09 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -1091,6 +1091,8 @@ static inline bool efi_enabled(int feature) return test_bit(feature, &efi.flags) != 0; } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + +extern bool efi_is_table_address(unsigned long phys_addr); #else static inline bool efi_enabled(int feature) { @@ -1104,6 +1106,11 @@ static inline bool efi_enabled(int feature) { return false; } + +static inline bool efi_is_table_address(unsigned long phys_addr) +{ + return false; +} #endif extern int efi_status_to_err(efi_status_t status); From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lendacky Subject: [PATCH v7 16/36] efi: Add an EFI table address match function Date: Fri, 16 Jun 2017 13:52:53 -0500 Message-ID: <20170616185253.18967.55724.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> Sender: owner-linux-mm@kvack.org 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, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?b?S3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Thomas Gleixner , Paolo Bonzini List-Id: linux-efi@vger.kernel.org Add a function that will determine if a supplied physical address matches the address of an EFI table. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- drivers/firmware/efi/efi.c | 33 +++++++++++++++++++++++++++++++++ include/linux/efi.h | 7 +++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index b372aad..983675d 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -55,6 +55,25 @@ struct efi __read_mostly efi = { }; EXPORT_SYMBOL(efi); +static unsigned long *efi_tables[] = { + &efi.mps, + &efi.acpi, + &efi.acpi20, + &efi.smbios, + &efi.smbios3, + &efi.sal_systab, + &efi.boot_info, + &efi.hcdp, + &efi.uga, + &efi.uv_systab, + &efi.fw_vendor, + &efi.runtime, + &efi.config_table, + &efi.esrt, + &efi.properties_table, + &efi.mem_attr_table, +}; + static bool disable_runtime; static int __init setup_noefi(char *arg) { @@ -854,6 +873,20 @@ int efi_status_to_err(efi_status_t status) return err; } +bool efi_is_table_address(unsigned long phys_addr) +{ + unsigned int i; + + if (phys_addr == EFI_INVALID_TABLE_ADDR) + return false; + + for (i = 0; i < ARRAY_SIZE(efi_tables); i++) + if (*(efi_tables[i]) == phys_addr) + return true; + + return false; +} + #ifdef CONFIG_KEXEC static int update_efi_random_seed(struct notifier_block *nb, unsigned long code, void *unused) diff --git a/include/linux/efi.h b/include/linux/efi.h index 8269bcb..8e24f09 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -1091,6 +1091,8 @@ static inline bool efi_enabled(int feature) return test_bit(feature, &efi.flags) != 0; } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + +extern bool efi_is_table_address(unsigned long phys_addr); #else static inline bool efi_enabled(int feature) { @@ -1104,6 +1106,11 @@ static inline bool efi_enabled(int feature) { return false; } + +static inline bool efi_is_table_address(unsigned long phys_addr) +{ + return false; +} #endif extern int efi_status_to_err(efi_status_t status); -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-cys01nam02on0619.outbound.protection.outlook.com ([2a01:111:f400:fe45::619] helo=NAM02-CY1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dLwN4-0001sa-9z for kexec@lists.infradead.org; Fri, 16 Jun 2017 18:53:27 +0000 From: Tom Lendacky Subject: [PATCH v7 16/36] efi: Add an EFI table address match function Date: Fri, 16 Jun 2017 13:52:53 -0500 Message-ID: <20170616185253.18967.55724.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org 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, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Brijesh Singh , Toshimitsu Kani , "Michael S. Tsirkin" , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Boris Ostrovsky , Jonathan Corbet , Joerg Roedel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Larry Woodman , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , Juergen Gross , Paolo Bonzini Add a function that will determine if a supplied physical address matches the address of an EFI table. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- drivers/firmware/efi/efi.c | 33 +++++++++++++++++++++++++++++++++ include/linux/efi.h | 7 +++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index b372aad..983675d 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -55,6 +55,25 @@ struct efi __read_mostly efi = { }; EXPORT_SYMBOL(efi); +static unsigned long *efi_tables[] = { + &efi.mps, + &efi.acpi, + &efi.acpi20, + &efi.smbios, + &efi.smbios3, + &efi.sal_systab, + &efi.boot_info, + &efi.hcdp, + &efi.uga, + &efi.uv_systab, + &efi.fw_vendor, + &efi.runtime, + &efi.config_table, + &efi.esrt, + &efi.properties_table, + &efi.mem_attr_table, +}; + static bool disable_runtime; static int __init setup_noefi(char *arg) { @@ -854,6 +873,20 @@ int efi_status_to_err(efi_status_t status) return err; } +bool efi_is_table_address(unsigned long phys_addr) +{ + unsigned int i; + + if (phys_addr == EFI_INVALID_TABLE_ADDR) + return false; + + for (i = 0; i < ARRAY_SIZE(efi_tables); i++) + if (*(efi_tables[i]) == phys_addr) + return true; + + return false; +} + #ifdef CONFIG_KEXEC static int update_efi_random_seed(struct notifier_block *nb, unsigned long code, void *unused) diff --git a/include/linux/efi.h b/include/linux/efi.h index 8269bcb..8e24f09 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -1091,6 +1091,8 @@ static inline bool efi_enabled(int feature) return test_bit(feature, &efi.flags) != 0; } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + +extern bool efi_is_table_address(unsigned long phys_addr); #else static inline bool efi_enabled(int feature) { @@ -1104,6 +1106,11 @@ static inline bool efi_enabled(int feature) { return false; } + +static inline bool efi_is_table_address(unsigned long phys_addr) +{ + return false; +} #endif extern int efi_status_to_err(efi_status_t status); _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec