On Mon, May 19, 2014 at 02:54:03AM +0100, Wang Nan wrote: > When SPARSEMEM and CRASH_DUMP both selected, simple pfn_valid prevents > the second kernel ioremap first kernel's memory if the address falls > into second kernel section. This limitation requires the second kernel > occupies a full section, and elfcorehdr must resides in another section. > > This patch makes crash dump kernel use strict pfn_valid, removes such > limitation. > > For example: > > For a platform with SECTION_SIZE_BITS == 28 (256MiB) and > crashkernel=128M at 0x28000000 in kernel cmdline, the second > kernel is loaded at 0x28000000. Kexec puts elfcorehdr at > 0x2ff00000, and passes 'elfcorehdr=0x2ff00000 mem=130048K' to > second kernel. When second kernel start, it tries to use > ioremap to retrive its elfcorehrd. In this case, elfcodehdr is at the > same section of the second kernel, pfn_valid will recongnize > the page as valid, so ioremap will refuse to map it. So isn't the issue here that you're passing an incorrect mem= parameter to the crash kernel? Will