Thread (28 messages) 28 messages, 2 authors, 2018-07-11

[PATCH v10 03/14] powerpc, kexec_file: factor out memblock-based arch_kexec_walk_mem()

From: james.morse@arm.com (James Morse)
Date: 2018-07-09 11:03:23
Also in: kexec, lkml

Hi Akashi,

On 09/07/18 06:49, AKASHI Takahiro wrote:
On Tue, Jul 03, 2018 at 05:36:24PM +0100, James Morse wrote:
quoted
On 23/06/18 03:20, AKASHI Takahiro wrote:
quoted
Memblock list is another source for usable system memory layout.
A merged new arch_kexec_walk_mem() will walk through either io resource
list or memblock list depending on CONFIG_ARCH_DISCARD_MEMBLOCK so that
arm64, in addition to powerpc, will be able to utilize this generic
function for kexec_file.
quoted
diff --git a/arch/powerpc/kernel/machine_kexec_file_64.c b/arch/powerpc/kernel/machine_kexec_file_64.c
index 0bd23dc789a4..3d4be91786ce 100644
--- a/arch/powerpc/kernel/machine_kexec_file_64.c
+++ b/arch/powerpc/kernel/machine_kexec_file_64.c
quoted
quoted
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 63c7ce1c0c3e..563acd1c9a61 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -16,6 +16,7 @@
 #include <linux/file.h>
 #include <linux/slab.h>
 #include <linux/kexec.h>
+#include <linux/memblock.h>
 #include <linux/mutex.h>
 #include <linux/list.h>
 #include <linux/fs.h>
@@ -501,6 +502,53 @@ static int locate_mem_hole_callback(struct resource *res, void *arg)
 	return locate_mem_hole_bottom_up(start, end, kbuf);
 }
 
+#if defined(CONFIG_HAVE_MEMBLOCK) && !defined(CONFIG_ARCH_DISCARD_MEMBLOCK)
The only caller is also guarded by these same ifdefs. Can't we remove this and
rely on the compilers dead-code elimination to remove this function when its not
needed?
I don't think we can remove this #ifdef.
"for_each_free_mem_range[_reverse]()" is defined under CONFIG_HAVE_MEMBLOCK
in memblock.h. If some architecture wants to support KEXEC_FILE but
doesn't have HAVE_MEMBLOCK, compiling kexec_file.c will fail.
Ah, I'd missed this, turns out memblock isn't ubiquitous!


Thanks,

James
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help