]> git.baikalelectronics.ru Git - kernel.git/commit
x86, boot: straighten out ranges to copy/zero in compressed/head*.S
authorH. Peter Anvin <hpa@zytor.com>
Fri, 8 May 2009 23:20:34 +0000 (16:20 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 9 May 2009 00:18:10 +0000 (17:18 -0700)
commit5f46ff8535ee4e61626aa3ed803e6f142a654232
tree01d9ce7df1629c1ec17815c33ad3ce8b5bed3094
parentae427879f60b50a6da906efe623c8ed4426015b3
x86, boot: straighten out ranges to copy/zero in compressed/head*.S

Both on 32 and 64 bits, we copy all the way up to the end of bss,
except that on 64 bits there is a hack to avoid copying on top of the
page tables.  There is no point in copying bss at all, especially
since we are just about to zero it all anyway.

To clean up and unify the handling, we now do:

  - copy from startup_32 to _bss.
  - zero from _bss to _ebss.
  - the _ebss symbol is aligned to an 8-byte boundary.
  - the page tables are moved to a separate section.

Use _bss as the copy endpoint since _edata may be misaligned.

[ Impact: cleanup, trivial performance improvement ]

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/boot/compressed/head_32.S
arch/x86/boot/compressed/head_64.S
arch/x86/boot/compressed/vmlinux.lds.S