diff --git a/kexec-tools-2.0.13-makedumpfile-x86_64-fix-page_offset-calculation.patch b/kexec-tools-2.0.13-makedumpfile-x86_64-fix-page_offset-calculation.patch new file mode 100644 index 0000000..3b021de --- /dev/null +++ b/kexec-tools-2.0.13-makedumpfile-x86_64-fix-page_offset-calculation.patch @@ -0,0 +1,32 @@ +From 0ebcd6f3570dd66bff0930872b8bf859bdcf302a Mon Sep 17 00:00:00 2001 +Message-Id: <0ebcd6f3570dd66bff0930872b8bf859bdcf302a.1477548646.git.panand@redhat.com> +From: Pratyush Anand +Date: Thu, 27 Oct 2016 11:34:33 +0530 +Subject: [PATCH] x86_64: fix page_offset calculation + +Kernel text region lies above __START_KERNEL_map, which is linearly mapped +however not a direct mapping. Direct mapping region lies below it instead. +So, page_offset can only be calculated with a region which is below +__START_KERNEL_map. + +Signed-off-by: Pratyush Anand +--- + arch/x86_64.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86_64.c b/arch/x86_64.c +index 13990cef839b..3ef33ae4ef2d 100644 +--- a/makedumpfile-1.6.0/arch/x86_64.c ++++ b/makedumpfile-1.6.0/arch/x86_64.c +@@ -41,7 +41,7 @@ get_page_offset_x86_64(void) + unsigned long long virt_start; + + for (i = 0; get_pt_load(i, &phys_start, NULL, &virt_start, NULL); i++) { +- if (virt_start >= __START_KERNEL_map) { ++ if (virt_start < __START_KERNEL_map) { + info->page_offset = virt_start - phys_start; + return TRUE; + } +-- +2.7.4 + diff --git a/kexec-tools.spec b/kexec-tools.spec index e246d66..b0d29d2 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -96,6 +96,7 @@ Patch604: kexec-tools-2.0.13-makedumpfile-x86-64-calculate-page-offset-from-pt-l Patch605: kexec-tools-2.0.13-makedumpfile-x86-64-translate-all-VA-to-PA-using-page-table-values.patch Patch606: kexec-tools-2.0.13-makedumpfile-x86-64-kill-is-vmalloc-addr-x86-64.patch Patch607: kexec-tools-2.0.13-makedumpfile-x86-64-kill-some-unused-initialization.patch +Patch608: kexec-tools-2.0.13-makedumpfile-x86_64-fix-page_offset-calculation.patch %description kexec-tools provides /sbin/kexec binary that facilitates a new @@ -131,6 +132,7 @@ tar -z -x -v -f %{SOURCE23} %patch605 -p1 %patch606 -p1 %patch607 -p1 +%patch608 -p1 %ifarch ppc %define archdef ARCH=ppc