Hello community,

here is the log from the commit of package crash for openSUSE:Factory checked 
in at 2019-02-25 18:01:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crash (Old)
 and      /work/SRC/openSUSE:Factory/.crash.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "crash"

Mon Feb 25 18:01:24 2019 rev:151 rq:678956 version:7.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/crash/crash.changes      2018-11-08 
09:50:46.524937983 +0100
+++ /work/SRC/openSUSE:Factory/.crash.new.28833/crash.changes   2019-02-25 
18:01:34.178072976 +0100
@@ -1,0 +2,9 @@
+Thu Feb 14 19:23:00 CET 2019 - [email protected]
+
+- With a xen 4.11 dump crash will fail to start reporting "cannot 
+  fill pcpu struct" and "cannot read cpu_info" due to xen changes 
+  not tracked by crash updates. Fixed by including:
+  crash-xen-invalid-pcpu-vaddr-use-hardware-domain-symbol.patch
+  (bsc#1122594)
+
+-------------------------------------------------------------------

New:
----
  crash-xen-invalid-pcpu-vaddr-use-hardware-domain-symbol.patch

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

Other differences:
------------------
++++++ crash.spec ++++++
--- /var/tmp/diff_new_pack.kkZe4R/_old  2019-02-25 18:01:37.878070002 +0100
+++ /var/tmp/diff_new_pack.kkZe4R/_new  2019-02-25 18:01:37.878070002 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package crash
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 # needssslcertforbuild
 
@@ -86,6 +86,7 @@
 Patch21:        %{name}-allow-use-of-sadump-captured-KASLR-kernel.patch
 Patch22:        %{name}-fix-snprintf-overflow.patch
 Patch23:        %{name}-update-recognition-of-x86_64-CPU_ENTRY_AREA.patch
+Patch24:        %{name}-xen-invalid-pcpu-vaddr-use-hardware-domain-symbol.patch
 Patch90:        %{name}-sial-ps-2.6.29.diff
 BuildRequires:  bison
 BuildRequires:  flex
@@ -284,6 +285,7 @@
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 %if %{have_snappy}
 %patch15 -p1
 %endif


++++++ crash-xen-invalid-pcpu-vaddr-use-hardware-domain-symbol.patch ++++++
Two fixes for the Xen hypervisor; the first fixes a bug seen
with Xen 4.11.0 during initialization, which fails with the error
message "crash: invalid kernel virtual address: <address> type:
fill_pcpu_struct", followed by "WARNING: cannot fill pcpu_struct"
and "crash: cannot read cpu_info".  The second fix prevents a
segmentation violation associated with a crash-7.1.1 commit that
addressed the Xen 4.5.0 hypervisor symbol name change from
"dom0" to "hardware_domain".
([email protected])

---

---
 x86_64.c    |    7 +++++--
 xen_hyper.c |    8 ++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

--- a/x86_64.c
+++ b/x86_64.c
@@ -7808,8 +7808,11 @@ x86_64_init_hyper(int when)
        case POST_GDB:
                XEN_HYPER_STRUCT_SIZE_INIT(cpuinfo_x86, "cpuinfo_x86");
                XEN_HYPER_STRUCT_SIZE_INIT(tss_struct, "tss_struct");
-               XEN_HYPER_ASSIGN_OFFSET(tss_struct_rsp0) = 
MEMBER_OFFSET("tss_struct", "__blh") + sizeof(short unsigned int);
-               XEN_HYPER_MEMBER_OFFSET_INIT(tss_struct_ist, "tss_struct", 
"ist");
+               if (MEMBER_EXISTS("tss_struct", "__blh")) {
+                       XEN_HYPER_ASSIGN_OFFSET(tss_struct_rsp0) = 
MEMBER_OFFSET("tss_struct", "__blh") + sizeof(short unsigned int);
+               } else {
+                       XEN_HYPER_ASSIGN_OFFSET(tss_struct_rsp0) = 
MEMBER_OFFSET("tss_struct", "rsp0");
+               }               XEN_HYPER_MEMBER_OFFSET_INIT(tss_struct_ist, 
"tss_struct", "ist");
                if (symbol_exists("cpu_data")) {
                        xht->cpu_data_address = symbol_value("cpu_data");
                }
--- a/xen_hyper.c
+++ b/xen_hyper.c
@@ -1060,8 +1060,8 @@ xen_hyper_get_domains(void)
        long domain_next_in_list;
        int i, j;
 
-       if (!try_get_symbol_data("dom0", sizeof(void *), &domain))
-               get_symbol_data("hardware_domain", sizeof(void *), &domain);
+       if (!try_get_symbol_data("hardware_domain", sizeof(void *), &domain))
+               get_symbol_data("dom0", sizeof(void *), &domain);
 
        domain_next_in_list = MEMBER_OFFSET("domain", "next_in_list");
        i = 0;
@@ -1103,8 +1103,8 @@ xen_hyper_get_domain_next(int mod, ulong
                if (xhdt->dom0) {
                        *next = xhdt->dom0->domain;
                } else {
-                       if (!try_get_symbol_data("dom0", sizeof(void *), next))
-                               get_symbol_data("hardware_domain", sizeof(void 
*), next);
+                       if (!try_get_symbol_data("hardware_domain", sizeof(void 
*), next))
+                               get_symbol_data("dom0", sizeof(void *), next);
                }
                return xhdt->domain_struct;
                break;

Reply via email to