Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package crash for openSUSE:Factory checked 
in at 2021-06-26 21:25:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crash (Old)
 and      /work/SRC/openSUSE:Factory/.crash.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "crash"

Sat Jun 26 21:25:31 2021 rev:176 rq:902426 version:7.2.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/crash/crash.changes      2021-04-27 
21:35:59.384114904 +0200
+++ /work/SRC/openSUSE:Factory/.crash.new.2625/crash.changes    2021-06-26 
21:25:58.895384386 +0200
@@ -1,0 +2,14 @@
+Fri Jun 25 18:27:35 UTC 2021 - David Mair <dm...@suse.com>
+
+- Kernel commit 5c83511bdb9832c86be20fb86b783356e2f58062 removed
+  pv_init_ops, and commit 054ac8ad5ebe4a69e1f0e842483821ddbe560121
+  removed the Xen-specific paravirt patch function. As a result,
+  pvops Xen dumps are no longer recognized as Xen dumps, and
+  virtual-to-physical translation fails.
+
+  Use the value of xen_start_info to determine whether the kernel
+  is running in Xen PV mode. As suggested by Juergen Gross.
+  (bsc#1187634)
+  + crash-xen-pvops.patch
+
+-------------------------------------------------------------------

New:
----
  crash-xen-pvops.patch

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

Other differences:
------------------
++++++ crash.spec ++++++
--- /var/tmp/diff_new_pack.WgVc2M/_old  2021-06-26 21:25:59.859385659 +0200
+++ /var/tmp/diff_new_pack.WgVc2M/_new  2021-06-26 21:25:59.859385659 +0200
@@ -97,6 +97,7 @@
 Patch44:        %{name}-printk-use-committed-finalized-state-values.patch
 # PATCH-FIX-UPSTREAM - 
https://github.com/crash-utility/crash/commit/9c881ab372010b46655dfed0a3c5cd78b3ff8fa0.patch
 Patch45:        %{name}-x86_64-VC-exception-stack-support.patch
+Patch46:        %{name}-xen-pvops.patch
 Patch90:        %{name}-sial-ps-2.6.29.diff
 BuildRequires:  bison
 BuildRequires:  flex
@@ -299,6 +300,7 @@
 %patch43 -p1
 %patch44 -p1
 %patch45 -p1
+%patch46 -p1
 %if %{have_snappy}
 %patch15 -p1
 %endif


++++++ crash-xen-pvops.patch ++++++
Index: b/kernel.c
===================================================================
--- a/kernel.c
+++ b/kernel.c
@@ -95,6 +95,7 @@ static ulong __dump_audit(char *);
 static void dump_audit(void);
 static char *vmcoreinfo_read_string(const char *);
 static void check_vmcoreinfo(void);
+static int is_pvops_xen(void);
 
 
 /*
@@ -109,7 +110,6 @@ kernel_init()
        char *rqstruct;
        char *rq_timestamp_name = NULL;
        char *irq_desc_type_name;       
-       ulong pv_init_ops;
        struct gnu_request req;
 
        if (pc->flags & KERNEL_DEBUG_QUERY)
@@ -169,11 +169,7 @@ kernel_init()
                                error(FATAL, "cannot malloc m2p page.");
        }
 
-       if (PVOPS() && symbol_exists("pv_init_ops") &&
-           readmem(symbol_value("pv_init_ops"), KVADDR, &pv_init_ops,
-           sizeof(void *), "pv_init_ops", RETURN_ON_ERROR) &&
-           (p1 = value_symbol(pv_init_ops)) && 
-           STREQ(p1, "xen_patch")) {
+       if (is_pvops_xen()) {
                kt->flags |= ARCH_XEN | ARCH_PVOPS_XEN;
                kt->xen_flags |= WRITABLE_PAGE_TABLES;
                if (machine_type("X86"))
@@ -10690,6 +10686,32 @@ paravirt_init(void)
        }
 }
 
+static int
+is_pvops_xen(void)
+{
+       ulong addr;
+       char *sym;
+
+       if (!PVOPS())
+               return FALSE;
+
+       if (symbol_exists("pv_init_ops") &&
+           readmem(symbol_value("pv_init_ops"), KVADDR, &addr,
+           sizeof(void *), "pv_init_ops", RETURN_ON_ERROR) &&
+           (sym = value_symbol(addr)) &&
+           (STREQ(sym, "xen_patch") ||
+            STREQ(sym, "paravirt_patch_default")))
+               return TRUE;
+
+       if (symbol_exists("xen_start_info") &&
+           readmem(symbol_value("xen_start_info"), KVADDR, &addr,
+           sizeof(void *), "xen_start_info", RETURN_ON_ERROR) &&
+           addr != 0)
+               return TRUE;
+
+       return FALSE;
+}
+
 /*
  *  Get the kernel's xtime timespec from its relevant location.
  */

Reply via email to