[grub] Wooooo

Peter Jones pjones at fedoraproject.org
Thu Aug 25 14:49:25 UTC 2011


commit ea32b514fad273196f8324cbcbfe9f2ff8e817a7
Author: Peter Jones <pjones at redhat.com>
Date:   Thu Jul 28 16:15:40 2011 -0400

    Wooooo

 grub-larger-efi-stack-frame.patch |   70 +++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)
---
diff --git a/grub-larger-efi-stack-frame.patch b/grub-larger-efi-stack-frame.patch
new file mode 100644
index 0000000..2f036ba
--- /dev/null
+++ b/grub-larger-efi-stack-frame.patch
@@ -0,0 +1,70 @@
+From: Peter Jones <pjones at redhat.com>
+Date: Mon, 14 Mar, 2011 09:29:00 -0500
+Subject: [PATCH] Use larger stack frame for x64_call[0..4]()
+
+This fixes rhbz# 669765
+
+diff --git a/efi/x86_64/callwrap.c b/efi/x86_64/callwrap.c
+index eb8fd25..bd5dd5e 100644
+--- a/efi/x86_64/callwrap.c
++++ b/efi/x86_64/callwrap.c
+@@ -113,9 +113,9 @@ unsigned long long x64_call0(void *func)
+ 	register unsigned long long r10 __asm__("r10");
+ 	register unsigned long long r11 __asm__("r11");
+ 	__asm__ __volatile__(					
+-		alloc_win_stack_frame(4)				
++		alloc_win_stack_frame(5)				
+ 		"call *%[fptr]\n\t"					
+-		free_win_stack_frame(4)					
++		free_win_stack_frame(5)					
+ 		: "=a" (ret), "=c" (dummy), "=d" (dummy),		
+ 		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)		
+ 		: [fptr] "r" (func));					
+@@ -130,9 +130,9 @@ unsigned long long x64_call1(void *func, unsigned long long arg1)
+ 	register unsigned long long r10 __asm__("r10");
+ 	register unsigned long long r11 __asm__("r11");
+ 	__asm__ __volatile__(
+-		alloc_win_stack_frame(4)
++		alloc_win_stack_frame(5)
+ 		"call *%[fptr]\n\t"
+-		free_win_stack_frame(4)	
++		free_win_stack_frame(5)	
+ 		: "=a" (ret), "=c" (dummy), "=d" (dummy),
+ 		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
+ 		: "c" (arg1),
+@@ -148,9 +148,9 @@ unsigned long long x64_call2(void *func, unsigned long long arg1, unsigned long
+ 	register unsigned long long r10 __asm__("r10");
+ 	register unsigned long long r11 __asm__("r11");
+ 	__asm__ __volatile__(
+-		alloc_win_stack_frame(4)
++		alloc_win_stack_frame(5)
+ 		"call *%[fptr]\n\t"
+-		free_win_stack_frame(4)
++		free_win_stack_frame(5)
+ 		: "=a" (ret), "=c" (dummy), "=d" (dummy),
+ 		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
+ 		: "c" (arg1), "d" (arg2),
+@@ -170,9 +170,9 @@ unsigned long long x64_call3(
+ 	register unsigned long long r10 __asm__("r10");
+ 	register unsigned long long r11 __asm__("r11");
+ 	__asm__ __volatile__(
+-		alloc_win_stack_frame(4)
++		alloc_win_stack_frame(5)
+ 		"call *%[fptr]\n\t"
+-		free_win_stack_frame(4)
++		free_win_stack_frame(5)
+ 		: "=a" (ret), "=c" (dummy), "=d" (dummy),
+ 		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
+ 		: "c" (arg1), "d" (arg2), "r" (r8),
+@@ -193,9 +193,9 @@ unsigned long long x64_call4(
+ 	register unsigned long long r10 __asm__("r10");
+ 	register unsigned long long r11 __asm__("r11");
+ 	__asm__ __volatile__(
+-		alloc_win_stack_frame(4)
++		alloc_win_stack_frame(5)
+ 		"call *%[fptr]\n\t"
+-		free_win_stack_frame(4)
++		free_win_stack_frame(5)
+ 		: "=a" (ret), "=c" (dummy), "=d" (dummy),
+ 		  "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
+ 		: "c" (arg1), "d" (arg2), "r" (r8), "r" (r9),


More information about the scm-commits mailing list