Messages in this thread Patch in this message | | | Subject | Re: Fix stack handling in acpi_wakeup.S | From | "Alfred E. Heggestad" <> | Date | 15 Feb 2003 13:15:20 +0100 |
| |
Hi Pavel
I applied this patch to 2.5.60 and when doing the software suspend it did manage to start the freezing process (process X into refrigerator etc...) but crashed once in ide.c - apologies I do not have any more details and I cannot reproduce that one.
Doing software suspend now will freeze all procs and hang on the last one:
# echo 4 > /proc/acpi/sleep
... =<proc> entered refrigerator =| entered refrigerator
-> hang
This happens both with 2.5.60 plus Pavel acpi_wakeup.S patch and vanilla 2.5.61, also with or withour X running.
My machine is a Sony Vaio VX71P, details can be found here:
http://lamis.wyrdweb.com/~alfredh/vaio_vx71p/
/alfred
On Tue, 2003-02-11 at 19:44, Pavel Machek wrote: > 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 -- Alfred E. Heggestad <linuxedmund@home.no>
- 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/
| |