Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932933AbdDRVTT (ORCPT ); Tue, 18 Apr 2017 17:19:19 -0400 Received: from mail-bn3nam01on0074.outbound.protection.outlook.com ([104.47.33.74]:47456 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932908AbdDRVTJ (ORCPT ); Tue, 18 Apr 2017 17:19:09 -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 15/32] efi: Update efi_mem_type() to return an error rather than 0 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:19:00 -0500 Message-ID: <20170418211900.10190.98158.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: BN6PR15CA0012.namprd15.prod.outlook.com (10.172.204.150) To DM5PR12MB1145.namprd12.prod.outlook.com (10.168.236.140) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 112d14f6-441d-4add-4854-08d486a08b13 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:DM5PR12MB1145; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;3:tOpDF/fkpgzPn4mB0QRLvVYX60Qk6aYn5lam+Us/dG4EuIYFmbFo4dk/xBu4zW1eZfa5sZp8mukGPAkolHjUVww6tahPXMsZjPygx0uTqDZ1cdyjqjvd6W2kxmEE5gi8wFuxNWGcstvvvA4S2ertEVS4EgBO8R99HlD1AMvWBPS/x7w7/DO5LnHOhHPzzyYA5pUq6w96VnMtDXQyWB4eTv6cAwPHaRxMOE1miSD4iOwsIxEFU+LL7QqaFHMBwHLP1tx559wQ1t7ucSQBpwVGvIH+D3AcvQru4l3T/21gEawURYDa0vgsqbVEcI0WCLLU0bQ0O0+jf+ZX2Ua5WfmRmDkcWmpxdNSiAD6Hl41gsCs=;25:aCWNHsQd1oew86ovkI2hB4+qO+ZccwfbtgoHo9/gV9ESqPg7f3K4S1NhB6oGw+5hmRfZyw91uS4xcvPdGVJmiQVmOeOHleP/T8rHoQn/ycgfXbe+MgDtm1tzxm8OqkWWT2EYamzKIH669doiw8O4QonsVym3W58nmCNRKHLUyuvKwVf1WKqO9xeMseA0q2LFhugtm2041sRXMmx5kVOsJ0Q2byt4WFhX6pva916hOZMox8AlzdfENYPswen+gBY/3irFaedPFQfpYSLqKZCNTlZKH4z+S4E7P9twzLapfLfNLO7RGlXCE9/PCJG6zR6JkDRimfSebH/bW8j+nuRdbYnMCj+XWtHAOe0gw8wNxsJSyNcCKYrV5yMElcIQB/QdpW9MMUB6oja40m1qNLWCTKZixjwKI7+f18N7w3P2BrW5vB1s+vn+LgnvEZTZQgA/jSYbXrz1DbmD/IP6J9b4Sw== X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;31:OGOWjNPvKPvBmLtzA4EMXwznpBfhav3g6t+9B9Xa9E1z6hKbKCaOM3Ej5ekGXuOmamdlB7nyOppFPJKCLXRVptEckF5SpbXQmgs8qOmxKgHt2Lc9dd94o1+1D6lSk/AqZEEDBoMoGF3NEfmJ75Iy9L11g0kPiDL2UfFszdeVPMrLWdl1GYTdjuPxVyTA5E2Lm0XD0SLJuOy7/QWMoLNFunpSVodPWAW9V55NvWOyhVQ=;20:2l75vYO8jmK3WriSVrfdepUUpf/LUixZ5viM0wS+Sf6qt6sTu0mkN3+7aYzt27CNG4CvxD/FMoRRZkYL+ey7sRy36bMQTmDfglpufgxbSlUwMX0qtzdlD7VxjwjS/nrW1Z/i07MbutHL4KVXOw+YrwRts+L10jKUYrEFieWhYN7Je1tHScN57hSZLiwvvRghau7LnDfuFYkXZ1b5Df8HkV8hhn/TOjQ2Yplz66xExgk2eWIJ+kRcYwevo9KlyPoNSiQSHkEsRnpXC/as6lyJiITezYBBlMvsFXllDaWsXza5zKzSMuXyBC1NX/jbRKZMZYTG/yf7rQglSwHrdIRqraquRempuCz8/2ch81OL6PJgSgaUpwHyfFDAIt6N63azWa9R1NW3uFsQaBbPg7Y4GByALyTYV15zW3E70ppXAVPR1/ZOrc4FqoCK3d+YONdJmaNmsreRNdgTZ4oiclMaFLt1iSPCPtmxkKvV6/UM4TOrlQQ5XNbIiTm/y6KgFhPP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(6072148);SRVR:DM5PR12MB1145;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1145; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;4:taxekZobONP+1o/bZR4hman5tQGL1AdeoSVGhSPFkVN1g0QT+Zvq92pV5MYLw/PAeXsigzri65BXg8gOli/wZVAywuy7adQO+jCRYHZKzLww8N5h97tj+INXeXLXzxjnw7XhoZ3AiieogzvkOxFMyZ2xD6woihbyK5A82D08tl0sCKDmjTeQFChK8uxJ8QgGfxoW/ZH1cRXdgcM3kTDhCYx+DDBB0GjHRh818MJhYfV2cDIuY1iq2qbI9eLxI4SJwPPeqN7pGjy/HBmkzEjwLPFoOmn6nECVcDYgsWSpY2rD480l0jEa8ZbYp2iQ3K2ie82yIzcKvISmKPX8Zp6D+8u2TtjMTN2lT8zFFE9ySJ+YMMSs4DbpoidnIbd4PYCTJUh5ZsP1F5bkTsbCPU+9K7tRitT/If8ghOQeiUOp9lbJnkqBHKpBD08LhhddkjTMbiZfxIQwAuc4DNlPxjMrdb5LCL9zAIYXTKP15IEKyrBhfUtptgX3q5oSGAtyrfPUSf85GhXOGjkTFpdqgG/I77gYnA7MOsVDUxboDqLKMOW29pidEYvrZ1I4Lu2MpANccTC7BWPD+YzvwB73uWGEnNXD2BfAR+KFikuD+dYmFjV5I3z0Z3FcO7WazsAQiOiCM9xyT7QitU0dv16kdY4E7R3WP4yCUxPB+ZEWSGYcAOgkzPWLA2fnN0O/+J0sXwK0gt0SFUl5VJts89YT+0D/aqkEebRrKUyJyFMzoe+u+Fykli+tMObNyYHdAcSG3UvYwCyiK0m+TNECx2VXQM+RWQ== X-Forefront-PRVS: 028166BF91 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39450400003)(39860400002)(39850400002)(39400400002)(39410400002)(39840400002)(230700001)(7416002)(55016002)(54906002)(25786009)(5660300001)(33646002)(3846002)(4326008)(66066001)(1076002)(53936002)(47776003)(7406005)(4001350100001)(6116002)(2201001)(305945005)(7736002)(97746001)(83506001)(189998001)(2906002)(575784001)(103116003)(86362001)(38730400002)(8676002)(23676002)(76176999)(81166006)(54356999)(50986999)(6506006)(53416004)(50466002)(42186005)(2950100002)(9686003)(921003)(71626007)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1145;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMTQ1OzIzOnhkaDJHY2xBQk5OKzRzdEJZT3FDL0VGRmdK?= =?utf-8?B?ditGUWhZa205UXNGdWI0dkdjT0J3T1czRHNtYjdXYTkzZHFzc2hLZmFJMGt1?= =?utf-8?B?Yi95OXUrOGp3Y2ppUzgvMWJ3aFhqclpsTWZkNGpnbDk3MkVRRHBlcm1LUkY0?= =?utf-8?B?L3FQNmxobkgwRWw2dHVTenIvT1I5aU5nSlZHMmF0YXZpVVZJUFJrNk5xT2dD?= =?utf-8?B?dGhjNGhUNFVwZzBsdVkzcVhqdFdTdkN5ckFQbTFRanlxUGNIU3YyZEcxaUJ0?= =?utf-8?B?V0FCMkpLL3N5NXZ0eUp6QTEyR2pNZlprSnZqdTB4TFJoNDVhQ0xmOUpMMjhy?= =?utf-8?B?MDJvTSszb1ZiTCtEeUF2VmJ2RTdVT1k5Q2FNdHU2bmo3WmwxVHVrMW52Q0Fy?= =?utf-8?B?QnRKQUFFL210NnhocGtySUt5OTJBR0NVV0tzRHBDREdhaXp0SWY3UVg0RGRi?= =?utf-8?B?cDlQbGVKVkliQ0Z2MzlxSksyck5ISWF4MXZ3QjlPUUpFbHlYWEhCMXdpQkJl?= =?utf-8?B?UTVIQXZnb2UwUHRxdTUrdHNCa0hhT3p4RUtjMFlCczJYTlVTblFMakljeUxE?= =?utf-8?B?Mmg4eGxKRklGNEo1UlM1SzJHVVdQcFVwTmRSL21vdnNMZDhPWVNzMmx6TGZ4?= =?utf-8?B?Vkdkd1paeUxxK1Y5OVAwcFdYM0ZycEEvbFFUUU1VYnU4SFJhWVJ5S2ZKbjEr?= =?utf-8?B?MHZMVW45MEd6eXhIMDJDcGxHckc0Q2lYK0FJM1A4bjBGS0R2aDh4Q0dvNlJh?= =?utf-8?B?dFFmV0RhYWk2WlU2UDVBdmJlejZjSWlENHZOcGlwQmd5N2IzRUFVRlVMQzZr?= =?utf-8?B?N3pIb3pSeUl5cWxYVEs1emhSaGR5dnlGRUZ5U09mZUZjTXZkMzF5YWJzZXFI?= =?utf-8?B?dElvZkZaSndFaHZZZWtBVE85U2pUblR2Qk1XcklkcTJiMzRXQjhZTHJBZmRJ?= =?utf-8?B?SkUrM0NPZ2xNdVR0WHgxU1RTQ0d0cUlCa2ZZc3E0anJOcTJXOXJUTXQrc0lI?= =?utf-8?B?UXFkaXdRZWFHOEZJTm9RYU4rT2JtR3BaajZ6QXczTFg2YUl5ZnM3OEtOVkFi?= =?utf-8?B?NW1rRlRsTCtxRlRzM1haZEVXWVp2c1ozY1NqTjVFWmN4YmZQaXk4VnhBN2JJ?= =?utf-8?B?ekc5Z2hvaVZhYThEYTd0UTlPWExyYitzb3FGQUhIRC82VStmZFd1M1pmQ2Zu?= =?utf-8?B?bXJiMERFaXp6bk9weGhqNnNnUmh0bjV2c04yZUlFUUhNd1hyNUJHa2FUWWpl?= =?utf-8?B?VTlrQXY3NFd1TnRIeWxpQXFWQTJCL3JCeVlrWXJlMlZicnBnaEpZT0RwWDB5?= =?utf-8?B?b1VNR0N5Z2d0cVhoOUdzZjZXTzkwMjJxYzNPZWhleEZ4VHR3SGVLQ0p4NFFJ?= =?utf-8?B?R3hqOFBLc293Y2FqRE9JZlRmSnczV3BIRFBoR0M3MTBIYVdNK05zR0N5eFUv?= =?utf-8?B?ZGZxS2VKaE9rM0t1c3RNcjF5K1FMUjRKb1NaNmxrUXZaMTVWY2tRcEhHWmFk?= =?utf-8?B?ZGxWZnZwQlc1WU9xMHVsNFNoWFAvbVVNdWROTTExZDdQSGJPU3ZyZ3V5NWhU?= =?utf-8?B?dDRCdWJuaHFOd0s3RFhscnlDaW03cENOVXc3MWZLSHlYTERNWkVFMXREbjFw?= =?utf-8?B?UGNNUVRoMmxpQ0Vza1o4Q1l6M3F6cU5qUWN2RkphZUlJQXBxMEFSNnZnPT0=?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;6:P/pgFtOZTRU1Uv0bd7E57DtxvO37d4aiky8OQWtJTFhOW9tQTckv0OLwBNoWrgoobasrYraYVtg08iGZmpLbgHwk1WiBLM9APdcsRwTQ6mFqAbHC1C2bNWogwvoKJVhA7jeDWSFyh6//aQcJn5L8NJUOwS+zAjLMqgM5vfhDVoqagl9CevwbZ+jPCd0llc+2C080U4/mrHI4IZNPeqAgm37CVrzambC5UqhUCRnV/KBg7DJPuUNkxglQ/S18RhiSQx7ovMSNBQISKcJCy6y+vE3ioKt0lj90Q7wPpySekBLxsOZTY9LzBNJAb8l6w8r1fq/MYzhe1Lkxu7R2/hhilxfp0XLD3i9mp6PbcKJlH2CJflbU6kejut4Qzt1N7tswhWrYuHwLVTVIrZ3GryjDMmNnI3RW6f/60mVUNyFwzVHfcMswfaZKDcPJLh6E+ZSl3I/sg+ICGDOl/5XfUYv3BG8FJzFNMBf7xL3tYiOTaKQ=;5:lzBsYz8nmKrwoHq+h7AF/J166hllQ6bLXHcfsGe0QWgKaDxLAJCE7XLvhB1dqqINcdNPgRcr7RL6tFWYQHFVt2csl3e4dS1v/5+rIL8k/s5IipWJ9wxRL4Tt16QhNNOnfk5xoI0T4rlsWNEQroZUTw==;24:JHrew2KJMRsn94kLFTQ2pGBMEjSoW31ao8FS5ckGQulxFSWPP0HWg6luKerj+u1Wb2huTG1zHZC+ZtcyuqZbIvHC65gIwTD6DMxI2FmkZ4o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1145;7:EIg84Rt+F+BWVWCdAvu/9PwfymZBc46Y23IJ3iBXyAw/W0FYbNhFdB5TPuyBb2+vOcgYSKTstgW+CpZphwYYGzaTG800Qb3pElT1jvEE4zNIsuHUvWS3TPZvJd/Q8Do1YFmygRrzxSyWTzt3KH0qho2r2ZlQYGQknjOFIeYnyxRrAQ7z5o2maDeW9kZuYr0MyV5pobm7V4MGtyBUem/1v8oGKSChzM08/w1h7M3HebHua8bC2Hdg7x43Ir2IdBsE3aieZFio4mtV1t5yEEPmTarFQhA7YnSg5uM9bmnRLSIqL7ttNsmceXmRIGKAU76iHn8sMVziERee8faPeG45FQ==;20:7aveano4L82Fw92iSoNAHPglGsLQR36EQB2rj4YbLPK+cSnLRUrVDHcAerAkzAc8NV9Iot3Nb6Z8h6OhAf/bPwi8JJ4Z5jtu/YfbIYobjSANZUKLATVLUa4f+DDYJS1mQAYVQyZiZEvEBoRfr6PWGSalFdSFJhd6sRLBQZMXXM0+LT+DtXtYI29/w1C9m6BmNKJbXKoi5fuWMOlaIGoJENsD9oWAB1jJM790lq5quk679SuCv5nhv9Ti/SeC4NID X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2017 21:19:02.6837 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1145 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2450 Lines: 76 The efi_mem_type() function currently returns a 0, which maps to EFI_RESERVED_TYPE, if the function is unable to find a memmap entry for the supplied physical address. Returning EFI_RESERVED_TYPE implies that a memmap entry exists, when it doesn't. Instead of returning 0, change the function to return a negative error value when no memmap entry is found. Signed-off-by: Tom Lendacky --- arch/ia64/kernel/efi.c | 4 ++-- arch/x86/platform/efi/efi.c | 6 +++--- include/linux/efi.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 1212956..8141600 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c @@ -757,14 +757,14 @@ static void __init handle_palo(unsigned long phys_addr) return 0; } -u32 +int efi_mem_type (unsigned long phys_addr) { efi_memory_desc_t *md = efi_memory_descriptor(phys_addr); if (md) return md->type; - return 0; + return -EINVAL; } u64 diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index a15cf81..f9b0b7a 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -1032,12 +1032,12 @@ void __init efi_enter_virtual_mode(void) /* * Convenience functions to obtain memory types and attributes */ -u32 efi_mem_type(unsigned long phys_addr) +int efi_mem_type(unsigned long phys_addr) { efi_memory_desc_t *md; if (!efi_enabled(EFI_MEMMAP)) - return 0; + return -ENOTSUPP; for_each_efi_memory_desc(md) { if ((md->phys_addr <= phys_addr) && @@ -1045,7 +1045,7 @@ u32 efi_mem_type(unsigned long phys_addr) (md->num_pages << EFI_PAGE_SHIFT)))) return md->type; } - return 0; + return -EINVAL; } static int __init arch_parse_efi_cmdline(char *str) diff --git a/include/linux/efi.h b/include/linux/efi.h index cd768a1..a27bb3f 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -973,7 +973,7 @@ static inline void efi_esrt_init(void) { } extern int efi_config_parse_tables(void *config_tables, int count, int sz, efi_config_table_type_t *arch_tables); extern u64 efi_get_iobase (void); -extern u32 efi_mem_type (unsigned long phys_addr); +extern int efi_mem_type (unsigned long phys_addr); extern u64 efi_mem_attributes (unsigned long phys_addr); extern u64 efi_mem_attribute (unsigned long phys_addr, unsigned long size); extern int __init efi_uart_console_only (void);