Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936985AbcLVBSA (ORCPT ); Wed, 21 Dec 2016 20:18:00 -0500 Received: from mail-db5eur01on0065.outbound.protection.outlook.com ([104.47.2.65]:38336 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1759216AbcLVBR6 (ORCPT ); Wed, 21 Dec 2016 20:17:58 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mika.penttila@nextfour.com; Subject: Re: [PATCH 2/2] efi: efi_mem_reserve(): don't reserve through memblock after mm_init() To: Nicolai Stange , Matt Fleming References: <20161221182846.2968-1-nicstange@gmail.com> <20161221182846.2968-2-nicstange@gmail.com> CC: Ard Biesheuvel , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , , , From: =?UTF-8?Q?Mika_Penttil=c3=a4?= Message-ID: Date: Wed, 21 Dec 2016 20:45:13 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20161221182846.2968-2-nicstange@gmail.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [84.250.21.106] X-ClientProxiedBy: AM4PR01CA0019.eurprd01.prod.exchangelabs.com (10.164.74.157) To HE1PR0701MB2170.eurprd07.prod.outlook.com (10.168.36.19) X-MS-Office365-Filtering-Correlation-Id: 4a230e77-e59c-4880-c0e5-08d429d1836d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0701MB2170; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB2170;3:n8zpkbliWU5rYNkPLhN1Pybx8pBzGwpLyRk9c3M/hCS2t9B9wp+HB8RZQ24OIydE9YOqMJ/dRPqG/Nfyh6qzvbSNDSXXmTVaf8kBw5ORtkgcuDpC3IXRD+NsXi+KMXm60w9ea7ltw74I85d97OAgsiBh5cAyr6nIRMDY9I8WkIHjGNRspFC+8hXCh8Z3UX8UGJhoanfSMB4J8EYOIS6zCsnf8Opwe1irmyK+uaLTQje0VqDrWUn7/7kja7RCTQd088B2b9fumBSFvKwI2d+OaQ== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB2170;25:fipgw7VKXhkOKopHEXAWOKXMtlU/xyNtmpGrV3RWGtGOybAMBRi/zlA5B9JwU3+v2Vx7GkCPz1btVI2Jk6uPqTenoYG/RUXwMPcYVuAhcbqPc4TW8K6qLtq/WoUDxr1G0mYVjpLT2zu2pvaEQmdZgG7szeFNypkEA3MzAboKnUYjImQr+8FjHHyAtxHaf5N/Dg0elLCow7+Bbp19mmqqlnd6wZRL9MdensYuVlWi4jztfuOagsIniEaNwrnD60V9mCeNT7Kx53JAcMlJ8DBCAOXl7q7EqsM+2ple9qXHmlEXMrXRSiUPkxFP2HjJKIqSGf3tKxQY1UuN8rchRx/L9FmxcIGrjrGvQvNN9BPNGhpQUHWgTNy8Sy0Kkc1oTK+omoh6tMIAHUIzn2Uc7PuB+b1R0BCGY6Gu7y+InHVQqmzcCqfsDPf4pFVBfh2W/R2gR1ryFiUqUCFcU96AR8x5BxeTAwQ1PetZtwRC26QFF7QtWuCBdoZKcvT+qlR0SBBIv5Wq6GiYdQON8jgx67Ms/79Rn4ZZYzLLAeS3F+i0weKUy79stGP1Cblce6FUviuo8FldCWMJBaN2ct/aA55dzbijUxGmUvvTlZMseKFE3mcYAkcEuNdMym3WX432nRO9Yp5fRV2pkh2Lqj9WMHiIpIFqtM7Rr8iftWjYrBHYI8pNtly7gcI68t0CJlK7Z07FRDPeH78EJmdWq2LaQrwEWKcM0ThEojReA5tQ52VMt9UqQGgxzd6r7NpcbVmwRXBrwhh5cT9QDeKSbmev4xi9Ag== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB2170;31:o9xjsqEQ0Y20xgYdoZCc+nrkif/BfZbuWmg1H3/WOdtqQQjqh7DrkTvi7i3jhMLGrr8vEtLvHo/d98cSnOSLxCeausGJbqUFe3yy68VfC9+m8vUdJRv3qosRbmZDLCzOLFYYzRjPk8avonRQ884yOcogm48lj/NEOXOSTs1qoBWZ8CatXAu+7P/5bR3RpnXqiyEbKCXsVRlvU9121tdtpQB0c9qYKuGbrlVcW04o+ROvf1OJWONWS4YAawRywTBzCpdbu5hXa2t6gqoXsCORPw==;4:k5RgpdQ22RJcxhz3dINoU6KbFGesZIAyFDnvGVQvtzoO+tfJgRHD301lCJuZ6v2f7uGAOzI4yuSd+CloyxLqaYNhK2kaDU/XmOJYO0lzeJ+zhGsIKOMkhqi+R7v0UfGmVsaNPCDQYqxp88ZAIRbMMyGSQZbTDdnGM4pav9ZTBQE4O+mUNmxlup0LFPF+9nZ0CsIZsH+UVJ6Q8IR2qsznieiSZlQGHRo6XYnYpkbW6zELonJlKhz4Sb5HAnCF97hoFG5LjZxuCcpsdc9E2/2tAd6nbDb+7ZvZbY2ircVoxEsd69Hh0iVruCcjqzg46bjdTaWLhWSbUg0I+qnUXJvoSakm6W/2zAQ/mUhLzZGc7o/vArHGqTjGv2XaOvn8cazXPJj0/VMt26q31vI/yT9hogxaQID9KlJs8d1xlOng7lvJxVkF+K4LVCF6+N6Yo8O9wfpcmsqGqHyXvCG9ATRFwHqMrAiRcvpBX6poWdk4aw2gFEZSJuoZ2wzTIAQsa1eDwMOxVn5gQRoNmM565VKNcpXFl08xOOEkWLw5V2jMfBQ9m5mUkiNOBMTPFJglQupL+0yYvpb4+XPwPmK7CvN26W77UmQsDRVur/ZRUVOzxGkbQPkZAx8zgKEONgcq37KH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(2016111802025)(20161123564025)(20161123555025)(20161123560025)(6072148)(6043046);SRVR:HE1PR0701MB2170;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0701MB2170; X-Forefront-PRVS: 01630974C0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(24454002)(4001350100001)(4326007)(2906002)(33646002)(64126003)(47776003)(92566002)(5001770100001)(31696002)(86362001)(65956001)(68736007)(97736004)(83506001)(117156001)(66066001)(65806001)(230700001)(90366009)(106356001)(42186005)(2950100002)(7736002)(189998001)(5660300001)(105586002)(65826007)(25786008)(31686004)(305945005)(6116002)(3846002)(23746002)(81166006)(81156014)(54356999)(38730400001)(229853002)(50986999)(76176999)(8676002)(6666003)(6486002)(77096006)(39060400001)(36756003)(50466002)(101416001);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0701MB2170;H:[192.168.1.71];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR0701MB2170;23:7nj38d4eCl/sFx72DePovYib4PjL3nVmSWO?= =?Windows-1252?Q?pJiakHPGnP6G2N0YSjZzW9/hIf+SatAG2fHYPtyLTDSNsHGmp84zbKTZ?= =?Windows-1252?Q?Q1HKN0DjfIk7AalLDR6p7wehSJ8BwFEL3HsrT+X6ZmagBZcex3yT1Lis?= =?Windows-1252?Q?2a7oQmed7hl3pjvRQsGBLqpKGvSsI/AF8wtneYca7MY42C3mJp1cVmxi?= =?Windows-1252?Q?liKw1mF8UcKkTWaJpKSoElzgI/hi1irBXWHM4mnpp54vvCdBVr7TqLDa?= =?Windows-1252?Q?buRtm7T1wdzKUpCFi+GWhD6aNi2mmfDm04S28VSnqg0AomqMmSxeKfmJ?= =?Windows-1252?Q?TZ9K9+tXgIzwWR8DJ+WRqUkhUGtWEYbFnTRzgBEB552UBcLkdzvUbp1V?= =?Windows-1252?Q?Y4f+zJPbCsEzkeBUtTUuSP11BZh16ni3aIyfrkUpn5OU8aoFDm/1/ZMt?= =?Windows-1252?Q?X3BHiYraJaiL7aOc31exSUg0Ox0J8mFQ3QmiPMpXsQAaRzffXd/sQ/sG?= =?Windows-1252?Q?gWiwilzW5jSvsM/MJ+HTwEV4UI9kEMnHHc1Qu8eEEkjYdmkO0/MzmM3o?= =?Windows-1252?Q?HhgAv7CbrySm1T4XQU1F7OJyFJsT6QHol+vP8pIFtB4EpG2FlsQ+KpJX?= =?Windows-1252?Q?YJgSXso6eXDwG8L5tRcSm09MuCAoZwCMrSgVDA6Pi65zJLUxS6k3yWeW?= =?Windows-1252?Q?KfhBoAVbL6KHdokcn+MqGJCw7gHlJY94YbXeg9jGs5kGhDP5RYBvf7vZ?= =?Windows-1252?Q?X9LpIpmEvyDBKAvnQUjehCn3mIUJbkPFRJQnKwXgpmVK7YuMvffet/Qd?= =?Windows-1252?Q?8e+CMKzR1g+CST0MoJQxsDEINDEjvL+4j6Tmclz6iVyXx6w/g1S/bH0b?= =?Windows-1252?Q?4AOabJsED8fZv/5vMLcDcPdlkIfyYU+yhZJdlWnv8WIJ6Vc23ZcjLWZC?= =?Windows-1252?Q?dVCTLgWS1nsE8CRlgNsvcSqK+zSdt2DV56njSz3SlhAkgfDGQPV9gvev?= =?Windows-1252?Q?XJs53F0Q7GVfQiCY7+1u0nVo72Tn5RQ4NuQsmdaiXWYqslkgg0RtuH/S?= =?Windows-1252?Q?BBjOKxvpoG29udiLhxWaGYVQYYpTbKn745+fWZU+W9OKdYOZGmWvD+ge?= =?Windows-1252?Q?WePE/6aB+50f7qC4nv9kM/Yy0h6lZV8HtiZ1eTBc4hcWqhiTrr8yNeRs?= =?Windows-1252?Q?rJqG93RTotWhhU0/A8SdueuT1z7prm7/0p/WYEi3B9LIY+DDQGeDFjI6?= =?Windows-1252?Q?kjG4oJzmzp8e8v5ePvs2mLk6jCgplh52/zn1is3Zzt9bUPSHaRqNui4d?= =?Windows-1252?Q?9FE71Q8TVKZ9dGxZYGr1BjoZQYjD16cIJFa9JUvtsI3uCZWmbPUuED3P?= =?Windows-1252?Q?L6x9G1EBakkTRWm9TGHJ21KCdy2ywe9L337PnpTuIjeY/DWO2HKfRxPU?= =?Windows-1252?Q?PceBAyyEU85kaPrSjTdfcho0wmwGGp6qs4JD9ezsrq70j9iQqg177fo4?= =?Windows-1252?Q?21LRFy0ust32fiDZEydlgDGs28Zdt9QZK5vUMpCXZHReAgYcyKA=3D?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB2170;6:kSCcUNCJ4fN9bS1jF1CuhzYTB1P6naflvJ/GmygFdALww9J80Tu5CRsrAD6ovbnLyTdPTMM5ikgFkXtsdz4iMNDMwzLIE6HMKbPxQWXy9Rz7VqN2ouEL0BbKFpBzmDlKYXmiafGATqXfueNlZpGh2C72ijvCqLaMF/vyU1bhL84nTJJ9akmW/zB3StHrWMF/+2tRxYHOz222v+nBmFtY9b2RDN0rsUZXSw93VXMJ8rsNYcp5ffL5yQcfxzD9xIJ1eN+UFyiHsr6pq5IY6VIHaa1FGYJb7I4BKPjUySYFtHIT38axGE6Eh5VvrI6c/a7XIkrJD07sPj8rjAOUc54ZJuNmqSUHOpgYgztGrg1IZOW+13sxQ56WezGd5ipokkjLgpyfq3y8BZdQK3tl6DbShcfzNCP0FKNJ48GV+6hqUkJIgAYIB6OA9Y8rbqCtpdYs;5:pKWwevJ6jC50aVJjeip/wQ9EiB+PF30o2RD5lTWfBUjlYTXEW1cSRmN+CRD17S6ha164D8WqdHGqz5LjA1dabys1OjSEnUtSzrQ7B2en6mot5PwIrjN0J4fDN6wvJ8w8WvsjQfqkYYJNA5FvBO2EWg==;24:4OBAJ7uri0Z9iD7Cuna1H2tM/jsE7YWwegMsZmeXcLu06ARiLYW7JOXYHErX5ermkLEuJ8s1qGe7gOVZ2IqK/elS01fCc9vcZ/cMblJOWmg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0701MB2170;7:s9V9oS0lx/aQXp08q5lc3lpyo9O3t76Ymde9ZwyeZ+XNt9sKRbeJuClZ81BEJRjAzr33+D05rFtC7Um8lOsDNCzRYCPT6BDSJ1P7Td6Un4OxxlWzU9BLXo+kWjRVBPUiy8nydXbtin2lc7xXyV1TaDEWRg20UomhjZiDCGIKhys8meCaNmFx1CMfOujqMTVITAyRzZJIjGvasQG7YHCCJ81SMKLgZZxbef1+pbSfzhD1dNnsFQzZopsL8pTAaB6T14OQC0LioYhBmwQntH+ns0wfiMJlGRY8O44n+AImYJW/Xqsij1O8FbL2lTB9Tlfxjm9rMcaGSpCQOpSDbRlwKA/jKO3Uc4bWieOWSEUCZUZMlI0Y0lb7LgWN9SCHHSE8wEXrOIvs50UuzsPKq3ud+5bXV0ke3rECI2Bhv/1N0R824ACvNDv0FdWkqoUHcCjcpgERbapN7AuDFi2WvFMFpg== X-OriginatorOrg: nextfour.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2016 18:45:18.6906 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2170 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1797 Lines: 49 On 21.12.2016 20:28, Nicolai Stange wrote: > Before invoking the arch specific handler, efi_mem_reserve() reserves > the given memory region through memblock. > > efi_mem_reserve() can get called after mm_init() though -- through > efi_bgrt_init(), for example. After mm_init(), memblock is dead and should > not be used anymore. > > Let efi_mem_reserve() check whether memblock is dead and not do the > reservation if so. Emit a warning from the generic efi_arch mem_reserve() > in this case: if the architecture doesn't provide any other means of > registering the region as reserved, the operation would be a nop. > > Fixes: 4bc9f92e64c8 ("x86/efi-bgrt: Use efi_mem_reserve() to avoid copying image data") > Signed-off-by: Nicolai Stange > --- > drivers/firmware/efi/efi.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c > index 92914801e388..12b2e3a6d73f 100644 > --- a/drivers/firmware/efi/efi.c > +++ b/drivers/firmware/efi/efi.c > @@ -403,7 +403,10 @@ u64 __init efi_mem_desc_end(efi_memory_desc_t *md) > return end; > } > > -void __init __weak efi_arch_mem_reserve(phys_addr_t addr, u64 size) {} > +void __init __weak efi_arch_mem_reserve(phys_addr_t addr, u64 size) > +{ > + WARN(slab_is_available(), "efi_mem_reserve() has no effect"); > +} > > /** > * efi_mem_reserve - Reserve an EFI memory region > @@ -419,7 +422,7 @@ void __init __weak efi_arch_mem_reserve(phys_addr_t addr, u64 size) {} > */ > void __init efi_mem_reserve(phys_addr_t addr, u64 size) > { > - if (!memblock_is_region_reserved(addr, size)) > + if (slab_is_available() && !memblock_is_region_reserved(addr, size)) > memblock_reserve(addr, size); Maybe !slab_is_available() ? > --Mika