Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752908AbdGGNlU (ORCPT ); Fri, 7 Jul 2017 09:41:20 -0400 Received: from mail-cys01nam02on0047.outbound.protection.outlook.com ([104.47.37.47]:24392 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752867AbdGGNlL (ORCPT ); Fri, 7 Jul 2017 09:41:11 -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 v9 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: Fri, 07 Jul 2017 08:41:00 -0500 Message-ID: <20170707134100.29711.4834.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170707133804.29711.1616.stgit@tlendack-t1.amdoffice.net> References: <20170707133804.29711.1616.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: MWHPR15CA0034.namprd15.prod.outlook.com (10.173.226.148) To CY4PR12MB1143.namprd12.prod.outlook.com (10.168.164.135) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 72cd2f85-0381-4367-8c54-08d4c53dd265 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)(300000506095)(300135500095);SRVR:CY4PR12MB1143; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;3:e0rxgRHS9j9BsMh05wZktsdLhC3vxdhHxy5TDnbeQK9aMDW9aD1ICFIe0gjgiSWdm702gdHloRAClGwqSfJPGaHc/DnSsc3kiIuWTbi+5ZO7trAiJEt6W07g6XKi1u7reqKQbUIAhViZVmgGqJGuoLut2OFl83TLE/5ylsND58d5RuHXMV4KI880j9rL0EZhhMCNsEJ7I93Zf4n71c1WFjtxK4BByDoNPPTgampHtsasOp7ue6VJ0UcukzPajpfWSV438oUNKqlUtOz9bfjRTrcSnym+URqcMoFD1MUPsJg2ukpSr4xPq759i9bMi9iFCiOje4GASDjPn5MTr+vhAwzjYjmLkIfQHRUbOOXhibJAmKSUqFUBS1RGFrwdKl8Ub6LGcf1fFY45tRYP3GHweXqrYn0VC02bPgBU6Olt6DkpjKVuMpPGc0RcgTOXWP9D4SQC9PGeNZrHZZivHPdfDHAQ56L3mDnk4Wy0p325/Ij/3o6PixZ0Z5C1uELxrpB+VfHqkpN8Iuyf7s544A6twqmi0nB5btthbjNNLhQTAlgKQwX+YSFcL8sXHMvVpJSMHS+2KC4ty7QvMxihU8PTNnEutvt/UdTZ4fKQCI5OEvgFPDj6FazAL5LjiKvdcHsKHATpkyXOV9INUyVzMR7Ma0DliTHMlDXej5NtnX/3DTPI3tykLakuQVnu/O23hr1TmMhwtuoj7fuRHpz/XcosEdLv8JW+1VhXW7TT4aYo6U0MorB4IPGgFFTh/LjxOInVA/5rC/LpEQ4W4GHfK9qxmA== X-MS-TrafficTypeDiagnostic: CY4PR12MB1143: X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;25:6slBUkbbgCRyBVUfaUZlg96mg1k0scNXn7SyoLWB52/ycm7MDFsMmwl815kSOCXcAtD4DqLapQ0ebkkCnI1qBjmQ2NJw2KMXoeIK+9bDy1m+aEB6z8szDFwtpN8kygn/lMAX85ZR64TriccSORmlt2ho9X1dNbZdr4kPT1H6sPPJCKFLR5Bc6nrwigxFHIXTH4mnBQYTQHBS8W0FuMxaAapx2jq73jpxW1YRmJUgIN6qCT7GL2PuC1zmCR8TxmluzzsdgbPa4sqB69lCLNtOehiQkdWGLOmKubuzFc8Dm2czEnyplbxvnYXw/brNvWWaIoVTFOyjXaSxSoNj9To3r7oYs/laoM1RMk8YXesDneEOBbnjAMoo/T8M6UTLd7z2NJPBC3HsQgXSOcztIBOcRA9z8XZJHkLS+FOTt2xLXurBRhEVt6r8p/crxY0G73CFEhJZO9TpUK5eex02kpIjg+w+/QZVPtAOe8WyCSo/fHf/r4x5KpKbhubTtswsJR6ZU2EO7Su08bgrjKegpfiBwHte1qbNKVrRjea00ZNQdV6MuW1atwHOR5X2DhKkxWTAGS0b3uAZTGhYVNVREWuWbKqRbymPTJja9k9vvE/xuWRPmSokQ0PEjpBof/wKQ0pBAkdT2kzyTzJ2RKaJS3P8UA2PHFJJIBAURWeN13483Vj2DjzrKQDezQCvxehUnid9NuWdv9rIO093UgbJ7pnCNzMmYaDwXzMXNmijYhOdYMpH47at6tkISrhtpl/T6f1MHQXmeOQG6VihDt4tlgmQjr3m79mrQ25mOtXrU5wpq9QofBI/qNVHDnzCxnzVg5QZiE2M0lom43YK9/O5rmcCsQqGm+M0yZsPgW6R7lueRFdkStMKZXVc7WPb3k7x8dDx5brqSlFvTzEx2G9pBuwIUIsz0iXTOs6maTB+AVXrsS8= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;31:Ptce9Fq6c3eGNycDQL4s0R8KE8mwjen9tPUXImCTlfx7rUT1AB6thpnCLtKs9w3sBTbBoNpM7DvLW5QP4evWJ2s3K0LoQKXIVlFXns2yk+XUsqirhLLAMdvimZodGlmy+2qqsH9rt4ESkL2gbOPl9co2utLnfK9xa37LQoNyq0xgCUz85/OVS/F/cYaODz27k9lCK/DEsWszrr3wsW5wGyQ3Aida1UikrXTDJzRBB8Zix51ZYzOFrj09nH09TbyEHDHC3eDP40ECS4Ta2kCnT7/eesHESnc5GpLlWeovscu+0SnBSrHYLssn/MPhEomHZITrddRzxfDDVh3V0GPgtajG0WCJYfTb/Z33d/K5eCXzUzSoRfU0zTLcdskfHBif+S4CZVHNU+Q9QiuNcGt6TpIJ8Dh39ogyN4FMoE1aLfov537+wDDB5HE+DZHTTXX9fxUD13Ui/bbuW3kivYCa4MO6ohQ8jbCzjpsL3MadXDcH40TS9zeq4l0/4wdIU1gZbDHANaTrJ1NyQEZxygx+zPeFOSBmEB6Q48YcvrZKdfijYxqyACGZN3yHg8QzQFsKGBWYCIWST4BYplvZFFBPMfSPym9d4dfCK3d0wu8D1tFRiYrKueDRp65C5K+QH1K9YWB1jFhmGIc7gJEhyl7HbBE0PWT1TjkGkauLQci2zQg= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;20:VA9dOApCFWRQSK7Ob1ybgkBN7ky02Oh0NY/guMuKYzjsS1azpXhmBThSZ4oM1/IFELHd2AIot2eueXdW+4zpswHt7b2jMEEeaJ8iCVKIonfJtIZ24g3F1E/2vyOHFchme6OgBy4Z0lCswn41MUC4ozhSteDJaYLlHm6vfErBWjspUSeuoji18I/gbymy9sA177IAxVDA7OHvpJVeFOF8/8Nw7iPKPnn+3Kfh6aIUxZcRLgi2O1Ie6n/Yu46kjIzE+n4CMs5iTA6ftuT5Qky4hgHT14ROqJILrvlUQ6/xu9FpyLoLmwpAYvXUDkpwypU89rbMFT83OrDu90crgJjJfdhEyEvuLaRCfuUV0+d81jxpWpNlSgUmOVlwbZ0LjdlB5ttK8RmzJcyfZ1Ko1rKRIksIfgDvT7pYtkiUvu4LP5iGV5+n19RnnWrihNhDRyhWMFFszB1u/Q+JKmX4KWQLbPAQhK7twVBisiUSLoQDyCUIBEwt72Cz0n1/+UWL6I/M 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)(2017060910064)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(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?MTtDWTRQUjEyTUIxMTQzOzQ6R2htT0E0RVRsU29JTnd4ZDU0S0xiMEZoaHFY?= =?utf-8?B?S1hCVGl0TVE2Y2VUNGFKZFdsM0NYL2ljampGOGk5czVHcUl3amdQNTYwd1NT?= =?utf-8?B?b3g3Qk1sT2VaZExUVXAvQkFYOGJMMzIxTnFuVkdjVjNDZGhQQ2hkOFdwTmxh?= =?utf-8?B?SHZQa2lsZWRZRExIRGJXdkJNaEJXcldwYmxwWEh6NGhoeEtvM09ZbzFQamV0?= =?utf-8?B?dDBXRk0wcEMwaHg0QVR0enJxTHVvNFFIOTl4Z09MK3Qxc0NUYThCUS9Wc244?= =?utf-8?B?dDVjVkk1Qzh0VUJOeWxaN2RIQXFCWlB3cWk2M1YycVVhbDVDNm1RVjdwWk05?= =?utf-8?B?aWQwSXh1NHZpdUhsV25qaFp1dU1QK3FlRVdDb1l2UzFBVCtDZU9ndGhqdkhU?= =?utf-8?B?WTY4OE9ja0F3T1ppN3YvQkhaTVJHSlUxRng3Q2tXQlI5SlRCdWVkYlZKVWx6?= =?utf-8?B?ZzZvSUV6NmdZd3YzUGRDMWptQ2prdnQ5d3dkU25KZkorVmpwZTlDeTlHcVg5?= =?utf-8?B?bklZTVBvZmV3c0FkM1ZYT3N4ZTFZek81MDdpL3BCc3FyU0szNTZSNE16Q3Fj?= =?utf-8?B?dVp4c1BJT2xJV3ZPWXBKQWxUR2ZWczFqQi9FL1kxY0ZkR3lEeUkwU0tPNFp0?= =?utf-8?B?YytDcGJhWXVoQ1pZYUg5U0F0Y0dYa0FLZWxRWE50TmRTVTMzalNOY2VURHor?= =?utf-8?B?dGhtMGMrRlh1WS9EVkprUE8rZ3dOSC95WlczaEVOTWJURFYxeGR5YkNORFpB?= =?utf-8?B?Mit2NW1aWkhzbFFpUVZSL2xVL20rVGlzMSsvd3BmRVhYa1M2cVlnaFExVlda?= =?utf-8?B?UjU1bGJrMU5tUGVOa1BJT2Nsb1hWc09JbVR1MnZ6OGplZzBCOEZqZVdUWEZ0?= =?utf-8?B?ZWVhM01OUHFCV1FaV0NTUGxCenhXWkVCS2p2UEU5bktyQXp3aUlzYmd5eGZz?= =?utf-8?B?dG84ejR2a1pkQnpFdHBySjk4SWMycWtiT094eS9PWUFJbCtMeFdVK3ZxT0N3?= =?utf-8?B?di9DNHJvbU9rRkEwdHllS2YwQjRja1F1NG03VzBteVFWcmdoc2JPbEZmdkdr?= =?utf-8?B?cXNnR2VjZlhhWXVZd1VXM3RPYk5ucVFYNGFBV0J1WjlESm5rSWlrY2VRQXB2?= =?utf-8?B?dkhpYTJITmw2V1Zsbm10dlpiTGorK1Ivc1NDMldIdENUUllQOElPRGRWQVJq?= =?utf-8?B?ZmNxZC9Vd2pWRGxpVW5BblA1VkJSYWZ0MXA3TGM0SEVsYTcrc0lra2dTWUVO?= =?utf-8?B?K0ZJVmgzSXRWcE9qSlIrK2g5aDBzUWFBbGRjelZ6S2N0TXdFUzA2QzI0Rys0?= =?utf-8?B?ODgwb2JPOGJLNWd1U1BLZkpPY0RveG1nSFdxL0hKa1R4alJxRENFRzFxblJY?= =?utf-8?B?N292YmdIMmp6dGlSb2FUOHlTRnk2WHFJMjB1akNXbDJ1b0R4ejFYTzd5NzBG?= =?utf-8?B?UXlxYUVMbEJaRG5OajFFZVN6VnhqZ2QvZ2VuS0tSV1JESzk3SEJUUmJGZU91?= =?utf-8?B?MWNjUWVRQ29lSGFCRzI5VnlQWmRCVjNrbnFWaFJjdXRQaE5FdFRwc2RlaCt5?= =?utf-8?B?RG9pYVgySnIrMm5YUDRwcHFkV0hycFZiQkdiTlZGVjlYc1V5VysvLzJLRkxu?= =?utf-8?B?SW9UMGs2KzFWakQrd1BWVVpzS3B2czZPZVdVZEFTcmwwQ1ZRQUJiUjVQSmd6?= =?utf-8?B?L0tWZW9nNWJYMGNsWjI0anUwVldwYTEwN3UyOVZDcmZQMjB4VUNPWkgvemh1?= =?utf-8?Q?5FNGXw91GUdlS38Bbb/9BI7Lp5K/xgsgsLiY=3D?= X-Forefront-PRVS: 0361212EA8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39850400002)(39410400002)(39860400002)(39400400002)(39840400002)(39450400003)(83506001)(7736002)(25786009)(9686003)(110136004)(38730400002)(23676002)(189998001)(4326008)(42186005)(47776003)(53416004)(97746001)(230700001)(86362001)(305945005)(2906002)(6506006)(81166006)(7406005)(3846002)(5660300001)(50466002)(33646002)(7416002)(76176999)(66066001)(1076002)(54356999)(8676002)(72206003)(54906002)(55016002)(50986999)(103116003)(2950100002)(478600001)(6116002)(6666003)(53936002)(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?MTtDWTRQUjEyTUIxMTQzOzIzOnNGUm9pc2xwczVCR0VjTUpVd0ZMS3Q4Z3la?= =?utf-8?B?OEZ4K0t0a0ZBUzhydHdEQzMza1hRKzMzUTVkTUhSNjhXU2VMeDJYdkdibVRM?= =?utf-8?B?Y3ZjdWdWbUlhZ2dnL1kyL0FHZGUvYXJiUW5HNFo0d2E1ZGVrTjM2OXhBcnc4?= =?utf-8?B?Q3QxQm1aVzIzQXlPS1I3WUJjUzJvVGRvNTB5SmFXYmR1RzdWSDJ4Zkl6d0d2?= =?utf-8?B?RVU5SXJxZTArR2tVQ245L0h4TFN3dFVGYnZKWDFtcit4Qzh0YndBaFdUaHJp?= =?utf-8?B?cVYrbGVHbVRVSndIaWw0WnRDZExYK3BwTHZUdzRlT3hvSDdVOEZENXphMjMz?= =?utf-8?B?NG5GUVB2dzljQU9wTWl2dUoxTERTeWllakQ1Y1hmUGZiNVZ2Vjkxd3psV0w4?= =?utf-8?B?YTZKakZGRmlvQWZrNEFDUFJpY2tkdW8yTEZJcHBvNFNnS01ONTROZm1DdmIx?= =?utf-8?B?eENKVGR6UFJGTXpYMXRPU2VLdHVRRm5meXQxZllxNVZKN0hZdnJqQnRnbFZt?= =?utf-8?B?UHlpMEs4cVNwS013ZjVKR2ZVMENkRGdBV0xEcTVCdW5rSW0vS2YwTThPWWcz?= =?utf-8?B?VGF6QUpVamhQdndOenBJTHEyTUltVjljYjFYNVFWN2FhYlkyblpvZWZrZ1dy?= =?utf-8?B?RHJHbkVEakQyeVdoeURid3RUenZjMUY4WVZIbWw4YVEvTzJOdzZOM3pPK2ZN?= =?utf-8?B?bmZpM0FmdGxpZkFwaFU0NjhveFZwRlRkYk1yOHVWSVBSQWs2dkxZZkFUK2Yv?= =?utf-8?B?VGZxWnpCNWhyM2xtdjRxODVWUjh5WU9DckdKZFlUQWZRQ1JkYVNhdGh4cjhL?= =?utf-8?B?QTNZRDMrUmE2RXd4Y3lhaEdhdS9oaktmQ1pjd0ovU3hmVjIybTU2aGhVNkV2?= =?utf-8?B?RTh0bGR2YjdJYmt4c3QxZFc4MjdQSUN5UXFCQXZTZFZ6aERQb0lVdWpVS3A4?= =?utf-8?B?UjJCZDl5S2pmSHBXajZWbmtXcGQyZHY3TW5kM0NVUjkwOHZ4RVVaMFFjSml5?= =?utf-8?B?ZWpHTlJZTFNwV0FtQVpORUNSR0V4bUh4T2FvVERMRWw4WS9uYVlBK2UrbTE2?= =?utf-8?B?OUhVUnFnbE02enJHT1BMZGprc2RVOUhrOEhQTVRPRlA3VU0zakhVZ0tXcW5Z?= =?utf-8?B?c2E4OWRzcEFnVmwwRm9VVDFxajJHa3M5cW5vYUgxODA2ZVlITlZqeWNKcUkw?= =?utf-8?B?VTM0dlVmM3h6YzVONzlVTjh4cVgzSWpySlJFZUxMQWVLSzZiQy9NeVU1bUZO?= =?utf-8?B?cGcxQ2lCNUhvWlF0a3BXMUYrdHFMcEN6T0RDdWY2bGY2V3U3d05ZWHpDV1pW?= =?utf-8?B?N2pqSzdNMmFsRXFPWWdRWkZ1Y1dMNXpvZytNTTc2MXVxTW5RUFBwc2VTUjhr?= =?utf-8?B?RWc3UktlYVNsNkJpcTl1a2ExU2NPUklSTnJCOWxLcDhrUmdBS1NlN3UwOEll?= =?utf-8?B?MXFHeWhkMmdrSHVTL05KaURmaTMrR0ZwNUVuRzFYbXdsM3EzZTFuckQwZk1r?= =?utf-8?B?bHFTT1BVWmE2SnZZakdoc3NDYkZDY2IrUkJxbUNrbmRuNWNPSURxUitWT09k?= =?utf-8?B?SDFibXdlRlNjcVExWWt1a3dWUjdmK1Bxc05rU1RXS2l3aWltWjdKYmNTdlNs?= =?utf-8?B?MzdUM1VGcDFJcm9CRjhyeWlpUHlhSjJnVVI1eDhBQWNCb09ITWVha0JRPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzY6bFA0eldWUlE5aG9abkZ4eXAwRHlveGtOM2My?= =?utf-8?B?UThvOG9rYzE4U254Q1A5Y3ZRSkhScVozd1pLbmRBazdUQUpWdDY1azhoOUUr?= =?utf-8?B?aG1mM3FlUHJoWWN6c3hNRWN5Y3lrcXp3aUZxWXVKRUxFVVpRWGdvaHpHK0pP?= =?utf-8?B?bzRCMzBpbng3alAzTUc2S3k3VWkvMGJIdUdpK3RnZUdOMmVMbnhyczQyR0d6?= =?utf-8?B?WUFVR043bmZ1MGFTKzVtWnhEeGorc0lzTWdmVDQ5V094MHMxT0ZSUFVvcm9M?= =?utf-8?B?M2pwdnhwbjl4M2M0eWJqclVFbjJqZEh4VHBYWDg4djk2K0RnSGRuSEV2Q0Zt?= =?utf-8?B?NWFxQUNMZUxkQ1JwQUpFdHNrNGJEdmtJMEkrYVprblJISTR6SXhSelZmRmNn?= =?utf-8?B?SzA0VTNGOXdHb01QTGpyTWRIalJuYnVzaWlPdEF0ZWJmb1lnOEZ1L0Zva1Zy?= =?utf-8?B?OXd5Ti9CVWxLZDU4MjhHZy84REhLcnZYakJ1bGFuempvWWM1U1lLZ1M2K0lZ?= =?utf-8?B?cXJDZHhnMmZabW93U0NJeVhwSHlsQnZBbVJsZHh5V3VBd2JqR1o0VmRqTHRr?= =?utf-8?B?QUNPeFNXMXVydGt1Ri9vRnVKdjdPKzArOENlYTlMT0JQdGpnc2xjWEtjR2NS?= =?utf-8?B?Y1dackR4eTc4MkFQLzdZZDhNd2JWS2N1RTZ4ZitjRSs0M29RN0hPT0tZandx?= =?utf-8?B?K3l3Q0hhRWhBRGc2VVRDQXJNbGlUM01mY0pTQndicCtkZG5pSzFqZHZXMjcv?= =?utf-8?B?blh1R1R0ZC9NdElLUDF5bG1najRnbTl1VWFPaG84Sm1TVTBQVjNvb3BlL3Jm?= =?utf-8?B?aGFneUhYTDNmVlRsNUdyQVE0dlVFWVdYbUJsVWRIUGZMWkNNVDl1eENhU1Js?= =?utf-8?B?UzRZMmtYOWd5TzZwcUg2cE9RaHhaV0FtV2FsRE5tUFNkRFlxd0x1Nm4vTy83?= =?utf-8?B?ZlhGTUh3dVA3b0hKelRpdjZTaGtnbElFbnlLZHN2KzdRNkR0T1JnQy9SN0J4?= =?utf-8?B?VEdTUmdBTXE4Z3grY2F2TnNOd0NCVHJLa2NIa2Uva0dEd0tBOWJSb2xtWFNZ?= =?utf-8?B?cnpEeVRzNHEwVUl3c2ZRVWJTQkJ2RjZaYUVqTmtKN2o3UHVLUGY5L1BrS09r?= =?utf-8?B?RVQ1UzNvVkQzZlpTUGdBWVpES3kwbm8vL2l3R0tRSTE2Y0ZydUFINyt4WVNw?= =?utf-8?B?RDBZcHFSSk4xc3dtVFFpS3Vkc0VyRVlEc2ljSHMzY0JVNXdhZjZrTmRlRC9q?= =?utf-8?B?ckN2Z0ZkeThtdU5Lb2xXN1NSYTRZOEYwZFMxUWZtMVgwTTZUeWd3bE1GREVE?= =?utf-8?B?SUJwSXoyQnZraFE1cCtWQmJZdWNXQk0zN0ZheUZjWndDK3Q4bmVoeVB2ZXZm?= =?utf-8?Q?2Z+EtGG?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;5:cbfO1NdXDqJrb3xdLDCiPvpknjYfCIYe/UXwNRF4QpnZ2JK85M4OLyzKkZqM02gqKrOuT8yDGostf79t0xvw/s5PQJv+mmE2Xrtqx+CgjU3U7Uv3kett2WWyCfAfup8sOF+oiWbpOvFOh6/BlVknlS5is8DVY7ICcMzECM81c8P44EVZasaDjuPA+7YGVDH6LHt0t1g8dEELZ2sjrYK9G0uM371VNB5NLNXTt0jlfuL/7wY04kazZOmRLg/qJzhzcMjdWDzSlDVvCNajFLG5xx1a3+cYeJasmilXexuU2BNopd05mDJOZnrmquRNpBwdan0mY3QFxa9PbvnpmhKoW4pJaJV4Exj5RlqRdpnmOF7KHWUwleRwmbnltDpSaYB57Lq9l+Cs8wm0zkRxqNo5+cZBPz85FXWYuOqBjdC1bB1adHBbnOztsp2IMYm4wB0QdEziDS0h7HTOR8u5RJrrpu3ZeocfgO1T9QEVq5HEhhJfEdYKgOfE6wdxm6oa/hcz;24:77r5tGTxbg0cad9/0qyHWlmgQutAt40oIxnIX9DjAn7/G7F9iXYEXqGryDlRWycGiUbu4Et1b3QrPtwJmFc1oDRB1V4SkU0/cOrnHJ/AoR0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;7:GnW5kHv5H3g3zB1A4KG6T/m9+c5+K/fEJ9OJZv2weXsfg+j19fPt73fDpZ2Ln/aWXvC3byX41YiqRmP81qkX2Qid14APnEbuxKsjL6Md+CMhk4sto+ys+tgO2diDxyBuKib+PXwVL6OhJO6K1ZcePu4GhLYQn7ridbLWA/VwNReU9bUwE00gDOLySblV1aq+zIXEEM08cv/jCSwakBz9OYGMBScYSPE7rPVUdB3auDFWJ4obleLfRY/JaeQucvXnem+EHsLXGRNESFKcDp677UPYo8vJODptQ7HUcBDynS3ZpsaFHeSZKzfv20O6gWB0brLqfIlOWxI6xJeisFIziYHXaP9AUTkJWmpfq7XzsmQlSllL7jUDkRDXphmexFrrwA0DZezKbFN9uRJLhxGuKFPTNMtW5tCTPlwADbnLMN+EmcKiiM4nlJ9hCK0YjYRDiUsmaNn6suCr89kVZJPgRiiev/Jum0Xu6+zQ/h9oyFQQfpEALuvra18lQF1dnU2FpRWmMOgsr2YR3LSWzzHPRaYfhRw005u1xalvDj/aeLWPsuVoe7gFfJbRRLXlWtrVSSMYsQtgYYRjzpqAmWXiKIR1QMH2bEH+cfCwXtiY0bunNhUBvIdz95pAhCdN0MHwksRWlWL0YJ0vGNGwf0OH4I41JIijyxP5Ai3iC+9SVEwI9pFin+2bsLhTHlbMGY9DdqLYqhJb2ffGct4/Guq+qfTNr1jdOevELoAwGoaeSy0sk82CQxZcbh0b+5W0Sx+NvSBd43uRfP5wsvWuEXwmRkNaHmW3UeCY2lSQ6r4rbNQ= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;20:YQTjsysAQIhF4gFLG6tiMz4zOp9damdNrkR4B7og7KAZVNVpZwk5Zog62esmeKtlbpM69fyftLz2rKw/00y/bBFPhnwT3eZkmcqNAohp5l8myGmWqSar+KI9uChMQ8LDitXXGgvfAXS/K/xm7/PPSKOfudGaonvN2AzAMLPyqHryAjuTQrsFgT3qTBOx67FcD3E4sd8y5/tPmBlO1zUWvcvMFTBv05urMqrim2Nne6DbrqCjaMbz6iP2SHxD04Sq X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2017 13:41:04.6881 (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 Content-Length: 2192 Lines: 87 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);