Fix initrd overwriting the kernel for some kernel sizes
authorSergey Vlasov <vsu@altlinux.ru>
Tue, 22 Jul 2008 09:46:08 +0000 (13:46 +0400)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 22 Jul 2008 16:58:02 +0000 (12:58 -0400)
commit2870b77cd5d04addc8e956ba21e91bde08e4db66
tree28d93d209691950a361cfb98ba5812e3201ca970
parenteec9fe478cfcf9ba45455f68715cba4b57be7ea6
Fix initrd overwriting the kernel for some kernel sizes

The address in EDI returned by the load_high call used to load the
kernel needs to be passed to parse_load_initrd, but the code which
clears memory after setup sectors for 1.2.x kernels was corrupting
low 16 bits of EDI.  In most cases this corruption was not noticed,
because with usual setup sizes DI was set to 0xf800, therefore the
chance of getting the kernel size such that initrd would actually
overwrite the kernel was about 3%.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
core/runkernel.inc