[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [Bochs-developers] [PATCH v5 1/5] Add S3 state to DSDT.
[Qemu-devel] Re: [Bochs-developers] [PATCH v5 1/5] Add S3 state to DSDT.Handle resume event in the BIOS.
Tue, 9 Dec 2008 19:06:04 -0500
On Tue, Dec 09, 2008 at 11:26:53PM +0100, Sebastian Herbszt wrote:
> Gleb Natapov wrote:
> > On Sat, Dec 06, 2008 at 09:57:38PM -0500, Kevin O'Connor wrote:
> >> Also, wouldn't this corrupt memory used by the stack (the stack gets
> >> set to 0xfffe, and s3_post has call insns in it)?
> > Oh. I thought it was set to be at the top of the first page, but it has
> > one extra 'f' :( We should change it to be 0xffe instead.
> Can you please explain this memory corruption? Why would "this" (?) corrupt
> memory used by the stack?
On an s3 resume, memory the OS may be using must not be changed by the
bios. When bochs bios detects an s3 resume, it jumps to s3_post with
the stack pointer set to 0xfffe. In s3_post, there are "call"
instruction which will alter memory at 0xfffe (to store the return
address). This could break the resume, because the OS could be using
that memory for something else.
Gleb is suggesting that we change that to 0xffe, because the OS can't
be using memory at that address and expect s3 resume to work. (The
first 4KiB is reserved for BIOS use.)