From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752046AbdGQVMP (ORCPT ); Mon, 17 Jul 2017 17:12:15 -0400 Received: from mail-bn3nam01on0076.outbound.protection.outlook.com ([104.47.33.76]:46539 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751882AbdGQVL6 (ORCPT ); Mon, 17 Jul 2017 17:11:58 -0400 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=amd.com; From: Tom Lendacky To: x86@kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, kasan-dev@googlegroups.com Cc: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Arnd Bergmann , Jonathan Corbet , Matt Fleming , Konrad Rzeszutek Wilk , Andrey Ryabinin , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Paolo Bonzini , Alexander Potapenko , Thomas Gleixner , Dmitry Vyukov , Rik van Riel , Larry Woodman , Dave Young , Toshimitsu Kani , "Michael S. Tsirkin" , Brijesh Singh Subject: [PATCH v10 16/38] efi: Add an EFI table address match function Date: Mon, 17 Jul 2017 16:10:13 -0500 Message-Id: X-Mailer: git-send-email 1.9.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR03CA0008.namprd03.prod.outlook.com (10.168.230.146) To MWHPR12MB1151.namprd12.prod.outlook.com (10.169.204.15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 526438ba-1ffe-465b-fbb9-08d4cd58708f 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:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;3:a2v2aJBuAjJNK5Phywe5Cy/M+9ViFcAXjsKjVGhm/0DkkczFkVhTFopRMBVQqQb0hts+HZuc9zyPjXtdfzGP+ezVeK6bVnsOVeAFmW5kxn4Hb8ifqKp9LBJSt62vb8x0f7KyZDfu+Vf8XRpigIaT909vc+mXejWFd2jZnfhWCWf4ZN/Yd6YcyeBjE9zd+KVOwUvKQR9/QpCFbs8e9mFL5CfYMegTZLv4hsKsugq7OzVzddABHi12mxvTLB8VAwOwUOLdnbYhtrOuUs4x9fv3R55RQ3j4xpHBpyfYSlbqXPvVWSlQTkPwCE7zEpv0FIeeoYnuDOzWiyNHgS4Dr7RPda+D5xscj2N9UwZb4IqqqNKIX4oGDd87ZNklMYzgEQ8exEBxManfsnDMvhrqjtby2jOUABxSnbHKFZqgzB2zhYdUVJywWzNxhVPYUiXjbcxHNuF+7X8IdXO/vpmc632STcNAc3X28rlYF0gIaDlEhE9kMYZfolOPHr2qgXXAQWbr5gsn7FWSKT3RJapJokeaEn/Az0O4nVHKUpcNDOv7VR77ke0kzHQ8WVQ3zW/zdoTqc3OWzzQqZhfiBAnsVRkinBkYIy+wy18STtiSoqEZq8bhAS6eJcPR9/yrnYSvz3mvkIyPa6ZeHTIRZTrnl/XMneZOvQMj7g5NVSB7HgpEQCRUYgha4ifkI1ghdprioJu/BG1nZSZXrXa1OAe0UWmkBkAcO2ROVu5IIMYRJxzGWGB7Hh/cycbPiKuTXH9KZOnrWQqVJ67nfvTSKuX/Y9tB6g== X-MS-TrafficTypeDiagnostic: MWHPR12MB1151: X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;25:RtTQxA8HiS7vvdIb900EnkXSD2cLQ4VQKZ03zoIwgTGZAGg0C0UO3zIQz7yx/KkfSoNgmORNfhavQQfMen3X2RSpQcxkUCHZnWVkH+nXqTTcMezi6j6yWfCIWjeaBniS6zl83fTLwhM+MZLO9aX+E5UBe2X+Aq0bw34sPTTMckIoyziqjewaU6byjI9s6GGrRns7hy9I5luf7oKfT93pEvMT1S7Oy/lCzsTMvnG5qBcE8RzeWzX34a/cU2fSruOCSw3+grV+N0nP+3HTraWnjlAQU56Nk/c2Ik0ACFkcVEiByZ02yy9mdfUkLwP/tYhiNnnTXVrUUDYq9GxPOqqdi0oWxzqE+MYzqtPmX/yw1CqolqC7tB1xFH3EABqo2qtKMUYGFQwPQJR2ArKw4vng6Wzo/2b0qJGA5cQynr4e9Ey7jdBAA7qezOsWDFW2VL0gaTzY3jNPMsIYSWfS8lWFhxLBe8IH5gns/aq0NDNyQCM4oLknve8gJKGLtcSjoBSGkq7AG6smG20eLgsvcMcTWMUJyKVwRHYvu37+CXETpWEKpFiIvmR3KOchjFWGKv4D7CUxMZwVb+UrPoJlMmQFSJiMYGHBBqxHYVv1IpDMpp5oamftEPjmISe3Y5Tb15OAHRfdjlTk+DHVGHKP97KsgoGrN6p5o/UnA8mjVxiq460AuzQxBdD58NkL7W8/ZiUVKJS1SqVPzG/V2SfEBOgds7xTUVOAYu3prjFvOnZHG77KXNfiVprs83G761oe4elCsMHlX5CosVPlP71HO4tnp4dmklp2o5cbO/nlUkdPj+D7CLAuJXTUW6mXwpv0CcYYf0PDaox11I2VON8RBgF+IERsxJ/jw0HPUuozUd4XgnbPJoO2EVayg/s6ZhMoz8Y0pPGwTSotVKeiaSBkD9Z9JaK8zUOmPOgOYv4+9bLbKSE= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;31:VvZiOTPBj43h/f4L5iS8nL5MVDbeYnscTVk2xTKKiBpnbc2hRFmdT/rcmPdiKhCKLm3rvCY9qAArgkYwLtTatYczNXmAVvebQrv1ABoF9H10f/xkypJhDB0zHjQiwH4zKYNrgWzMginrD5pSEnJjCxBYqf6JVaLKvTwXJ+19HSlcp01MDGhib0584wokFkPctAaXZYfAJvvotgQfHfmon2453zImnGyYba5Hhj10iQBS48se4cjfEn08UncLjuO7JMWcfO5PKmSn2ia3M70BGEG1h/lOTW+h/ydgz+VTTCfnN/YvvzmR36QmK8zk0wg57l8U3P4jJuaNYCHOOooGKLVIxlsKtv9qJ8nqw22S2y+icENeRC0aqRh7OlOBIiojAsiWqGkrWgnr9kfAMLPBfhJCkTEiVLGzbMhnFK0nmHdLeAVIjNcH2yKVjgHH550gOysX26Msgv32rPGSPSB29pxHAlkpJidh9Ff31AQK/SLtwdTnJ8i+gbXF+WefcQmFKkhfr3odWMVR8TLGsMZ1aqcrDp36U1t7RMd7go2jRJ0gnRyIrVJA9rETBwDyB5qO9DwwEHxs68hwi719H5Zqh1/PKIKID7nG6kroeTyDAXkAruchrmWJedVeFJ5ocAWB9XoZEuSQtrvOiG5dXBAidBFUUaLpEu/oKJ9XnAt4nS4= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;20:Z5mhC77OZCQTga5D3zrAlOZ5lCX2nTvxIXYwHGZ8Mg8X8oTLkcEVf9c6Kp0vv9eRf21n/3vPsoHE0bO5hel5+71DuR+IFE+TzZErnvh48GEOZI50pA5CVrvF5kxxZfF4q81gwtfzOdQcEzcQjbF7S0Jgl0waBUGyzNbkQPCAstUsrRJTnQvEpVASl7iDLkEw/qNZfashuu4jGvZ/EIERXny6YXKjejcUmXCOIoomeD8BZx8Q+9sVFUXgRwn26RVkKKOERp6SPoMFr1SX22/73VpuxGTVeD5g9NVs9McnhnzbpwWqauBnYEQveupniGKcdoNliQIqmT96q12MCGSNWMOMGvFbCJUI5dXLtR1ZFdVzlxnG8iGMKjjBnHJp475c+cIvbCeWWGVrhDGVBNaAIqWg3544KPv+s0w7r3S3Fpd8b9y/0Mmr3/OfuWSSKzETYZiEJWKsQ+zNjbkQPNkC4uJeSvQ8PMgPRXLRTMMqkYbetBd4AGHq4PslPg10gx2T X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(767451399110)(167848164394848); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR12MB1151;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1151;4:Hi6nvGqAsdifDAuB7dCKjG0tv7u7+W3LoqRskYPi+E?= =?us-ascii?Q?C8MuUzyw5LPaXnviN+zb4NRItOGT7BvSFpUqaX1RubenYhJWq+i2OvgvbZon?= =?us-ascii?Q?k8TrYAyf6GaPzt3Arz+hlk85y0uP4Pui+jExai3SCIOjQi9YmufH0odzCQVJ?= =?us-ascii?Q?DjjnQcjk7p9zPZ3A3jwamRmP0kYyAvj1WNjwgyxEESYleL5PZJAn0Hn1EuG/?= =?us-ascii?Q?5Hq+6+I3DcLeyOWaT/x7rby6mqz7CBxGcMLP6M935A7DB5EnozLVErfCACSd?= =?us-ascii?Q?AXqKy6sNGTU8lzadak+dYUGE6gb3rXE/E2liDDcMBKHWQNAMXGRwS9wAya3L?= =?us-ascii?Q?Ph0IPFmARZXTE5Yssrv5HEM3DDG1RI62ylmG04qkrCM19hbypA64Z47cMZnC?= =?us-ascii?Q?/N00WVYCZ/6cySZ0wFFzZ0BuRBWL0EcZwSTBPhsWxJNWka4ltbTtRTou0fwQ?= =?us-ascii?Q?s82da45NAV2AQWzHLVLiXrGfIjxKVXihoxKV3ulBIeFtX5REqa+lhbEGIxrp?= =?us-ascii?Q?ApXoSSfXNMcOLb0lEhAmh0GokL/Y+tgpSNAVgD5tMRaGsAEKERk3Q4NnxXw3?= =?us-ascii?Q?uPLu79mRlyyYywEY5UzCDAJ+uF6vGO+CnAezR14JQEqUu3+XgeoDYqHxK4jh?= =?us-ascii?Q?c14pFjvv+HKOnjUjQIoQq1wbYXuwAykji27Rzb1DdKfqvltoPDdwfHOtdOe5?= =?us-ascii?Q?HGH0zL2DXeIgJzte3IleubOcu7NPTMtXhuTNrLl5wfL9wJtdYgyKNM2X0Evf?= =?us-ascii?Q?ihWAdA0YwqSxB7ga1ghxiZDDWN0kHcbFvBl0IoxdFoT33T6DlHqfgYAoZviZ?= =?us-ascii?Q?gcE4WCYvJBYfo7RVAo1kZPaClLZo5KuAzeogUvyWf1ke4/knPxDf+XZ+flfP?= =?us-ascii?Q?1ZdUsmQu4fKsL5tyZU5jgSn30BvypRx+s+qTs+EEZV9NQixRyS6IFGHfXkxh?= =?us-ascii?Q?gaZDthf2A+fmd64lPTXy0bqzVGBlGcxLV9weWlpj7I3k4c+UEY64P8cyYwTe?= =?us-ascii?Q?o0vHeLOeH3XbyBf7CMxJ+xNwU/B5F5MzF3hOrN26kqhHt6oAf+ckAViQiM3L?= =?us-ascii?Q?fLPchfZiNFPRrirLioAHXft7/TdWSAt+vCzszCjyJ6wCCFjoZP4ev0VjqG0I?= =?us-ascii?Q?NjlzPE/FwqnyZU6WazZkGqaEyEFVSIrLbWs3/gWazjjhEF8UnZGV+TwLBrCb?= =?us-ascii?Q?Yrv0wIEs3scTv7AI9z4+4A7eqn5CIdT0cBGmmSEcwAf+f4qSQwBiSXqhiUup?= =?us-ascii?Q?0QFdtR0l7cAD4SQQf+KbBH2v3lmD+OWeCOe02fkSlDm4uBEaueDpTIb1LyPU?= =?us-ascii?Q?pQa5+sS7fVKFuWnjhq4JM=3D?= X-Forefront-PRVS: 0371762FE7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(39410400002)(39850400002)(39840400002)(39860400002)(39400400002)(39450400003)(25786009)(6506006)(33646002)(54906002)(7416002)(76176999)(478600001)(8676002)(50986999)(6486002)(47776003)(5660300001)(189998001)(42186005)(38730400002)(305945005)(72206003)(53416004)(66066001)(50466002)(48376002)(110136004)(118296001)(2950100002)(81166006)(5003940100001)(3846002)(6666003)(36756003)(53936002)(7350300001)(6512007)(2906002)(7736002)(6116002)(86362001)(4326008)(50226002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1151;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1151;23:kMJGCD/mZwudpIyFgrOXMzhVSx2M8J6TyjWE/lzHm?= =?us-ascii?Q?IL3mz57jeA6+CCLcRYgBOibfiRTXO3P1G9yOvfqCPXYlsxig9johvYCM7ML2?= =?us-ascii?Q?9yao0dPELHdy6mcGSR3IUO2tPm+PVJh572LtmISeYMD5rQ4gY/rEyg8Wgdpd?= =?us-ascii?Q?bp8Xd2RwCI8EFq1BiHE50LUaiaKoEshc4lY2IszzDhd9NU4Po19kWLKYG8Dy?= =?us-ascii?Q?7rBLeoXEg8y2VzsJ4qu45GyhyBMxQOIY5IHYjjmSjumn0PtGXNkLUOy49SpU?= =?us-ascii?Q?FfbAPLYswpHSansutD8TXl/Y3B7LUYqyeznDgeegAB6E0EZbtLKvAC/nC19e?= =?us-ascii?Q?7Oa9ukfOWhZID8y6c7a7UljXBj9nvKGd0xdcwwTHFBWwugwr5DgSQLOCnYto?= =?us-ascii?Q?KO1xrmLOL8B4o9uJ1gHqPjH8qSK3nX1gby8y2mYb18Sk7wCRbHpIfutd0KSh?= =?us-ascii?Q?UXdR1Anm9TpaPBLkRPEwfXqtiks2U1B2q8his3iJ27TNeyOf841tUcImOgjy?= =?us-ascii?Q?qyAqjZ0duM/xYfKqPZdmr5OkuSSEZxb++l2zi2XLYFcSbXtFBkGIzb1TqkYf?= =?us-ascii?Q?VvYoLEPE9lKHPtckMt7zmuwPba9gCDFlj21dvMWIx1PVUUvC2CpFWwY92YMp?= =?us-ascii?Q?K/mDCyQRWjedj+DRzueMKTJqsS2RfHG4DMHuc1L1D0xgcVD7BPUGt3d8XLYL?= =?us-ascii?Q?6wERpwLBf9NicvYHEVEBc0b2NdVFGj7O+Ic2T0xjGUbhG6+bHJLpcqOYZLqm?= =?us-ascii?Q?G5j6600qjF8DjS6Xciq40t66Co3QtzowTSxf89in4/m6ZejLALn5q58mNY0m?= =?us-ascii?Q?QUe9yU+D4xHwdq5XJ91c6STL2n69mIBfZMUVuKqGqeVd6FHKGKJ6lxpQ0mWT?= =?us-ascii?Q?0XCVmG2kaSGheYHWpPGh6OjKzDL/uK2vWFnai+rsHpbFyM2oBZh4tPtk8tm7?= =?us-ascii?Q?1Oku67jpWhTkOczjFIH0ntnJ+CjXj2tvldoqtanzsTTYj8FNJAiL+h12MoqG?= =?us-ascii?Q?2JZX3lpwMW0WOi9CU3OA+HpDBzVag4W3oVqXlX2FR+rTlciylvMSi+tg7kzM?= =?us-ascii?Q?MpoD4hD9lRbY9eWEKNn3Py7IuVAzt5VhZJqPirNmHXM0dP4NajAPGdHpGq/a?= =?us-ascii?Q?lcY4qa7en5RBE+L3tQXwrkHABih2pwVmXpH+I2HocukoQemU/ICE+Q+oKrq9?= =?us-ascii?Q?s3SiuGuOwLpgXY=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR12MB1151;6:GM/y7o50d5XVAW1TbTh744Ds0Vex6x8JqjvFlPLGtl?= =?us-ascii?Q?g7LyqruyJYvtD+nrTu6+urOoUC5p6e6SzL+jT2owcawLdMAbgnZaA8eChxT+?= =?us-ascii?Q?eVMPYRvl6cjKKzhdgRWKft1bLSwXQLDziZcWUE8IO7deZlmG/5SIanPstum7?= =?us-ascii?Q?kLow208nvkroJXYCvocIgIaL3KN9yYfVLwPBIyZ2qPgce9w46i7SUIcQx76f?= =?us-ascii?Q?/iqiBDu7JnhustEqlkZdwDRVvebS3WvmazXnntukiQPccob0kNuy1KhDhZxm?= =?us-ascii?Q?4nbmLVV22bzPsVRa4TV41UiZXr99H3iLg4ysO9++TkRRsEKPk8pJ+c3vozGs?= =?us-ascii?Q?h32NLfFJIcdDsXuOoIcdDm69L1CrCmMXD9xTf7e9DaXH9IaHfrgamfn4jtIc?= =?us-ascii?Q?oUvGcSqNVMjz1rZJfOOTzz3qJR4soTG6g+ZY2jhpIDAe2/fTCEFym0kfd42X?= =?us-ascii?Q?mN7GwgcBRzrTCOjMPh/DD2R8It7M5iybGet85DTTalZLETsvMzhdTUZsTZcV?= =?us-ascii?Q?M0SY4hLGv4NQcJK7F8X6oDtmlK8YqOYclvvJoyQr+q4cPZP6zmzuPFmdFg9f?= =?us-ascii?Q?ojo05TojDBoD8L53TPGq6m7x2OkR2hRnhhr93jGRZUcgfjfPKYZB9Fp42XyF?= =?us-ascii?Q?i7F2bZDh9bUmqDQzvgrJW77HNOpLUm3Aj5bIbWKfbXVwyI8BWhH4l2YriJBq?= =?us-ascii?Q?tPjiUXJdoNvfbYHUxukBP0TTjUq+TKSlMLgGn6OMKRe+XKRbaj1OkrUvPDc/?= =?us-ascii?Q?JAUWEDOuQ6oKJCbbqK2GyruU4dfgz8Niqfv55YcuFotRzmg6LryrSE06weBW?= =?us-ascii?Q?8khFtQqIbN0FCGEPuQT2OnBjZsDaZNN+qgtS4ecw/LLrZVrSew196D1XTdK+?= =?us-ascii?Q?vE+hhwm4yqYLRPBbq0Z6hiiH5ltUNi47HgDMRPMEHbP+fSFZ8eLnJXZ2EsA9?= =?us-ascii?Q?6fyQeocVo96VV348+08k345hMrnuojsGBkbjt+cfIs8PZK5swTJKa3992GwP?= =?us-ascii?Q?lYMJ2tpTgFokORyjekUNgP?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;5:zKrDJue5qqO+1VEvwAlcMT4wn1xOnEHpoV4vYv0Q/5mNjObKl52ChdS7H/Y0W4Mh00QeSO9wSp9FXqQUxV0bofUHrN0Hyu1OsQ6YC9sB66HfjBV8rWE90bsIcNDWPIa60hcWWZMOQAG7QRE5bqfglWwVo5lvb/ab3p7nAcL94LwBXYAuNbd2tOcuoL2sv2hwWk46Bf3XO+4dRk+Hp32ewN7nP2gaPR4n+E8XOaeQ/qcyYd6HfW8QRP/Mao5YGAYox1iZdQq+Aj1E0y+xFHLuW1IBknqBCOVF01tu1/rkgRjL1euCuqnVO41pObxVJ7Bxflj0ZvoSRJB/USNAgySN8EAIgo5klePkCS/lJ/+E6teAvags4e8ON9oA2xT0d4XWGllWE3urwO/BcrIu/VRwjiX1ZfL1pSejtjT3AZYvEZqxLJHGoLn6waQr8yPGEXzotvGuuC07epmYWdUoWkKqnasvQVLDAkAkOD6zBvYgK78HxUzTGnQXnGjc3V/3ZmJ+;24:b3/CVeMdAuBr3eS6aFrDok7QNcOu2hDUJzRtLYSKAlxuhOjDOLzI7QFl9aKt97v48se1arjR43vq13PS5fFWqhvZjXSf0PgXo+rhGW7c5N0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;7:lLlqabfV1q/dhAEShxta6NJpwSUURITkxFKtDcEQt0M9le1Kr9lhpESSjgXRlQMeSUkg8lg9jD/9lnW02MUhQpP9YGmpKkfDsNnwozL+xU7jAoZ+5Z0FDTY1ExqPCsnaP7KWROxGD1h7alQcMgSO26X8qznFWsUfiAvgPLKj7yiSP9BmVg8do0Y3B1rN5oRFk7IFiHRbrk5GlO0NKPcRuJ6T2eM6lrt9vwp/IT7u3TVlGa3VH5YmbUSnWJh5nfT2YpkxIS3ReTwJKgxD7z6YysLSv4MOEKxWseDskfB1ht+CYTodemQ5BIOjYG726ewVH5RjoX4tKIManTF1dgTmr9K8ApcojyENATu0wcxZbzzV5bCPaAHTvscWjBdNLrpeUCeeOQiuKq6vZrS2oFaeXkp73frCR19mo54zfp4ikvqNaajpvymkOKQL5PR5oD6bKWc3RNtGJ3uUwdSpgliP/GOvHaaxo3dQ0MyWbVOvF97imige/w3UqyEKMJFigG4DMMZjQCjSTAMgoBTr7kzKCjDUw9LIyZVdKi7jlQB4cC0H4Dxyzyhn8UU13JSuoViNHw7UKm98/JIMUGzadoDBqon0nird8p/28PepKdJ5c+EETzxFHf3ouCCUC+nfvYiR+jF4Got2oW2lLJCAd7T7yr2eFm1S/6sJZkyNiA9Mq2DKdfjFi4HLl5VJufwvqYM0VYpaEV/RZTIAmMWPO2fnxBmx5Gv5GFyNvidlfUGmGu2IBLmpbeF5tU+E3BazFitQaPzv2OhsGE1Plz1ue7jexqea0hziOozHMO5QPyE9UAc= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1151;20:BRNS8KNWAQowtPdzTJldaGII7munccfuZGR/9zhoiFQzT15jJiAVCws6jKMW+V3xlFvaG7Occ9rpf9XVEWFVR09+4W4RTTL3u7PxExpMX+6nru9aaPMNgezX74RLv47JhMpTasbKmIV23FmkgPPRcLz0L8FLQDNfbsg/BkEgo+iI1d8xBBNI6Fq89pnzjFe4Gt2icMzxVxlG/ielwB1Ppttav+hGTPVNptJa+fsbKhs4tggndvFSLDJuwE7HpnY2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2017 21:11:46.0824 (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 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); -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Lendacky Subject: [PATCH v10 16/38] efi: Add an EFI table address match function Date: Mon, 17 Jul 2017 16:10:13 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: Sender: owner-linux-mm@kvack.org To: x86@kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, kasan-dev@googlegroups.com Cc: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Arnd Bergmann , Jonathan Corbet , Matt Fleming , Konrad Rzeszutek Wilk , Andrey Ryabinin , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Paolo Bonzini , Alexander Potapenko , Thomas Gleixner , Dmitry Vyukov , Rik van Riel , Larry Woodman , Dave Young , Toshimitsu Kani , "Michael S. Tsirkin" , Brijesh Singh 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: 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); -- 1.9.1 -- 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