Hello community,

here is the log from the commit of package kexec-tools for openSUSE:Factory 
checked in at 2014-05-02 19:21:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kexec-tools (Old)
 and      /work/SRC/openSUSE:Factory/.kexec-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kexec-tools"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kexec-tools/kexec-tools.changes  2014-03-31 
20:43:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kexec-tools.new/kexec-tools.changes     
2014-05-02 19:21:33.000000000 +0200
@@ -1,0 +2,16 @@
+Thu May  1 17:47:36 UTC 2014 - [email protected]
+
+- Device tree values should be big endian for ppc64le (bnc#875485)
+  New patch: 
kexec-tools-ppc64-purgatory-device-tree-values-should-be-read-stored-in-big-endian.patch
+
+-------------------------------------------------------------------
+Fri Apr 11 18:08:41 UTC 2014 - [email protected]
+
+- Expose flattened device trees (ppc64le) to new kexec'd kernel in Big Endian
+  format (bnc#873169)
+    New patch: 
kexec-tools-fs2dt-fix-endianess-issue-with-initrd-base-and-size.patch
+- Update patch headers to reflect upstream commit id's:
+    Change patch: 
kexec-tools-ppc64-purgatory-disabling-gcc-stack-protection.patch
+    Change patch: kexec-tools-zero-efi-info.patch
+
+-------------------------------------------------------------------
@@ -5,2 +21,2 @@
-  New patch: kexec-tools-ppc64-purgatory-disabling-gcc-stack-protection.patch_
-- Disable erroneous (efi memory descriptor version message (bnc#867785c5)
+  New patch: kexec-tools-ppc64-purgatory-disabling-gcc-stack-protection.patch
+- Disable erroneous (efi memory descriptor version) message (bnc#867785c5)

New:
----
  kexec-tools-fs2dt-fix-endianess-issue-with-initrd-base-and-size.patch
  
kexec-tools-ppc64-purgatory-device-tree-values-should-be-read-stored-in-big-endian.patch

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

Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.LOv7gG/_old  2014-05-02 19:21:34.000000000 +0200
+++ /var/tmp/diff_new_pack.LOv7gG/_new  2014-05-02 19:21:34.000000000 +0200
@@ -42,6 +42,8 @@
 Patch7:         %{name}-i386-bzimage_efi.patch
 Patch8:         %{name}-ppc64-purgatory-disabling-gcc-stack-protection.patch
 Patch9:         %{name}-zero-efi-info.patch
+Patch10:        
%{name}-fs2dt-fix-endianess-issue-with-initrd-base-and-size.patch
+Patch11:        
%{name}-ppc64-purgatory-device-tree-values-should-be-read-stored-in-big-endian.patch
 Url:            
ftp://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #!BuildIgnore:  fop
@@ -71,6 +73,8 @@
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
 
 %build
 # disable as-needed

++++++ kexec-tools-fs2dt-fix-endianess-issue-with-initrd-base-and-size.patch 
++++++
From: Laurent Dufour <[email protected]>
Subject: [PATCH] kexec/fs2dt : Fix endianess issue with initrd base and size
Date: Fri, 11 Apr 2014 12:10:30 +0200
Git-commit: db3c32babc5279816344be8210ca91a64331f0fe
References: bnc#873169
Signed-off-by: Tony Jones <[email protected]>

The initrd values exposed in the device tree of the kexeced kernel must be
encoded in Big Endian format.

Without this patch, kexeced LE kernel are expected to panic when dealing
with the initrd image.

Signed-off-by: Laurent Dufour <[email protected]>
---
 kexec/fs2dt.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c
index 5e6b98d..2a90979 100644
--- a/kexec/fs2dt.c
+++ b/kexec/fs2dt.c
@@ -531,7 +531,7 @@ static void putnode(void)
        /* Add initrd entries to the second kernel */
        if (initrd_base && initrd_size && !strcmp(basename,"chosen/")) {
                int len = 8;
-               unsigned long long initrd_end;
+               uint64_t bevalue;
 
                dt_reserve(&dt, 12); /* both props, of 6 words ea. */
                *dt++ = cpu_to_be32(3);
@@ -539,7 +539,8 @@ static void putnode(void)
                *dt++ = cpu_to_be32(propnum("linux,initrd-start"));
                pad_structure_block(len);
 
-               memcpy(dt,&initrd_base,len);
+               bevalue = cpu_to_be64(initrd_base);
+               memcpy(dt, &bevalue, len);
                dt += (len + 3)/4;
 
                len = 8;
@@ -547,10 +548,10 @@ static void putnode(void)
                *dt++ = cpu_to_be32(len);
                *dt++ = cpu_to_be32(propnum("linux,initrd-end"));
 
-               initrd_end = initrd_base + initrd_size;
+               bevalue = cpu_to_be64(initrd_base + initrd_size);
                pad_structure_block(len);
 
-               memcpy(dt,&initrd_end,len);
+               memcpy(dt, &bevalue, len);
                dt += (len + 3)/4;
 
                reserve(initrd_base, initrd_size);
++++++ 
kexec-tools-ppc64-purgatory-device-tree-values-should-be-read-stored-in-big-endian.patch
 ++++++
From: Laurent Dufour <[email protected]>
Subject: ppc64/purgatory: Device tree values should be read/stored in Big Endian
References: bnc#875485
Git-commit: pending
Signed-off-by: Tony Jones <[email protected]>

The purgatory code reads the device tree's version and stores if needed the
currently running CPU number. These 2 values are stored in Big Endian
format in the device tree and should be byte swapped when running in Little
Endian mode.

Without this fix, when running in SMP environment, kexec or kdump kernel may
fail booting with the following message :
Failed to identify boot CPU

Signed-off-by: Laurent Dufour <[email protected]>
---
 purgatory/arch/ppc64/v2wrap.S |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/purgatory/arch/ppc64/v2wrap.S b/purgatory/arch/ppc64/v2wrap.S
index 6fc62e3..dc5034f 100644
--- a/purgatory/arch/ppc64/v2wrap.S
+++ b/purgatory/arch/ppc64/v2wrap.S
@@ -90,10 +90,20 @@ master:
        LOADADDR(16, dt_offset)
        ld      3,0(16)         # load device-tree address
        mr      16,3            # save dt address in reg16
+#ifdef __BIG_ENDIAN__
        lwz     6,20(3)         # fetch version number
+#else
+       li      4,20
+       lwbrx   6,3,4           # fetch BE version number
+#endif
        cmpwi   0,6,2           # v2 ?
        blt     80f
+#ifdef __BIG_ENDIAN__
        stw     17,28(3)        # save my cpu number as boot_cpu_phys
+#else
+       li      4,28
+       stwbrx  17,3,4          # Store my cpu as BE value
+#endif
 80:
        LOADADDR(6,opal_base)   # For OPAL early debug
        ld      8,0(6)          # load the OPAL base address in r8
++++++ kexec-tools-ppc64-purgatory-disabling-gcc-stack-protection.patch ++++++
--- /var/tmp/diff_new_pack.LOv7gG/_old  2014-05-02 19:21:34.000000000 +0200
+++ /var/tmp/diff_new_pack.LOv7gG/_new  2014-05-02 19:21:34.000000000 +0200
@@ -1,6 +1,9 @@
 From: Laurent Dufour <[email protected]>
 Date: Tue, 25 Mar 2014 10:55:53 +0100
 Subject: [PATCH] ppc64/purgatory: Disabling GCC's stack protection
+Git-commit: 7d33c8933ebf8e1788ffff0132b6e08a2388748c
+References: bnc#869161
+Signed-off-by: Tony Jones <[email protected]>
 
 Some Linux distributions, like Suse, are turning on the GCC's stack
 protection mechanism by default (-fstack-protector). When building the

++++++ kexec-tools-zero-efi-info.patch ++++++
--- /var/tmp/diff_new_pack.LOv7gG/_old  2014-05-02 19:21:34.000000000 +0200
+++ /var/tmp/diff_new_pack.LOv7gG/_new  2014-05-02 19:21:34.000000000 +0200
@@ -1,7 +1,8 @@
 From: Tony Jones <[email protected]>
 Subject: Disable erroneous efi memory descriptor version message 
 References: bnc#867785c5
-Upstream: not yet
+Git-commit: 3e5443fffb2c311a61fe157be25b80de53329604
+Signed-off-by: Tony Jones <[email protected]>
  
 On non-EFI systems, efi_info section of boot_params is zero filled resulting 
 in an erroneous message from kexec regarding "efi memory descriptor" version.

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to