arm: fix u-boot port syscall interface va_arg handling
Commit c9cd02c
broke the u-boot syscall API for va_args that spill over
to the stack, causing the disk support to stop working. This patch
resolves the problem, while keeping the new, cleaner transition_space
handling.
This commit is contained in:
parent
31c0cd4362
commit
593865b907
2 changed files with 6 additions and 9 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2013-11-16 Leif Lindholm <leif.lindholm@linaro.org>
|
||||||
|
|
||||||
|
* grub-core/kern/arm/uboot/startup.S: fix grub_uboot_syscall va_arg
|
||||||
|
handling
|
||||||
2013-11-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
2013-11-16 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||||
|
|
||||||
* configure.ac: Restore -nostdlib for libgcc symbols tests.
|
* configure.ac: Restore -nostdlib for libgcc symbols tests.
|
||||||
|
|
|
@ -131,11 +131,6 @@ FUNCTION(grub_uboot_syscall)
|
||||||
str r8, transition_space
|
str r8, transition_space
|
||||||
str lr, transition_space + 4
|
str lr, transition_space + 4
|
||||||
str r9, transition_space + 8
|
str r9, transition_space + 8
|
||||||
str sp, transition_space + 12
|
|
||||||
|
|
||||||
sub sp, sp, #0x20
|
|
||||||
lsr sp, sp, #3
|
|
||||||
lsl sp, sp, #3
|
|
||||||
|
|
||||||
ldr r8, gd_backup
|
ldr r8, gd_backup
|
||||||
ldr r9, gd_backup + 4
|
ldr r9, gd_backup + 4
|
||||||
|
@ -147,7 +142,6 @@ FUNCTION(grub_uboot_syscall)
|
||||||
ldr r8, transition_space
|
ldr r8, transition_space
|
||||||
ldr lr, transition_space + 4
|
ldr lr, transition_space + 4
|
||||||
ldr r9, transition_space + 8
|
ldr r9, transition_space + 8
|
||||||
ldr sp, transition_space + 12
|
|
||||||
|
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
|
@ -166,8 +160,8 @@ entry_state_end:
|
||||||
.long 0 @ r6
|
.long 0 @ r6
|
||||||
.long 0 @ r7
|
.long 0 @ r7
|
||||||
gd_backup:
|
gd_backup:
|
||||||
.long 0 @ r8 - U-Boot global data pointer
|
.long 0 @ r8 - U-Boot global data pointer up to 2013-09-21
|
||||||
.long 0 @ r9
|
.long 0 @ r9 - U-Boot global data pointer 2013-09-21 onwards
|
||||||
.long 0 @ r10
|
.long 0 @ r10
|
||||||
.long 0 @ r11
|
.long 0 @ r11
|
||||||
VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer -
|
VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer -
|
||||||
|
@ -180,7 +174,6 @@ transition_space:
|
||||||
.long 0 @ r8
|
.long 0 @ r8
|
||||||
.long 0 @ lr
|
.long 0 @ lr
|
||||||
.long 0 @ r9
|
.long 0 @ r9
|
||||||
.long 0 @ sp
|
|
||||||
|
|
||||||
VARIABLE(grub_uboot_syscall_ptr)
|
VARIABLE(grub_uboot_syscall_ptr)
|
||||||
.long 0 @
|
.long 0 @
|
||||||
|
|
Loading…
Reference in a new issue