Messages in this thread | | | Date | Sun, 25 May 2008 00:25:27 -0400 | From | Kristian Høgsberg <> | Subject | Re: [PATCH 1/2] Use structs instead of hardcoded offsets in x86 boot decompressor. |
| |
On Sat, May 24, 2008 at 09:06:44PM -0700, H. Peter Anvin wrote: > Rik van Riel wrote: >> On Fri, 23 May 2008 23:17:01 -0700 >> "H. Peter Anvin" <hpa@zytor.com> wrote: >> >>> Uhm... except it doesn't live at address zero, at all. >>> >>> It's called "zeropage" because we used to recycle it into >>> empty_zero_page, a long long time ago. >>> >>> The bootparms structure is pointed to by %esi being passed from the setup >>> code to the decompressor to the kernel. >> >> Then why does dereferencing the uninitialized >> pointer work, both in the code before and after >> the patch? >> >> What am I misssing? > > Heck if I know. It definitely *shouldn't* work...
Damn, I lost a chunk of the patch. There's supposed to be a
rm_screen_info = &real_mode->screen_info;
after the real_mode = rmode assignment. In the code before, RM_SCREEN_INFO was a macro that just referenced the real_mode pointer:
#define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0))
Thanks, wil resend. Kristian
| |