Hi! >>>> Hmm, maybe I know where problem could be. Try >>>> >>>> movl $(wakeup_stack - wakeup_code), %esp # >>>> Private stack is needed for ASUS bo\ >>>> >>>> instead of existing stack setup. That helped on one of my test-boxes >>> Thanks, I will try that. >>> Because clearing the flags imply pop/push in the stack it could be the >>> problem >> That doesn't help : it still crash in pushl $0. >> > All stack stuff in wakeup_code crash for me. > I tried to change the stack position, make sure upper bit of %esp are > clear, ... nothing work. > What's are strange is that according to my x86 manual, in real mode the > failure can only happen if the stack wrap which is not the case here. > Any x86 guru advice ? Could you try the .c wakeup? I changed it a bit, perhaps that's enough. > If I remove stack access (remove clearing flag stuff, not call to video > stuff) the resume works. Actually, I see a possible problem: _start: cli cld /* Set up segments */ movw %cs,%ax movw %ax,%ds movw %ax,%es movw %ax,%ss movl $wakeup_stack_end, %esp /* Clear the EFLAGS */ pushl $0 popfl ...if someone calls start as 0x1234:0, we are okay. But if some broken bios calls us as 0x1:0x234, we've got a problem. One possible hack would be to movl 0, %esp. That should put the stack at _start, corrupting memory but hopefully helping you diagnose it. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm