Hello community,

here is the log from the commit of package grub2 for openSUSE:Factory checked 
in at 2013-11-22 17:39:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
 and      /work/SRC/openSUSE:Factory/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes      2013-09-13 
14:43:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2013-11-22 
17:39:42.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Nov 22 07:12:16 UTC 2013 - g...@suse.com
+
+- add grub2-fix-x86_64-efi-startup-stack-alignment.patch and
+  grub2-fix-x86_64-efi-callwrap-stack-alignment.patch: fix the
+  stack alignment of x86_64 efi. (bnc#841426)
+
+-------------------------------------------------------------------

New:
----
  grub2-fix-x86_64-efi-callwrap-stack-alignment.patch
  grub2-fix-x86_64-efi-startup-stack-alignment.patch

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

Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.ipz2gr/_old  2013-11-22 17:39:43.000000000 +0100
+++ /var/tmp/diff_new_pack.ipz2gr/_new  2013-11-22 17:39:43.000000000 +0100
@@ -132,6 +132,8 @@
 Patch35:        grub2-linguas.sh-no-rsync.patch
 Patch36:        grub2-fix-parsing-of-short-LVM-PV-names.patch
 Patch37:        grub2-fix-descriptor-leak-in-grub_util_is_imsm.patch
+Patch38:        grub2-fix-x86_64-efi-startup-stack-alignment.patch
+Patch39:        grub2-fix-x86_64-efi-callwrap-stack-alignment.patch
 Requires:       gettext-runtime
 %if 0%{?suse_version} >= 1140
 Requires:       os-prober
@@ -248,6 +250,8 @@
 %patch35 -p1
 %patch36 -p1
 %patch37 -p1
+%patch38 -p1
+%patch39 -p1
 
 # Generate po/LINGUAS for message catalogs ...
 ./linguas.sh

++++++ grub2-fix-x86_64-efi-callwrap-stack-alignment.patch ++++++
>From 4e42521d8c9232b6ee9eac7d8b4945a7479de781 Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phco...@gmail.com>
Date: Fri, 22 Nov 2013 05:40:32 +0100
Subject: * grub-core/kern/x86_64/efi/callwrap.S: Fix stack
 alignment. Previously we misaligned stack by 8 in startup.S and compensated
 for it in callwrap.S. According to ABI docs (EFI and sysv amd64) right
 behaviour is to align stack in startup.S and keep it aligned in callwrap.S.
 startup.S part was committed few commits before. This takes care of
 callwrap.S. Reported by: Gary Lin.

References: bnc#841426
Patch-Mainline: yes

Signed-off-by: Gary Ching-Pang Lin <g...@suse.com>
---
 grub-core/kern/x86_64/efi/callwrap.S | 52 ++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/grub-core/kern/x86_64/efi/callwrap.S 
b/grub-core/kern/x86_64/efi/callwrap.S
index 2df95dd..1337fd9 100644
--- a/grub-core/kern/x86_64/efi/callwrap.S
+++ b/grub-core/kern/x86_64/efi/callwrap.S
@@ -36,94 +36,94 @@
         .text
 
 FUNCTION(efi_wrap_0)
-       subq $48, %rsp
+       subq $40, %rsp
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_1)
-       subq $48, %rsp
+       subq $40, %rsp
        mov  %rsi, %rcx
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_2)
-       subq $48, %rsp
+       subq $40, %rsp
        mov  %rsi, %rcx
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_3)
-       subq $48, %rsp
+       subq $40, %rsp
        mov  %rcx, %r8
        mov  %rsi, %rcx
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_4)
-       subq $48, %rsp
+       subq $40, %rsp
        mov %r8, %r9
        mov %rcx, %r8
        mov %rsi, %rcx
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_5)
-       subq $48, %rsp
+       subq $40, %rsp
        mov %r9, 32(%rsp)
        mov %r8, %r9
        mov %rcx, %r8
        mov %rsi, %rcx
        call *%rdi
-       addq $48, %rsp
+       addq $40, %rsp
        ret
 
 FUNCTION(efi_wrap_6)
-       subq $64, %rsp
-       mov 64+8(%rsp), %rax
+       subq $56, %rsp
+       mov 56+8(%rsp), %rax
        mov %rax, 40(%rsp)
        mov %r9, 32(%rsp)
        mov %r8, %r9
        mov %rcx, %r8
        mov %rsi, %rcx
        call *%rdi
-       addq $64, %rsp
+       addq $56, %rsp
        ret
 
 FUNCTION(efi_wrap_7)
-       subq $96, %rsp
-       mov 96+16(%rsp), %rax
+       subq $88, %rsp
+       mov 88+16(%rsp), %rax
        mov %rax, 48(%rsp)
-       mov 96+8(%rsp), %rax
+       mov 88+8(%rsp), %rax
        mov %rax, 40(%rsp)
        mov %r9, 32(%rsp)
        mov %r8, %r9
        mov %rcx, %r8
        mov %rsi, %rcx
        call *%rdi
-       addq $96, %rsp
+       addq $88, %rsp
        ret
 
 FUNCTION(efi_wrap_10)
-       subq $96, %rsp
-       mov 96+40(%rsp), %rax
+       subq $88, %rsp
+       mov 88+40(%rsp), %rax
        mov %rax, 72(%rsp)
-       mov 96+32(%rsp), %rax
+       mov 88+32(%rsp), %rax
        mov %rax, 64(%rsp)
-       mov 96+24(%rsp), %rax
+       mov 88+24(%rsp), %rax
        mov %rax, 56(%rsp)
-       mov 96+16(%rsp), %rax
+       mov 88+16(%rsp), %rax
        mov %rax, 48(%rsp)
-       mov 96+8(%rsp), %rax
+       mov 88+8(%rsp), %rax
        mov %rax, 40(%rsp)
        mov %r9, 32(%rsp)
        mov %r8, %r9
        mov %rcx, %r8
        mov %rsi, %rcx
        call *%rdi
-       addq $96, %rsp
+       addq $88, %rsp
        ret
-- 
1.8.1.4

++++++ grub2-fix-x86_64-efi-startup-stack-alignment.patch ++++++
>From 7960d3e1823bd3ea569109dcfe269447c3589fac Mon Sep 17 00:00:00 2001
From: Josh Triplett <j...@joshtriplett.org>
Date: Tue, 19 Nov 2013 14:31:40 +0100
Subject: * grub-core/kern/x86_64/efi/startup.S (_start): Align the
 stack to a 16-byte boundary, as required by the x86-64 ABI, before calling
 grub_main. In some cases, GCC emits code that assumes this alignment, which
 crashes if not aligned. The EFI firmware is also entitled to assume that
 stack alignment without checking.

References: bnc#841426
Patch-Mainline: yes

Signed-off-by: Gary Ching-Pang Lin <g...@suse.com>
---
 grub-core/kern/x86_64/efi/startup.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/grub-core/kern/x86_64/efi/startup.S 
b/grub-core/kern/x86_64/efi/startup.S
index f86f019..9357e5c 100644
--- a/grub-core/kern/x86_64/efi/startup.S
+++ b/grub-core/kern/x86_64/efi/startup.S
@@ -30,6 +30,6 @@ _start:
        movq    %rcx, EXT_C(grub_efi_image_handle)(%rip)
        movq    %rdx, EXT_C(grub_efi_system_table)(%rip)
 
+       andq    $~0xf, %rsp
        call    EXT_C(grub_main)
-       ret
-
+       /* Doesn't return.  */
-- 
1.8.1.4

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to