Accepting request 540421 from home:lzwang:branches:Kernel:kdump
- Handled renaming of init_level4_pgt to init_top_pgt (bsc#1066770). * Added patch: handle-renamed-init_level4_pgt-init_top_pgt.patch OBS-URL: https://build.opensuse.org/request/show/540421 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/makedumpfile?expand=0&rev=108
This commit is contained in:
parent
feebaa4ace
commit
7f1eebe5f3
113
makedumpfile-handle-renamed-init_level4_pgt-init_top_pgt.patch
Normal file
113
makedumpfile-handle-renamed-init_level4_pgt-init_top_pgt.patch
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
From: Jeff Mahoney <jeffm@suse.com>
|
||||||
|
Subject: handle renamed init_level4_pgt -> init_top_pgt
|
||||||
|
Patch-mainline: Submitted to kexec-ml, 6 Nov 2017
|
||||||
|
References: bsc#1066770
|
||||||
|
|
||||||
|
Linux 4.13 renamed init_level4_pgt to init_top_pgt in preparation for
|
||||||
|
introducing 5-level page tables. This patch follows the rename if
|
||||||
|
the lookup for init_level4_pgt fails. It also checks to see if
|
||||||
|
5-level page tables are enabled and bails if it discovers they are.
|
||||||
|
|
||||||
|
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
||||||
|
---
|
||||||
|
arch/x86_64.c | 24 +++++++++++++++++++++---
|
||||||
|
makedumpfile.c | 6 ++++++
|
||||||
|
makedumpfile.h | 2 ++
|
||||||
|
3 files changed, 29 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/x86_64.c b/arch/x86_64.c
|
||||||
|
index 08dd6b2..9b09035 100644
|
||||||
|
--- a/arch/x86_64.c
|
||||||
|
+++ b/arch/x86_64.c
|
||||||
|
@@ -259,16 +259,26 @@ vtop4_x86_64(unsigned long vaddr)
|
||||||
|
{
|
||||||
|
unsigned long page_dir, pml4, pgd_paddr, pgd_pte, pmd_paddr, pmd_pte;
|
||||||
|
unsigned long pte_paddr, pte;
|
||||||
|
+ unsigned long init_level4_pgt;
|
||||||
|
|
||||||
|
- if (SYMBOL(init_level4_pgt) == NOT_FOUND_SYMBOL) {
|
||||||
|
+ if (SYMBOL(init_level4_pgt) != NOT_FOUND_SYMBOL)
|
||||||
|
+ init_level4_pgt = SYMBOL(init_level4_pgt);
|
||||||
|
+ else if (SYMBOL(init_top_pgt) != NOT_FOUND_SYMBOL)
|
||||||
|
+ init_level4_pgt = SYMBOL(init_top_pgt);
|
||||||
|
+ else {
|
||||||
|
ERRMSG("Can't get the symbol of init_level4_pgt.\n");
|
||||||
|
return NOT_PADDR;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (SYMBOL(level4_kernel_pgt) != NOT_FOUND_SYMBOL) {
|
||||||
|
+ ERRMSG("Kernel is built with 5-level page tables\n");
|
||||||
|
+ return NOT_PADDR;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Get PGD.
|
||||||
|
*/
|
||||||
|
- page_dir = SYMBOL(init_level4_pgt) - __START_KERNEL_map + info->phys_base;
|
||||||
|
+ page_dir = init_level4_pgt - __START_KERNEL_map + info->phys_base;
|
||||||
|
if (is_xen_memory()) {
|
||||||
|
page_dir = ptom_xen(page_dir);
|
||||||
|
if (page_dir == NOT_PADDR)
|
||||||
|
@@ -549,8 +559,16 @@ find_vmemmap_x86_64()
|
||||||
|
struct vmap_pfns *vmapp, *vmaphead = NULL, *cur, *tail;
|
||||||
|
|
||||||
|
init_level4_pgt = SYMBOL(init_level4_pgt);
|
||||||
|
+ if (init_level4_pgt == NOT_FOUND_SYMBOL)
|
||||||
|
+ init_level4_pgt = SYMBOL(init_top_pgt);
|
||||||
|
+
|
||||||
|
if (init_level4_pgt == NOT_FOUND_SYMBOL) {
|
||||||
|
- ERRMSG("init_level4_pgt not found\n");
|
||||||
|
+ ERRMSG("init_level4_pgt/init_top_pgt not found\n");
|
||||||
|
+ return FAILED;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (SYMBOL(level4_kernel_pgt) != NOT_FOUND_SYMBOL) {
|
||||||
|
+ ERRMSG("kernel is configured for 5-level page tables\n");
|
||||||
|
return FAILED;
|
||||||
|
}
|
||||||
|
pagestructsize = size_table.page;
|
||||||
|
diff --git a/makedumpfile.c b/makedumpfile.c
|
||||||
|
index f85003a..6e5ec34 100644
|
||||||
|
--- a/makedumpfile.c
|
||||||
|
+++ b/makedumpfile.c
|
||||||
|
@@ -1486,6 +1486,8 @@ get_symbol_info(void)
|
||||||
|
SYMBOL_INIT(_stext, "_stext");
|
||||||
|
SYMBOL_INIT(swapper_pg_dir, "swapper_pg_dir");
|
||||||
|
SYMBOL_INIT(init_level4_pgt, "init_level4_pgt");
|
||||||
|
+ SYMBOL_INIT(level4_kernel_pgt, "level4_kernel_pgt");
|
||||||
|
+ SYMBOL_INIT(init_top_pgt, "init_top_pgt");
|
||||||
|
SYMBOL_INIT(vmlist, "vmlist");
|
||||||
|
SYMBOL_INIT(vmap_area_list, "vmap_area_list");
|
||||||
|
SYMBOL_INIT(node_online_map, "node_online_map");
|
||||||
|
@@ -2105,6 +2107,8 @@ write_vmcoreinfo_data(void)
|
||||||
|
WRITE_SYMBOL("_stext", _stext);
|
||||||
|
WRITE_SYMBOL("swapper_pg_dir", swapper_pg_dir);
|
||||||
|
WRITE_SYMBOL("init_level4_pgt", init_level4_pgt);
|
||||||
|
+ WRITE_SYMBOL("level4_kernel_pgt", level4_kernel_pgt);
|
||||||
|
+ WRITE_SYMBOL("init_top_pgt", init_top_pgt);
|
||||||
|
WRITE_SYMBOL("vmlist", vmlist);
|
||||||
|
WRITE_SYMBOL("vmap_area_list", vmap_area_list);
|
||||||
|
WRITE_SYMBOL("node_online_map", node_online_map);
|
||||||
|
@@ -2500,6 +2504,8 @@ read_vmcoreinfo(void)
|
||||||
|
READ_SYMBOL("_stext", _stext);
|
||||||
|
READ_SYMBOL("swapper_pg_dir", swapper_pg_dir);
|
||||||
|
READ_SYMBOL("init_level4_pgt", init_level4_pgt);
|
||||||
|
+ READ_SYMBOL("level4_kernel_pgt", level4_kernel_pgt);
|
||||||
|
+ READ_SYMBOL("init_top_pgt", init_top_pgt);
|
||||||
|
READ_SYMBOL("vmlist", vmlist);
|
||||||
|
READ_SYMBOL("vmap_area_list", vmap_area_list);
|
||||||
|
READ_SYMBOL("node_online_map", node_online_map);
|
||||||
|
diff --git a/makedumpfile.h b/makedumpfile.h
|
||||||
|
index 8a05794..9357e47 100644
|
||||||
|
--- a/makedumpfile.h
|
||||||
|
+++ b/makedumpfile.h
|
||||||
|
@@ -1517,6 +1517,8 @@ struct symbol_table {
|
||||||
|
unsigned long long _stext;
|
||||||
|
unsigned long long swapper_pg_dir;
|
||||||
|
unsigned long long init_level4_pgt;
|
||||||
|
+ unsigned long long level4_kernel_pgt;
|
||||||
|
+ unsigned long long init_top_pgt;
|
||||||
|
unsigned long long vmlist;
|
||||||
|
unsigned long long vmap_area_list;
|
||||||
|
unsigned long long phys_base;
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 10 17:01:33 HKT 2017 - lzwang@suse.com
|
||||||
|
|
||||||
|
- Handled renaming of init_level4_pgt to init_top_pgt (bsc#1066770).
|
||||||
|
* Added patch: handle-renamed-init_level4_pgt-init_top_pgt.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 9 12:16:29 UTC 2017 - jslaby@suse.com
|
Thu Nov 9 12:16:29 UTC 2017 - jslaby@suse.com
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ Source99: %{name}-rpmlintrc
|
|||||||
Patch0: %{name}-coptflags.diff
|
Patch0: %{name}-coptflags.diff
|
||||||
Patch1: %{name}-Fix-SECTION_MAP_MASK-for-kernel-v.13.patch
|
Patch1: %{name}-Fix-SECTION_MAP_MASK-for-kernel-v.13.patch
|
||||||
Patch2: %{name}-override-libtinfo.patch
|
Patch2: %{name}-override-libtinfo.patch
|
||||||
|
Patch3: %{name}-handle-renamed-init_level4_pgt-init_top_pgt.patch
|
||||||
BuildRequires: libdw-devel
|
BuildRequires: libdw-devel
|
||||||
BuildRequires: libebl-devel
|
BuildRequires: libebl-devel
|
||||||
BuildRequires: libelf-devel
|
BuildRequires: libelf-devel
|
||||||
@ -70,6 +71,7 @@ via gdb or crash utility.
|
|||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{have_snappy}
|
%if %{have_snappy}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user