Hello community,

here is the log from the commit of package makedumpfile for openSUSE:Leap:15.2 
checked in at 2020-06-08 13:44:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/makedumpfile (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.makedumpfile.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "makedumpfile"

Mon Jun  8 13:44:31 2020 rev:51 rq:811969 version:1.6.7

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/makedumpfile/makedumpfile.changes      
2020-04-14 14:20:24.361248735 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.makedumpfile.new.3606/makedumpfile.changes    
2020-06-08 13:44:33.087057431 +0200
@@ -1,0 +2,6 @@
+Thu Jun  4 09:57:15 UTC 2020 - Petr Tesařík <[email protected]>
+
+- makedumpfile-sadump-Fix-failure-of-reading.patch: sadump: Fix
+  failure of reading __per_cpu_load memory (bsc#1168798).
+
+-------------------------------------------------------------------

New:
----
  makedumpfile-sadump-Fix-failure-of-reading.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ makedumpfile.spec ++++++
--- /var/tmp/diff_new_pack.D23TC5/_old  2020-06-08 13:44:33.467058394 +0200
+++ /var/tmp/diff_new_pack.D23TC5/_new  2020-06-08 13:44:33.467058394 +0200
@@ -45,6 +45,7 @@
 Patch3:         %{name}-PN_XNUM.patch
 Patch4:         %{name}-arm64-Align-PMD_SECTION_MASK-with-PHYS_MASK.patch
 Patch5:         %{name}-Fix-cd_header-offset-overflow-with-large-pfn.patch
+Patch6:         %{name}-sadump-Fix-failure-of-reading.patch
 BuildRequires:  libdw-devel
 BuildRequires:  libelf-devel
 BuildRequires:  libeppic-devel

++++++ makedumpfile-sadump-Fix-failure-of-reading.patch ++++++
From: "[email protected]" <[email protected]>
Date: Thu, 21 May 2020 07:15:19 +0000
Subject: sadump: Fix failure of reading __per_cpu_load memory
References: bsc#1168798
Upstream: merged
Git-commit: c9e078531efaffbe6f780221d40bdac21a84855b

Creating vmcore from sadump by makedumpfile fails with the following
error messages since kernel-4.19 with PTI (Page Table Isolation)
enabled:

  __vtop4_x86_64: Can't get a valid pte.
  readmem: Can't convert a virtual address(ffffffffb2986000) to physical 
address.
  readmem: type_addr: 0, addr:ffffffffb2986000, size:8
  per_cpu_init: Can't read __per_cpu_load memory.

This is caused by the following patch:
https://github.com/torvalds/linux/commit/c40a56a7818cfe735fc93a69e1875f8bba834483

The above patch clears _PAGE_PRESENT bit of __per_cpu_load memory, so
__vtop4_x86_64 fails to convert the virtual address of the
__per_cpu_load.

To fix this issue, this patch changes sanity check of per_cpu_ptr()
to use address of the __per_cpu_load instead of data of the memory.

Signed-off-by: Kazuya Saito <[email protected]>
Signed-off-by: Kiyotaka Nakamura <[email protected]>
---
 sadump_info.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sadump_info.c b/sadump_info.c
index 46867ce..72a077b 100644
--- a/sadump_info.c
+++ b/sadump_info.c
@@ -1732,11 +1732,11 @@ per_cpu_init(void)
                return FALSE;
        }
 
-       if (!readmem(VADDR, SYMBOL(__per_cpu_load), &si->__per_cpu_load,
-                    sizeof(unsigned long))) {
-               ERRMSG("Can't read __per_cpu_load memory.\n");
+       if (SYMBOL(__per_cpu_load) == NOT_FOUND_SYMBOL) {
+               ERRMSG("Can't find __per_cpu_load symbol.\n");
                return FALSE;
        }
+       si->__per_cpu_load = SYMBOL(__per_cpu_load);
 
        DEBUG_MSG("sadump: __per_cpu_load: %#lx\n", si->__per_cpu_load);
        DEBUG_MSG("sadump: __per_cpu_offset: LENGTH: %ld\n",
-- 
2.26.2


Reply via email to