From patchwork Tue Jun 27 15:10:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9812383 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CFBC760351 for ; Tue, 27 Jun 2017 15:10:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C18DE286C1 for ; Tue, 27 Jun 2017 15:10:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B4C23286DC; Tue, 27 Jun 2017 15:10:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 03A80286D0 for ; Tue, 27 Jun 2017 15:10:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753385AbdF0PKu (ORCPT ); Tue, 27 Jun 2017 11:10:50 -0400 Received: from mail-bl2nam02on0055.outbound.protection.outlook.com ([104.47.38.55]:48448 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752779AbdF0PK1 (ORCPT ); Tue, 27 Jun 2017 11:10:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=rx9s+oihZA9M/4viqGBQ82k2m+x0lSa8RDoJNJ3T0eA=; b=VxGHes7kJeZEbzAtGzw3ypAd354HBmxdyoKRUiy0NkwvZwhS+uOEA2D5zWwlCGjWjBca5T4qGm37LiZwkHxPIEnO8XYzKxlnFecaJE+CUhzI+11FWz2YuKRFvWRDpcOXY9oRe6lujEfjCKPN/ZQQyNb9MPyuWvObA0D2OP3EAxc= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by DM5PR12MB1147.namprd12.prod.outlook.com (10.168.236.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Tue, 27 Jun 2017 15:10:19 +0000 From: Tom Lendacky Subject: [PATCH v8 RESEND 16/38] 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: Tue, 27 Jun 2017 10:10:17 -0500 Message-ID: <20170627151017.17428.9460.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170627150718.17428.81813.stgit@tlendack-t1.amdoffice.net> References: <20170627150718.17428.81813.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR21CA0049.namprd21.prod.outlook.com (10.172.93.139) To DM5PR12MB1147.namprd12.prod.outlook.com (10.168.236.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c1a59c9c-8073-47f8-8696-08d4bd6ea23d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506067)(300135500095); SRVR:DM5PR12MB1147; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 3:JBrqqmdiundAkbTkfSBN7yvTHIoUadGihP7Vo4KxiiUOEqB9ApfYUrVwRswoSruB6UMnMsxQHPlXbdJPq6Uhmbmz3xKQl00z43+ATdoNJJXJ0y0L+mwBsdkjtJQH4n9BlRXyKXLC1qcHtJR9PCbD4ww1YYhbJpcZwO9H15ZYRfEnRy0fmfIT4EKyLpGAD8RPBr2vbkTNqxENttmNupwusV5yz4ade4XKyqOhWgtAAGwECKtFJwcfuTnOApOWkQPEAbAx/tPdk1QyZl+udSNOcjxjRDrUYC9mY1/ae47Pja5/Kp48umijKjM/PHsDN4DWN7VVqGKAYqeJdKF0FEuIS9PO2WZOq4kgwK9iNRrLsPmqvWWGhXCV1JseYoEGYvNwPKwPYwy3ZL/o7Jjk1Jwv6qd+PIZ9YAyFIB3mMSQ2RClcet9D/k687if1wJZz8nt1qQJ5aWKUYizAfmEOzyVVTLR4zesqNhOuMS9lP5DefN8nfuN5zxqPBiom7/CwSEpKDdZVCJGqzurZcfI0/QmIFJFeLLgm60H6Gwv48yq8vwaGSARFyvWoNWK0ATGebEO4kx6zYM21FVfs2tRcBik1XJyEfhR5vkU2FpDe35dzerHJ1Hdxa3jlj0Ce1mWSKvSA6APvyJXQQ4940Jw6IAhOJ9bwxMsbU6OrQmoVq9yf3CEKbD1YJrlmrpUT8IM82cEfxOslYtwBItWLZlbyLXv1AeJkLcrwgMvznJIbjCEN//q7tLEO37gywFIJLji2dJ0f6CM8j8ACANCwclGg9AJpsA== X-MS-TrafficTypeDiagnostic: DM5PR12MB1147: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 25:m6nsvnwoj/XSGT2ZhKook/+zSY/6nIrbi8NtDBaCdwuy0FVRvP2Q71v0e6Sax/TAtriOkeggRIEho4JtyC4ntBHPFiSBq/pRbIhi4X1iK4OZBrTME7jCO96ZH0ihIHNuEi0Lv+FEgG2Eavk5s14eGaFpBFm+VyMUJ9ca6y53Jc26UfntknnfCFAn2vZ9IFGt8cFfmV5D1qOtnRzX33+yF6j/vxjV4RWx7HRK6I0R4V+yi4cCAl/+qJ639ISJHHOIhxo7Xm9CZOk5V9myHQN6u5bkkbSW+RK9hRmg+wH5UXtapggdZfUcFQMRQQF9xZjJbBInBxYQVZIS6rg7ZyjDjoKylT0leuvGyBn8DFr7MFoXbdPBC9vk3/JtykLbtJl5N86cFW63NB6FxhX+IkaChAiKEiJwJ2A3NA0at6e46qcZ2QtASs/bZSK6lOuv8ukKxcC4sH2CcKOc3mI2ZvHlr9cHWxiTVBx8bfG3sUSqdewM2GGwCoKANcB2LuBuszhm+kJW6P2J1J1mpcKPB9S2ukRctJb9xmfHHZlT3+hTiWAiShVhtQMOsBdKDoULpHKkEqYkgEvfx3uY1XmxLGeHSKsTS5mJuUhw+pnkqfOmn0zSjovxwkWZjv6QCbt+Mt9IER7TYIIdExLpfjEeZ1jLj9VKmeDzJT+RtZnfeAjRcKME6i4uvkFxy26BCl6toEclPFRi2T0woFtiLw643BU5WDZpeWJM9yYkZ7wY3MgF4wha53iuX+PReF9qRvS/loFjMYSFLcgCOobYxcQeOB/JEoiHogsqc807JnBLf0cHH0Eu1QS/chHpsC0oyE+KJs/jlA35KBonGH9qlOiyMISjZlyx+yMSSYpHKW/4K1SFP6LSZnMRGj16Jyc6njC0KEqxqsoF4zeheduAiZHhXiALVq4l9r8Kam1ALYcNZQJPY m0= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 31:NJBDMQ5NY+B507uev2/XEl+AYXULDEZ68jforllcF4/QbF1XIscyRXlAqOFMZ8d+6Xt1fDxMnurCM+MQOH6C3EX2ZICiiA4mZMTXoJbV8oG3ISVZ8bPoLOKsL4jYEKHMUKbFNdHu9zNibkd7nWohTrWzKENwplAz+cm1LHM1+SPuOANtKLvM0XGfxox2yZCk8nYr6aDZ/o8RKCYp+3+L9PxC0hroMi5RXNPjQscvs2mUY2dh5caIwJfUbs5ofOA6b1PBBQQT9iHMHwOIfwGaYe5uW3uBddxpGSDWhAJEGVCCrasYvERn9HgmC15nYL8Swp4MzdFpjF8/UwyWQ0XrY1TG6qEvX33sZjrW3ZvU8JBsafPXeF9SqiqhyYyoWAWQgpd9EFH6Xzth1wUXZMcZUv4G6OSXUfryXIFkh5J/SqO/tHi3F5uSgp5KYPuRS94yNa/AddqCq1pRHy7DplXatCFK9GmJ7jyWcNC3fvS+KtqMPvnHMyxO5lzMOqdP2avc7Zu+5Lxm+mrqp+BHO9A9VzWKhIpXwoa+QOhhUGB/c3BqbwlIBz37IIPgMsWxrZQLwDJ92+jEnBD9nEwr2VTB2jVI1OLv9iUIGrP/i3O15wqY/CDjwlmNhng3j2BwVrx9SJtaaqMV19UGLE5SG72GswBO9E+3XOUq4CSb/CjDbj8= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 20:hRgLMovwefkI/tbsHT9H8DzsKaWwEwAMC0PGKyiEwN0D3TDrEdnCgDaRD623r95rg3ZQcEYxfVasT/g6RzG7FKsa6gRbsfMFaoWp3mNI5Ugk/GnoJH3tks0YdZjkxnavrvOgTUWgRYrPy53wkzvJ3VgFB4FBMpH/+695xkvrtGGcHDhSbmm/6+aNL8ZKyVNbutvGEC5MzZ7H41pgCEOkE9ypdVWEB6vzadc1NBRiwunYY6mbtFcfLipOTweLOSVw7C6OjuBF3ZqDFWVr42Wik8odVbpunnk9z1r4Ly0w1qcjCfTo6PdLydkUqok19wbWf50PxQE+6/fazxzsH82/sMDIf5hu9lHHJ5IJgoyeHXB/l9bTHgtFOiUQ1XUwzk9KdkWTtwFoZoTIG5NVFUZNKoPU7AxbKGNjHAKkUSlTLHxExu6ddFqXclNOPtUaNIvkEY2WPqpROPR8wJoSXMfvseguEuZbRV8jo4XbZXpd7hLza8HDRbtb70Ds/nRK2KUj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(767451399110)(167848164394848); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR12MB1147; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR12MB1147; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ3OzQ6Y0h4N0I2T2ZIQlVRRHZvbTA2YzFLZDN0ZmJs?= =?utf-8?B?TURIMTlLUGY0ekowMGlGN2syWnVZdmszQm95MTNXRkE1NGZMaWpGOHpTcjYr?= =?utf-8?B?bWFWZnFocU5jbTg4cTkwWFZTZ3M4c012Tmh6MCtiYlZTdW5yb0FFNzlIcENx?= =?utf-8?B?VkVXbUJ0YUl2ZUhrYzNYVGNHZGxSaUNCQis1bWFVT0tOVk9jTlBXWEFOZEVS?= =?utf-8?B?VmdGdUFRYjBleGM1L0tURVJibGFSRTdrWm9OdFkxdUZ6WUNCYWlFS2VtajB6?= =?utf-8?B?RmpnMmNJSHdTTElqcVpMai9oSDJJZWRCVVI0dm8xMWdZbjVuU0RDK3dackQr?= =?utf-8?B?ckF5WmRTZkRnTkZkNnJxeFo5QkhEaytpeFloZ2lSQkZKZmg1cy9qb3dGNnFq?= =?utf-8?B?ZEVvZnZNMFFxSkIxMC9ickdaRlNtaEhjd0Q5cTB3ZE1jWFdUZ1craks1aTVX?= =?utf-8?B?ZFFXUVdCMlJ1dW5HZy9KNExHOEdaUEV1S2Q3QUUvQXpMbWZEVmw1T0RtSFU2?= =?utf-8?B?SGdkbHBISStrOTVTL2hrTGJoVGVmMUJFWTgrWnZqU2tUbjA3Y2VHNmVoYlFl?= =?utf-8?B?MlNvYUZnZXF3MXdyZ2ljWlc0eE9pZHQ3MCtXZFZvSi83Qk1VL3JuTndvUGw5?= =?utf-8?B?ZzVlSzJJdnJUZGJnR1E1SVQ2NDRxSjdrU2J4ZFFpT21hVWFMMGZjTjlBUlRt?= =?utf-8?B?MWp2Z2FQNGdGbzhpUUZ1UnlvMnA3aHEzcDFQeWQrbmNSZmZVd3c4czNvZWtZ?= =?utf-8?B?N3hoYXdDcnphTXcwVTNabXdZT3ZudnI4Tm5jNW5XYkRRUUhTTDZmL2ZXY29V?= =?utf-8?B?NHdBeHdEVkMxSVlPVFdPeUhZVlJVMStjZmxFVnFnQXVBK0RLZ2w3N2RxYkI2?= =?utf-8?B?T0lMdkRPMTBEM2xydVBhekVZUkFoY25wY244NkdsS24vc1lUbFZEUFk5NkNM?= =?utf-8?B?V2s3alJLNDRXSjF0aVQzRm16bDNqTFZoTkk1c3JHVWRjY0RRckN1NWJHVURu?= =?utf-8?B?VHJ4Mlc5RjM2a2N6dHd1L2ppbUJ0cWFCV3BJa2pGQWhiU1I0Y3RkcWdWYk96?= =?utf-8?B?bmRuSi91VWFwSWpJQ1ByaEcvUXNHNTNIcVZrNEROckwwem5kcmVRbHRSZER3?= =?utf-8?B?a1RRd3Q4QjJNUTVYQkd5aEVJa2d0clhPMHQ1NkJOSDJqaitmNUFXVlJOenRm?= =?utf-8?B?ZDlJTVBzMkFTYndDaDd2WGJZc3AxaWRaZDdzQlJhb3FoZ0V1TE1wZEcwYW9w?= =?utf-8?B?SXhlVkEya2E0a3pTWWcweDcxcU9JbEZGVUduTDF4aFdNR2xoRCs3alRNQlRD?= =?utf-8?B?TjROdVkvSFhkZjdraW8rOHByVFUyeGE4RVc4am41QWh2dC9zWGx2WTVFZlhL?= =?utf-8?B?QjVhSFJTUWN4VFhDY2pJM1RXQWhIY2RFU2FBenRjaTlkQm4xdlZVbkFiQVlU?= =?utf-8?B?ckJpZXpZWlpaS1FWRG9pR2h5NE9SVTlxbURhaUhRTTVXc3ZKN0orS2hlNWZQ?= =?utf-8?B?cWx4Ti83SFk4cDZKNXdXazNoK3JEbWs4OWM1NmJndGkxS1Y1SU9rU2RaWHVE?= =?utf-8?B?b2lYd3BTTkhDUXhxeXFGajYzSWlqR04zVkZwL1prTWpSTkpvODc0NFJWR1VJ?= =?utf-8?B?TjZLTytJd3BwdGNaS2ZTL0FCN25sRHBoUkZDMHR2WVJvR2cwd3ZZb0pMN0p2?= =?utf-8?Q?j5118UbubIxrQKHhTtpN2KYFJE8sSmUZY8/GBr?= X-Forefront-PRVS: 0351D213B3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39450400003)(39410400002)(39860400002)(39840400002)(6116002)(230700001)(23676002)(5660300001)(50986999)(6506006)(76176999)(305945005)(3846002)(54356999)(55016002)(86362001)(2950100002)(53936002)(7736002)(42186005)(50466002)(83506001)(47776003)(7406005)(7416002)(8676002)(53416004)(9686003)(2906002)(54906002)(66066001)(4001350100001)(38730400002)(97746001)(81166006)(1076002)(110136004)(25786009)(4326008)(33646002)(478600001)(103116003)(189998001)(72206003)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1147; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ3OzIzOm9CTE9VR0YrcHdFTkVlT1ZaZlZRQ09vTWQ2?= =?utf-8?B?NzExV2pMTGozcFV4NklINXFnbGhHWGdObDlYekl1Q29rV0U3amJGZzVqQ0Vo?= =?utf-8?B?bDNvcVZCZ3dOV2VwSWNFaU1vMG04a0VPaVp0djlZb2dpQ3hzMXRIZDQwQUlZ?= =?utf-8?B?aXlZNVFXbHRXVy8yL2NsTDAzditNZmNKeitHVnQ3QjB1N2t5ZzNXR2NndlNv?= =?utf-8?B?eXl2dzZITGVYbW9UNWNMN3lLUTFuVC9taGpFQm9WZk04NGR1UXVTZ1dZREJC?= =?utf-8?B?Q1J6MEt5UDdBb25lN3FEbGJQc3VUeXFwUnB0bkxuZDluZVFYWWFGMVdnTmY0?= =?utf-8?B?U2VXZE5XUDV1Yy96UVp3SFZPT0dTbW9OdktEZWtkSjFOWVN2Qk42V2xWeDRV?= =?utf-8?B?blpXdHRJOElnUFBGL3Rxd1pOSGdqRXdiNVhOMUJxRjM0Ym53M2hvbFp5M3V4?= =?utf-8?B?UExmSjd6VnFwY3dHeUxDaVBaZElVa1EwalFKWVg0L3JVTGl0UkxscnNMVkxU?= =?utf-8?B?Nk9FUE50ZENRbWlkTUZTaEZoZFVTSEhEMzhjTHJ3OTgrT1hwdnYyd3RsNFlT?= =?utf-8?B?cnJGMFc2UGxqcmtQUGx6U082K1RoOWtKR0FianRCcGZLejZFdGVpalpwbVQy?= =?utf-8?B?ckJ5Zm55cVlUU09rT3NtckJac296cmU2T2dNS0hrZHdZWXBGWU12TnFNcm5n?= =?utf-8?B?eXFDMDdET3JSN0tKT1JxK0RmcEtQcUFKVWc1aW1hdW1kcVBLYmdVZElJcE4r?= =?utf-8?B?V2l3MUFVM2ZQb0lFZGhpQk9vZHFoVldxUWNaS3cyUDZWWDZsMHozeEJGdE8x?= =?utf-8?B?Z0Nza1h0aVNGSE54SjVVYkFiZGxRdDhPSG5JWTZneEJ2VWx3K3ZjYjlkSHYw?= =?utf-8?B?S1JCV2R5dVY0blphbCsrUmZxd0QrSDZwVkJlMUsyUUtxdFR5VzhmVGV3Y3Fo?= =?utf-8?B?S1JnYS9vdDhHV1pNbnNoQmZBMzlGb1VIZU5uc3VzRXRCL1lUMTIxNEdMbEZC?= =?utf-8?B?SmpYZU9DOWRONE5OUS9KRU9TUWl3RGRnN1hoY0U3QXdkRHNlRkUxQlRTWFZM?= =?utf-8?B?Y1BjSHVaQ0twQk1FMU9zTGI2NlprbW5yRUNxRkk2bnF0Tk9ld3dRMlozSVNv?= =?utf-8?B?NTJOWG4zZCtyQjQwQjlMSW8zekZQWXh3ZUVlYTY3Z1hDek5KcTd4aWFlRHNZ?= =?utf-8?B?N25md0hSOEQ3Y0hEYUoxd2JVb3lLRkFEN29rK2tZeTQxWlBjbU1TQU1HTEUr?= =?utf-8?B?dUxnM1Y4YWhITUoyVlFKMGwrSHRXcVphWDJZU0ZuRXFPemlSc2ppUnhGSkxk?= =?utf-8?B?R2xYakJQVkxtcjF0WVFXcVgyVmFUTzEzY3lISGxyUVdtaWttQ2Y2Q3lCbHVK?= =?utf-8?B?VkF0bWpMcVMwR0UvM2NTbjAyT21WaHJLa3BaTTdDRjd5dk1UUW9VVXVuQnI4?= =?utf-8?B?aWZDbGJOQzd5eEt0blFtajZTTWZWais3S3NOMnZValRlWWNoVU5vdnBra2FB?= =?utf-8?B?QzhobzRNVDdQVnh6dUpTWDZNQ0ptS0k5KzNTbXJvNUw5b2pyN2pvMGFTZFZG?= =?utf-8?B?TTFJelZrT2c5WnhTbllKaGlBaWNRaEo3eFU5TWxzeWQwcnFZYmFORTFHSGlT?= =?utf-8?B?RXVKaVYrek13em1aZWNvcVU1WVY2cTFnOW56UFNTVDFHUTRjNHQ0cFVtRm16?= =?utf-8?Q?bP0nHRgRJwiAzWZdpk=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ3OzY6Ulp2bkxJMjlJUXNudWhvNzc0OUJVUmVuMWNB?= =?utf-8?B?OXlFYXhLSGxJcTVjaHU5L0tlZjFpakkvTng1SlhIRk1taitYczNLdTFYaDlE?= =?utf-8?B?QXF2NmxIcmVUTE8yM0JJQVMrbHpzSlNvajJjWEtBcVVCOE9FR1ZkVGxkcVRR?= =?utf-8?B?OEI4YityaDRBWExZSVV3ZTZ2OVRDbFBTYVhmT1dnalN6WTVOcXlmQ2k0VFBk?= =?utf-8?B?RU9WZkxvYlhVMjE5TytYWjN1Y0IwaWlORE1XVUxabHVYZTFCanNKbTd2OHZs?= =?utf-8?B?T1hPM21nV2E4Wm5TSDB1OENxY3RLMVpqL0x4U3E2LzM5dVpQR3FtWnd4VVNM?= =?utf-8?B?ZVJHL1JFUlFiT2kvdnl0TmVreWZ1cE5jOFBLWGN2UkNENUhrMjZrUmFOQnZO?= =?utf-8?B?MnVFUWExaWZ6YjNSekJDMXJ0Vk1RQVdrNEdkVmhJRDRKTlNzSW9TMWM2cXdy?= =?utf-8?B?Vmt2YXBZZGxUbGZkZzc0STUyU2FOeEYwU1ZGNjZUeXI0bnl4SnI4Q2NKRHBq?= =?utf-8?B?a2I0K0Q2a2ZURkxDWkNQQnhwc0xLMGZXOUlIU3l3THAwMkhWQXI3ZWhubXBk?= =?utf-8?B?ZEZWeHRFczFoQ0xZdUNETmpRTlJQVVdsQmg3N0lBaGpCdGJZaEJIRUhRMElY?= =?utf-8?B?R1FFWUJTeHB3bDc5ZUthMXhMSmQvOGt5SDFvcnpIVmQ3VG4rb1dGbXo3L2Y0?= =?utf-8?B?dmRCWGI1TlJuSGFwbDJFaTh0SjJCYnJ2MkVDOHd3WlJIQW5uRUtMbm1QUFA4?= =?utf-8?B?YWNlVDh4TmN2YWNsRjlNK1lEbDJKL3l0ZUFnTzNpY3BIbUR1M1BseC9yZ1hp?= =?utf-8?B?UzN4Y3VLbngwK0RrZ0pTWUhyVHRrSTgwZEs2bUJEbVIySGszRlpxNzExMUd0?= =?utf-8?B?TmxtSUtXK3NDUGV3eTlReE81b0ZGSnRkTkdIcmMwazVnb3hsdmFkZGo0ZXRY?= =?utf-8?B?ZDdrQWJDYXpXMytrNVRYWVRQOTMydmd5NHJPMkd4V2hJa0xYell1NXBKbERu?= =?utf-8?B?UVJHeXVVYkp2ZERCc0VUYThvRmtuWmxxRGRZa2F1RVhpc0Q5Z2UwUVN4ZkxD?= =?utf-8?B?d0lxRGlGUVMyMmoxME15L0QxdEV0bnVGQTdsaXZ1RlEzcUQyRStCU3ZpNDRs?= =?utf-8?B?VzlqSDhOZW83ZTVJQy82Wi9kTnIxTGU2d1NybU5GdmN5Szhha0FTbVFDVUw1?= =?utf-8?B?Sjh4UVp1V1JVNFRkM2Z0SFRWM1dXOTRzcUZqUWdhRmVJMTBzWWtxWWtkazdU?= =?utf-8?B?MFQzaEJ6UmtrS3BUalBQMFFlK0NxUDV3UG9RSUcyWldlS3Fid25xUTdZaXV1?= =?utf-8?B?MlBCcWFQellkQkt0VFYvNWtyd1lGdmxTamg1eFM0U1RXSlBGNUU3SzFaZU5Z?= =?utf-8?Q?t8XdZu+?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 5:1lH4ZOjZ1MdA7qPxr3k1CiIwUvsXozQtLMx/B3UJ0gKwuOe0fXz+4J1AZx+S1r52RMwvW11AblTqgwgnkW9XAdYRVefGsnpnk570CYO8IL499VMWBnAk+bwG3CPhBjRlxLVRZhI7co/lmzVID3/WwmkvG52jNaQzup//RC7BNwNZxmVhdDbmXN/Eu6Vs/4//l2P5Ne8g92dgW2xLbEgv/dkwBFWRHjFZLBM3e0Mh6w8wB3YOTSpKEJsXTKa2cZ2jW/bG+DTBv02fVOvQKutMhzPwyGfJSyAhCP4hIQyPXBQV4sKJuhgiqifLQOhiIppPILKxrLTmXDucAh4F3De8fxj/E3B5BKTvTgD+LvmK4aSb8kxuzOhpJM+G1WVzdzXpplGMSSYIf5WsirLzIHLsmwqyDocLqzy0IQJ6izl8h58lhnn4TRug0Mo50fqkTFBqVxTKUPF9VgsdR/9es0hFudsLN1Hcbc7/atOEUJw89KIckUs+x6IJ+L7n9MXnWZsC; 24:8wTkE+22b1dMjwZUn76qbEqnFXaZXJGeT61NV8+X4NvyoVpgEhukAQRtaGEnxSkCn7lCdoph+n56KPbGYetMrPadt7vud7AxlIzxfDUhc1o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 7:pGLRIXc6XNzROgNtX31T6zlmN3vDjZsMebROMTdNVs4mPARYXewu29kiiemiuHboda0bvni8RvNlQp35RqyT7udPxpL5FB2uu9Q0/aFMSNYPbsXEswtDRUP11QPTnLZL0tDzlUeCByJS1b12ejMeoClJeVjx4e4lo8xS1W7I+JgC2F1FUNdIqWvG+W+1njBHxXn1e8a8vyueV4eAh11YJ7WTLDgBAW/cpFgRU69H5ODWmAaj+5xzMTkHj/ACdsObjRoYyvcMII08kCRzdCkM46N1HsKi0hCr7gFKqHP2HaF5UsGPpIZ8+3e+fQdjbpIyG/GsWnceJ6vAjHnHRINY8hVyYTRXnSJv6GVljaAPegqhbvfOK39+PB+2v3aHb/rmsaK8gWKs5AKLUoioZU/7tousCLVgNBIsSwr5D2ZRMtRmrQkK9PVu5uWb30iKBFclxscYP3CL16ENjFFzC4VpGOcCB2CATdK6ZeTF9UQh5n6IXickP9FzOYvud5y7tXhLoOKEfR5eJbv21ePpCosbUyP1Qn9fCLHUmv16nidpXAjk1B5v7MUhln41k1tDTmowcJqxfpnTUj5DEAl+jgAhQwCM8VAAYYFpAOJwIil8P0sySuhVyLUULgD7k0lY1TlQLY7DNpn83zu/cpRmoiu+3QtOSkvLHzmInr8fd+evvf0QoKcaHdFeK7cyGU7TZs4dP7wW6TOIyxHXZXMCXZELVplHiozeT1hgRQ3GyrSUG0YIpCNaSi3IposDsRmC4PRHtDTt1Im48lcTQlndlwNlyy5gCiKN24dYZjSblEaMeM4= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1147; 20:/YZVCo+rytq1J85d4WvHUVC0RrRZ11EDri1GEVeBxCsJqujVTdQFmr2g/8lhCztY48ln0Ba4Tv2WHwCHUljQeYWupSHkySGKywJAk7SUagvKuePa/zRhDQPRMnURJhz+jPkmOq5C0XgjuXRNy7pksUAhVyaNb41ZT8J6e0FcrIRnGDiqMkvEbGlNavlhNjdVeMGvc0tWvJjSu1n9DXg8IEHFD8FCSrFuXrxKss4fjHhE0OauwF0inxgaGg3K9P9m X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2017 15:10:19.9263 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1147 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add a function that will determine if a supplied physical address matches the address of an EFI table. Reviewed-by: Matt Fleming 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 045d6d3..69d4d13 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) { @@ -855,6 +874,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);