diff options
author | Laurent Dufour <ldufour@linux.vnet.ibm.com> | 2014-02-24 20:30:55 +0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-02-28 11:06:25 +0400 |
commit | f5295bd8ea8a65dc5eac608b151386314cb978f1 (patch) | |
tree | 826f84e36044824ce00d8af118afc720078e37e8 /arch/unicore32/mm/mm.h | |
parent | 41dd03a94c7d408d2ef32530545097f7d1befe5c (diff) | |
download | linux-f5295bd8ea8a65dc5eac608b151386314cb978f1.tar.xz |
powerpc/crashdump : Fix page frame number check in copy_oldmem_page
In copy_oldmem_page, the current check using max_pfn and min_low_pfn to
decide if the page is backed or not, is not valid when the memory layout is
not continuous.
This happens when running as a QEMU/KVM guest, where RTAS is mapped higher
in the memory. In that case max_pfn points to the end of RTAS, and a hole
between the end of the kdump kernel and RTAS is not backed by PTEs. As a
consequence, the kdump kernel is crashing in copy_oldmem_page when accessing
in a direct way the pages in that hole.
This fix relies on the memblock's service memblock_is_region_memory to
check if the read page is part or not of the directly accessible memory.
Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Tested-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
CC: <stable@vger.kernel.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/unicore32/mm/mm.h')
0 files changed, 0 insertions, 0 deletions