Hello Dave, Thanks for the quick review and for your comments. I'll separate the change to add arch_walk_system_ram and the change to add kexec_locate_mem_hole into different patches, and add error handling for KEXEC_ON_CRASH. Am Montag, 13 Juni 2016, 15:29:39 schrieb Dave Young: > On 06/12/16 at 12:10am, Thiago Jung Bauermann wrote: > > Allow architectures to specify different memory walking functions for > > kexec_add_buffer. Intel uses iomem to track reserved memory ranges, > > but PowerPC uses the memblock subsystem. > > Can the crashk_res be inserted to iomem_resource so that only one > weak function for system ram is needed? Sorry, it's not clear to me what you mean by inserting crashk_res into iomem_resource, but I can add a bool for_crashkernel to arch_walk_system_ram so that it can decide which kind of memory to traverse, so the default implementation of kexec_file.c would be: int __weak arch_walk_system_ram(bool for_crashkernel, unsigned long start, unsigned long end, bool top_down, void *data, int (*func)(u64, u64, void *)) { int ret; if (for_crashkernel) ret = walk_iomem_res_desc(crashk_res.desc, IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY, start, end, data, func); else ret = walk_system_ram_res(start, end, data, func); if (ret != 1) { /* A suitable memory range could not be found for buffer */ return -EADDRNOTAVAIL; } } and kexec_add_buffer / kexec_locate_mem_hole would call it with: if (image->type == KEXEC_TYPE_CRASH) ret = arch_walk_system_ram(true, crashk_res.start, crashk_res.end, top_down, &buf, locate_mem_hole_callback); else ret = arch_walk_system_ram(false, 0, -1, top_down, &buf, locate_mem_hole_callback); What do you think? -- []'s Thiago Jung Bauermann IBM Linux Technology Center