Hello community,

here is the log from the commit of package skiboot for openSUSE:Factory checked 
in at 2019-02-13 10:04:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/skiboot (Old)
 and      /work/SRC/openSUSE:Factory/.skiboot.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "skiboot"

Wed Feb 13 10:04:37 2019 rev:13 rq:673570 version:5.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/skiboot/skiboot.changes  2019-02-01 
11:48:25.880368507 +0100
+++ /work/SRC/openSUSE:Factory/.skiboot.new.28833/skiboot.changes       
2019-02-13 10:04:50.585569369 +0100
@@ -1,0 +2,6 @@
+Mon Feb 11 15:35:26 UTC 2019 - Michal Suchanek <[email protected]>
+
+- Fix opal-prd crash when building with -pie (bsc#1124931).
+  - add opal-prd-Fix-opal-prd-crash.patch
+
+-------------------------------------------------------------------

New:
----
  opal-prd-Fix-opal-prd-crash.patch

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

Other differences:
------------------
++++++ skiboot.spec ++++++
--- /var/tmp/diff_new_pack.BgsX9s/_old  2019-02-13 10:04:51.873569045 +0100
+++ /var/tmp/diff_new_pack.BgsX9s/_new  2019-02-13 10:04:51.877569044 +0100
@@ -28,6 +28,7 @@
 Source:         skiboot-%{version}.tar.gz
 Patch1:         hdata-i2c.c-fix-building-with-gcc8.patch
 Patch2:         libffs-fix-string-truncation.patch
+Patch3:         opal-prd-Fix-opal-prd-crash.patch
 BuildRequires:  libopenssl-devel
 BuildRequires:  linux-glibc-devel
 BuildRequires:  systemd-rpm-macros

++++++ opal-prd-Fix-opal-prd-crash.patch ++++++
>From ff576aa8187b47f61f902b6a097693d00c937d4c Mon Sep 17 00:00:00 2001
From: Vasant Hegde <[email protected]>
Date: Mon, 30 Jul 2018 15:28:46 +0530
Subject: [PATCH] opal-prd: Fix opal-prd crash

Patch-mainline: v6.2-rc1
Git-commit: ff576aa8187b47f61f902b6a097693d00c937d4c

Presently callback function from HBRT uses r11 to point to target function
pointer. r12 is garbage. This works fine when we compile with "-no-pie" option
(as we don't use r12 to calculate TOC).

As per ABIv2 : "r12 : Function entry address at global entry point"

With "-pie" compilation option, we have to set r12 to point to global function
entry point. So that we can calculate TOC properly.

Crash log without this patch:
  opal-prd[2864]: unhandled signal 11 at 0000000000029320 nip 00000 00102012830 
lr 0000000102016890 code 1

Signed-off-by: Vasant Hegde <[email protected]>
CC: Jeremy Kerr <[email protected]>
CC: Mahesh Salgaonkar <[email protected]>
Acked-by: Jeremy Kerr <[email protected]>
Reviewed-by: Mahesh Salgaonkar <[email protected]>
Signed-off-by: Stewart Smith <[email protected]>
---
 external/opal-prd/thunk.S | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/external/opal-prd/thunk.S b/external/opal-prd/thunk.S
index e09cef940099..d0ccd6491805 100644
--- a/external/opal-prd/thunk.S
+++ b/external/opal-prd/thunk.S
@@ -119,7 +119,7 @@ call_le:
        std %r0,(32+16)(%r1)
 
        /* Branch to original function */
-       mtlr    %r11
+       mtlr    %r12
        blrl
 
        /* Restore stack and LR */
@@ -137,7 +137,7 @@ call_le:
        /* Callback from HBRT. There is one entry point per function.
         *
         * We assume the proper r2 is already set via the OPD, so we grab our
-        * target function pointer in r11 and jump to call_le
+        * target function pointer in r12 and jump to call_le
         */
 #define CALLBACK_THUNK(name)                                                   
 \
        .pushsection ".text","ax"                                               
;\
@@ -146,7 +146,7 @@ name##_thunk:                                               
                        ;\
        .long 0x00000038 | le_si16(__NR_switch_endian)                          
;\
                        /* byteswapped li %r0,__NR_switch_endian */             
;\
        .long 0x02000044 /* byteswapped sc */                                   
;\
-       ld %r11,name@got(%r2)                                                   
;\
+       ld %r12,name@got(%r2)                                                   
;\
        b call_le                                                               
;\
        .popsection                                                             
;\
        .pushsection ".data.thunk_opd","aw"                                     
;\
-- 
2.19.2


Reply via email to