Hi AKASHI, On 09/28/18 at 03:48pm, AKASHI Takahiro wrote: > Memblock list is another source for usable system memory layout. > So move powerpc's arch_kexec_walk_mem() to common code so that other > memblock-based architectures, particularly arm64, can also utilise it. > A moved function is now renamed to kexec_walk_memblock() and integrated > into kexec_locate_mem_hole(), which will now be usable for all > architectures with no need for overriding arch_kexec_walk_mem(). > > With this change, arch_kexec_walk_mem() need no longer be a weak function, > and was now renamed to kexec_walk_resources(). > > Since powerpc doesn't support kdump in its kexec_file_load(), the current > kexec_walk_memblock() won't work for kdump either in this form, this will > be fixed in the next patch. > > Signed-off-by: AKASHI Takahiro <takahiro.akashi@xxxxxxxxxx> > Cc: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> > Acked-by: Dave Young <dyoung@xxxxxxxxxx> > Cc: Vivek Goyal <vgoyal@xxxxxxxxxx> > Cc: Baoquan He <bhe@xxxxxxxxxx> > Acked-by: James Morse <james.morse@xxxxxxx> [snip] > + > /** > * arch_kexec_walk_mem - call func(data) on free memory regions The function name should be updated as well. > * @kbuf: Context info for the search. Also passed to @func. > @@ -510,8 +560,8 @@ static int locate_mem_hole_callback(struct resource *res, void *arg) > * and that value will be returned. If all free regions are visited without > * func returning non-zero, then zero will be returned. > */ > -int __weak arch_kexec_walk_mem(struct kexec_buf *kbuf, > - int (*func)(struct resource *, void *)) > +static int kexec_walk_resources(struct kexec_buf *kbuf, > + int (*func)(struct resource *, void *)) > { > if (kbuf->image->type == KEXEC_TYPE_CRASH) > return walk_iomem_res_desc(crashk_res.desc, > @@ -538,7 +588,11 @@ int kexec_locate_mem_hole(struct kexec_buf *kbuf) > if (kbuf->mem != KEXEC_BUF_MEM_UNKNOWN) > return 0; > > - ret = arch_kexec_walk_mem(kbuf, locate_mem_hole_callback); > + if (IS_ENABLED(CONFIG_HAVE_MEMBLOCK) && > + !IS_ENABLED(CONFIG_ARCH_DISCARD_MEMBLOCK)) > + ret = kexec_walk_memblock(kbuf, locate_mem_hole_callback); > + else > + ret = kexec_walk_resources(kbuf, locate_mem_hole_callback); > > return ret == 1 ? 0 : -EADDRNOTAVAIL; > } > -- > 2.19.0 > Thanks Dave _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec