Fix stack handling in acpi_wakeup.S

Pavel Machek (pavel@ucw.cz)
Tue, 11 Feb 2003 19:44:53 +0100


Hi!

This fixes stack handling in acpi_wakeup.S, and makes stack smaller so
that wakeup code actually fits inside memory allocated for it. Plus
someone renamed .L1432 to something meaningfull. Please apply,
Pavel

--- clean/arch/i386/kernel/acpi_wakeup.S 2003-02-11 17:40:33.000000000 +0100
+++ linux/arch/i386/kernel/acpi_wakeup.S 2003-02-11 12:51:03.000000000 +0100
@@ -31,7 +31,7 @@
movw %cs, %ax
movw %ax, %ds # Make ds:0 point to wakeup_start
movw %ax, %ss
- mov wakeup_stack - wakeup_code, %sp # Private stack is needed for ASUS board
+ mov $(wakeup_stack - wakeup_code), %sp # Private stack is needed for ASUS board
movw $0x0e00 + 'S', %fs:(0x12)

pushl $0 # Kill any dangerous flags
@@ -159,12 +159,14 @@
.code32
ALIGN

+.org 0x800
+wakeup_stack_begin: # Stack grows down

-.org 0x2000
+.org 0xff0 # Just below end of page
wakeup_stack:
-.org 0x3000
ENTRY(wakeup_end)
-.org 0x4000
+
+.org 0x1000

wakeup_pmode_return:
movl $__KERNEL_DS, %eax
@@ -274,7 +276,7 @@

ENTRY(do_suspend_lowlevel)
cmpl $0,4(%esp)
- jne .L1432
+ jne ret_point
call save_processor_state

movl %esp, saved_context_esp
@@ -287,7 +289,7 @@
movl %edi, saved_context_edi
pushfl ; popl saved_context_eflags

- movl $.L1432,saved_eip
+ movl $ret_point,saved_eip
movl %esp,saved_esp
movl %ebp,saved_ebp
movl %ebx,saved_ebx
@@ -299,7 +301,7 @@
addl $4,%esp
ret
.p2align 4,,7
-.L1432:
+ret_point:
movl $__KERNEL_DS,%eax
movw %ax, %ds
movl saved_context_esp, %esp

-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/