From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932897AbdDRVTG (ORCPT ); Tue, 18 Apr 2017 17:19:06 -0400 Received: from mail-dm3nam03on0082.outbound.protection.outlook.com ([104.47.41.82]:54188 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757967AbdDRVSu (ORCPT ); Tue, 18 Apr 2017 17:18:50 -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 v5 13/32] x86/boot/e820: Add support to determine the E820 type of an address To: , , , , , , , , , CC: Rik van Riel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov Date: Tue, 18 Apr 2017 16:18:31 -0500 Message-ID: <20170418211831.10190.80158.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170418211612.10190.82788.stgit@tlendack-t1.amdoffice.net> References: <20170418211612.10190.82788.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: MWHPR2201CA0053.namprd22.prod.outlook.com (10.172.59.27) To CY4PR12MB1143.namprd12.prod.outlook.com (10.168.164.135) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9de0bbd1-ffca-47bb-19d5-08d486a07dd7 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:ROni3Mldy3Jzt/SSZ/Tc6qzfwuvibGPSnYrJHZc3e7A1LU0dhVXPQYrSLHTB2UEYpaAV5v+NHLuwR8FH9OzFr1d3Nhe2IpI2JMU2ImlsKkziKEpM7R7M4EhGyUMhHLcd7YBkMWE4qR2tStlDh8f/CJr7F4Ufj0MSGLpFeHapBTR2gwICBzjPUjGAQWxz50ILEsuGcJOlZxrcpyfDgBrVOykWCLSjnmDV8oC3+VLXQzaMMQqKrW/DpNlUhOQt/z1ZLoMBqneBsE8Dd4AzycrpfM/3twLpFctUxhmF5ouPUQsdk0UP2g65r9rBZcIY67MVT74IVAtH3qs/JtbMuZemdvyGs3a0H5hYqHjr0qKjd6w=;25:ryShs/bB38M9U5Y3EYqYMK9pp+FVNJDP/Y04FAJsYp3ZXn+7JfJ4xLktoRtQTmLeZNoAhRoyr6mJ2OcwDl/P5gqxBuuyEd1vdCI1Wo8EXp7j4Bnwg6WPCbDk0gzPohSURjNpxSbNWvXL+85dKBdRZdvkndKi6dMVZypK4rluL9BjT8vljFJvILS96Rybi5UUbr+1+NfZiOV3Q0pH/fxe7b0cLZUOQs1XmqpS9DYC1k4GTl37IKuDsdGYW/AIBlQwtJ3ANbFjWnoJU5NuXpSj1trrR8zFbuWFP1NUMdyy+hhs+/xQcXY3WBvebWdIHU33HwLLap10/Am515XbZk7kwR0zBnRcEbsphBkNVGBk/aFRlpOT9yp/MrjZVP8uNcd/PUKgeFS008RVzc+TjCZdlIKddu8EHjbb6vlfLSawxxS98FPPEOB9cwCvCKjNWaqxEPbGS2mfEtvenqDZ3bhwRg== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;31:7ACqkxDB86FMbbHCsA93mrWFEFRJWhcM/HcW9XvDyMQMjhhTVE/rfchvaijg0e/k5n6mFj72HR0/aqtGiCxTkUzLlAfW5Lglsx1AzHgj7WPG0k4G9y6TvWqwRneKGXHa0OT6AoUjjwetG0akuesGTsVv9SNhS7ZNh7mUPSMSaz6LL9fwpOb/OMZmYLjq9uvBKcsrbybx76aMpSFekhlzDZWyvlNi1uKyB+veytbAIv0=;20:Pw5stP2S88zSASXXvN52jlFGQUdtuXVxqlfidIaU2R8rP7uDSbV2xYAXPNb+45UJb/qJ9SiBRTSRbNcXu5TqdZf/ihCIFX9SR0tZ4fUIyFboR7e66ao0Gk9CgB6iFiW3amVxukhHIzlJbEx+3MAdIUoCiSb1JailhzW14h63SpqNHQiv7F5dXPdFEXLTcz4EPe/5n23JqeRGN/F0lz+mcxcIQHLoILGsBfBzFiRw/D7jhfXO7hzbDcVlQMEzEKLc8cOOtDckQGOO45cTYGZtT6d4zMoi4Le7J8RIMdZhJIEIJg2hmEkHAyqEEHI1DbNuLhasciTbR7kGVlhrsxCMe2KavjWQrEn1eUsR1f7DhVb7uwisZn/Robl/bEr6UeoySbqIUivMZRmSwkA+jXSLY3eP5YaNbwRctm9sbXTr/aErT+XhRteetgns7b5ETbFk2sz5sQ27Ye6UCbezW2iCd1M44KwfAsPZOXB6jdPLMFOqgS0CZkdgYv0uVQUJJeYP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(6072148);SRVR:CY4PR12MB1143;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1143; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;4:kjAfVCG5KuWycp6lOUOTmjxyuWSvkMXgWChhNU3Xgjme1zGejAReZRQC379fh74DY4GuPGok6eVTVezqvzUTltS13LH+O38JazrLvu/xmwLnSUc9NyK/WVQE/vmR1cCF05eLZNbrNKOQzZh4QYS2conZyv4SYDbwtnBHWYZ68r16nkmgruUhNAG2nRWO24Y6yDKWknfjK/LA07rJLjfy5vA4N4sczhgrQ/azzmpFS9pemLpopTrNZnwjV+ayc3RadPZiNvtfBLSDErrGt+hHPf4jyivJgWWNFrcuJISwJbYlH8sznMzPMJ+g/lKonsOEVfARAlPRG3UfsyB9Jpd6O5w978/5S8zLTr0h8c9b5NhDEj/VAwdG5QkFfQEpa0OVWCPzpAV75Cdu25mfsbGEXRj8EY1XCqT9KZoiZ+sGMX7pNYLjTJjGWLp8pOSCkrqUZDShG5x5xI5Z2Tc2oaNUNzSJcT57ju4WyzBXc34HHkhIvCJbemasqlDCq6LtjnGQ0c1sdQvxueTcDcI0cFTD35CiJNWSj5jMQC2jv2SaPMyYDnlvO1XA3hvKCLI0ATU7JY6Q+uLbKdf5s0ztzII3Mh7plJ8Xmz9iTDiXQdlqTRDXSm2ob7p4XsF6R5DbYYYaSQHcoOu6m84fIJ6IKe8GkVsZdR/rw0iZUpRvaKjQQZb+QKfIX8WobPVXpOcr/lcl+6jC21okqlvJu2maQna8aLJXeYQVaHpy9zROva7gJeMUIqmM5M51Ztwc/eY8kjbVwOhHsfrLYG84MV/qYhByMv+QyMCkCGeKi6js1FHPkCLsjZ/8Ojpku9bL4FMEE0No X-Forefront-PRVS: 028166BF91 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(979002)(6009001)(39860400002)(39850400002)(39410400002)(39400400002)(39840400002)(39450400003)(86362001)(38730400002)(53936002)(54906002)(97746001)(305945005)(7406005)(5660300001)(42186005)(9686003)(575784001)(47776003)(23676002)(55016002)(25786009)(7416002)(76176999)(50986999)(7736002)(66066001)(6506006)(54356999)(53416004)(8676002)(4001350100001)(83506001)(2906002)(189998001)(33646002)(81166006)(81156014)(103116003)(2201001)(50466002)(1076002)(2950100002)(4326008)(6116002)(230700001)(3846002)(6666003)(69596002)(921003)(71626007)(1121003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1143;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQzOzIzOlpTdGZqZTJNMWFJcm9pK0pEWDV6dWR2MWZ3?= =?utf-8?B?VURwMG5JN0hBQUVsSWdKcjRGVVRwcHp6SXhPSWo0MExWU2lZbGkwZGltRnhC?= =?utf-8?B?QzBwb09idnF1VGFjYXArSHlYRFVhUW93VS8vM29NVzZBSFBsZjBaYVZWMmdu?= =?utf-8?B?azY0Tkg3dG9BY0hZdGxVVEN2Qm9aa2p5ZktOdXVaaTRrblBUek5GWmFlT1Np?= =?utf-8?B?bjRMN21WYll1bzVDZWptVXFnNHczSUJqYkJ3cm95WUxnd0ZmREpJSXJwNUlS?= =?utf-8?B?d3N3ektTUDFmQ280YU5wTjUrVTUzbFVsSDd6M0RvZkdVOWhDR1lLdnpnVzJq?= =?utf-8?B?cVFiWFhKOHdvZnp5cTVSdUozdGtGdldqajhVaU1lZFBBSHlVNHgwaC9raE1B?= =?utf-8?B?ZzNYR21TL016VG9uSm10OW4rMnJSekV2TCtZdzlNNFVEWDFKM1M2dFZTa0JN?= =?utf-8?B?aXYvdnFjZDBxbXhhRFk1M0svM3dVV2NDNXhYYTYrT1lVTFBvdCtLU1AvcUtG?= =?utf-8?B?UVZZSXZTL0dzLy9pZTlIbkRjaERONGMyeVUyT2VFUVNveTVkK2VoNjRmRVd2?= =?utf-8?B?RXFobzhoaWZBd2RYL1o2aCtxVWM0dHVRekNzeVpoZmNPbndsOE8zdk1Mc3Nm?= =?utf-8?B?QzBzUS9IM2FuNUhHcTRBZ2JiZUVCY2xvMHhpMkpLYXVrWjBFc0xpU1YrdllX?= =?utf-8?B?T2Z2U0dXdHBXZXZJUTI0aE5YazVBckkwQyszV2V1LzRWTU1ZQWhIVDRzTldH?= =?utf-8?B?WlZVT3BSS3FQaGd3SElUNWxLelpubVFCbFA3bGk2NjBMQnIzWUtPdllmd09z?= =?utf-8?B?Q24ycjlrMXl0RW1oQjloQWovSmZJZC9IaVNFeFZYTFR5bk45MGgwZHZ3RXJl?= =?utf-8?B?MXdKaFIvRUoxNVdNd0pteWlpNFhmaUJFR3ZSdVJXTlBHKzhUZzNLMUhQc2xI?= =?utf-8?B?aUJWQVlITlNzRmhhT2RnWTM1bjhkd3Y3bE1SRExFMkFQK09jUnRjcGowSVJY?= =?utf-8?B?aVI1TVcybjdBUXRCQ0MvZy91YTBNS2xHSlpUdEtCRnV4aS9mbEFNVldBK3Zu?= =?utf-8?B?dlJDZlZjK255Y2VvdFJGSDhEUnVQcnRmVUYwcTdkK2NGM24vK0Y0M2xFMXBX?= =?utf-8?B?QTFtT0FiSFordDlOTjl6MFYrUHpmZzA2bXFDYTNjSzRVMURqNkxYVFd0U3g4?= =?utf-8?B?MWhraVF6Zms0a1dXeDJxbnRBSUxwaFFoWlQ0c2drVE9YU1VJNmh6aDBoN1NL?= =?utf-8?B?OElsZ1N2dGJXeVllaTVGQUVpdExYUGVXcyt0TzZWaWIrR216QjVOMExGSkhW?= =?utf-8?B?dGhhN0k1UG4vNERsYnhoVGNuRSt0NEFaY0UwVmpDMCtUdXFpMFlGVGtLSTlH?= =?utf-8?B?QlorVjNIenFiN3NsS0tWNFpJMVJLb25ieEdCaGpjcUxQQ1lnWmRZbHhNMWlq?= =?utf-8?B?c0ZHY1BJTEc3cFd5MHQ2TW9tNkJ0YU8yZUc3cGxYSVVsVzVVaG02MUk3ZlhP?= =?utf-8?B?STRXdC9scUloS1YzQUJCYWFTSW5wR0RlVlQ3dFVHbThGNFkrbWtDMXBZalUy?= =?utf-8?B?L2N5eitURlVjTy9SWnpCVmxKREhMQklKWDA3bkREdlV1MVZxd0t3VFVHMGRB?= =?utf-8?B?dUloc0dHOGpQbWZqcjROVDMyT3ZaSVpNVnFjQTI1clI4ZkROVUVvc3VrM2Jv?= =?utf-8?B?cW90U2xHUGhsNDhjOUl3TkIzb3FYN29ySEkxUWRtZzkxdXRUOFFwQ2NnN0VT?= =?utf-8?B?Zk1oNFVrWGZDS0NNZ3NTSTkrYlFJa0g4MmJoZ3Z5ZkhJb2NPa3ZqK2VPRFZa?= =?utf-8?B?K3BDckQvTXk2bGdFNW5OT0NyQ3NGc1dkOTBWRGNJWEtvSllna1ZNc2ZpSlRo?= =?utf-8?Q?ZqAU3Ew0DwtFc+vKPAIWA8Or+qIkdW/M?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;6:FJjINAegckAHja7y8hEg4O5ILcTDbAPXc6RcR+hD7inkrpxapgiwYbzAEu+oDEA6Il3m7D9xweT3QNI8ODaXX+DjuynIhHdKuseQC7UZHvDJpIODqz4C6yaHIsyocfWTwEsnYvrRZVHuja3zf5PFLLk8nTuOxES2IJhfDwn11LSO03ES44k737RaiT4pb9wtK4lbx+hS/swbMZSt/lJ9tH9f6HPI+6bxWMB2zrZcbrOKyL1ciE8kUAfiNtPPUNRrdRIdT4GBKfQj1Y/2VoDHt+EcBZj45skMjZ43KqMDqZs2sKOt0o78Kf9Ulhox9092P2iYviwTW6YTdUtzqaafizibbt/jBCiTdZDdjrECYHzZP9N6TWmgVJzFovcM6Ghj2UGSFdObt4Xpa2Q17NYqZn9dvo/JKERrglX8YIp40ZMnFiuiJim5tbIp6y4FRWDuJhrmxC0ZUm8GNFuh2NhvtXEScgsSL+tsjLHScNezx/M=;5:zHFw2WKM5NMucmbroLrwhewcYbk5JmQFvpJWY0udjSPwPdgdWt7rloZamKG2HJeVsRNyI6+YH1PwMeYxEISatpkIhMeyHcwxC5LBWrljyozAjEiA6BWA27x5O9hrnNOqT29vQ6BVteFmLM7kAA5t1g==;24:yRX6ddKbDUdXoPqrsxwPMPu0mjhEU1oCzl1zWz27G1ig7AG0zg8kDRqNwSS46gTwh29IVZ81ZIzTtnkAd389FP6aE2SLeb7soyi4Mhs6Iz0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1143;7:ippdsv9qQcQGlbZ+PZIG1r3rSd/LwuSJ6o990FHkjLH8owRzNHxhx4uRed8G1oWd9pOMWlpQuvrYW1QRh+7ciUEzE68KtVHK27vl9amnTHd9AELpZ+8FaAsvWes8yDFjJ9Mk5sJKwxfG0/d4azlTcLbu7+8IWVbU7GZKon7iZStSYkv5TN28+7edfPids9O5vrKoG0Di0TV6Yrmfwl0fQ0paNVw1jq/fv3hemnuH5u3DG0mi1RqcwSst1Px49QhemJ6dJjnfFQR6GCIRbEKzgn+kKdomm7r+jEWkCgow1gIsRBiXft5rm0uiSbM1sBLpzqi/oNHdDofsLL0Yy7nqeQ==;20:wqphP5zp/M80FGOPPiZJSueQqSsgq1ngze8RX5iDIbMt21F/IGX8j2A6KiLIK9jKsCLpbZPvviKnvujnr4XTd7Eq6vgSXCws9WGWP1z2sIMHTZd8hDnJGaMKkkiCkqFSXEHPDDKLsd9MUV9acjq90R809KAEt7XkXaYm3ycqFyD66Ezi7oYs1n/+mOpywWv9uQiAO353FsPt4DzwM83Vivi+gb1t3UPLqV6yGQma4Gr7fRQSz15/QGNwf+FLsGv4 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2017 21:18:40.4619 (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 return the E820 type associated with an address range. Signed-off-by: Tom Lendacky --- arch/x86/include/asm/e820/api.h | 2 ++ arch/x86/kernel/e820.c | 26 +++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 8e0f8b8..3641f5f 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -38,6 +38,8 @@ extern void e820__reallocate_tables(void); extern void e820__register_nosave_regions(unsigned long limit_pfn); +extern int e820__get_entry_type(u64 start, u64 end); + /* * Returns true iff the specified range [start,end) is completely contained inside * the ISA region. diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index d78a586..8d68666 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -84,7 +84,8 @@ bool e820__mapped_any(u64 start, u64 end, enum e820_type type) * Note: this function only works correctly once the E820 table is sorted and * not-overlapping (at least for the range specified), which is the case normally. */ -bool __init e820__mapped_all(u64 start, u64 end, enum e820_type type) +static struct e820_entry *__e820__mapped_all(u64 start, u64 end, + enum e820_type type) { int i; @@ -110,9 +111,28 @@ bool __init e820__mapped_all(u64 start, u64 end, enum e820_type type) * coverage of the desired range exists: */ if (start >= end) - return 1; + return entry; } - return 0; + + return NULL; +} + +/* + * This function checks if the entire range is mapped with type. + */ +bool __init e820__mapped_all(u64 start, u64 end, enum e820_type type) +{ + return __e820__mapped_all(start, end, type) ? 1 : 0; +} + +/* + * This function returns the type associated with the range . + */ +int e820__get_entry_type(u64 start, u64 end) +{ + struct e820_entry *entry = __e820__mapped_all(start, end, 0); + + return entry ? entry->type : -EINVAL; } /*