Messages in this thread |  | | Date | Fri, 27 Feb 2009 23:05:25 -0800 | | From | Jeremy Fitzhardinge <> | | Subject | J |
| |
Yinghai Lu wrote: > On Fri, Feb 27, 2009 at 5:51 PM, Jeremy Fitzhardinge <jeremy@goop.org> wrote: > >> From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> >> >> Rather than having special purpose init_pg_table_start/end variables >> to delimit the kernel pagetable built by head_32.S, just use the brk >> mechanism to extend the bss for the new pagetable. >> >> This patch removes init_pg_table_start/end and pg0, defines __brk_base >> (which is page-aligned and immediately follows _end), initializes >> the brk region to start there, and uses it for the 32-bit pagetable. >> > ... > > >> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c >> index c246dc4..ed02176 100644 >> --- a/arch/x86/kernel/setup.c >> +++ b/arch/x86/kernel/setup.c >> @@ -113,8 +113,10 @@ >> #endif >> >> unsigned int boot_cpu_id __read_mostly; >> -__initdata unsigned long _brk_start = (unsigned long)&_end; >> -__initdata unsigned long _brk_end = (unsigned long)&_end; >> + >> +extern char __brk_base[]; >> +__initdata unsigned long _brk_start = (unsigned long)__brk_base; >> +__initdata unsigned long _brk_end = (unsigned long)&__brk_base; >> > > ? >
What are you asking? __brk_base is _end rounded up to a page boundary, so head_32.S can use it directly for pagetable allocation. Are you flagging the '&' typo? Something else?
J
|  |