Redefine bzimage_exec_context::mem_limit to be the highest permissible
authorMichael Brown <mcb30@etherboot.org>
Fri, 28 Sep 2007 00:23:06 +0000 (01:23 +0100)
committerMichael Brown <mcb30@etherboot.org>
Fri, 28 Sep 2007 00:23:06 +0000 (01:23 +0100)
commit56550e400eace8edffc0e147b9f674e9d266e1de
tree96b8931de9c6ff22193fbd00f0ac01b7d39b2031
parent14fb6ba189c6f2a062307c5a648c93df18792549
Redefine bzimage_exec_context::mem_limit to be the highest permissible
byte, rather than the number of permissible bytes (i.e. subtract one
from the value under the previous definition to get the value under
the new definition).

This avoids integer overflow on 64-bit kernels, where
bzhdr.initrd_addr_max may be 0xffffffffffffffff; under the old
behaviour we set mem_limit equal to initrd_addr_max+1, which meant it
ended up as zero.  Kernel loads would fail with ENOBUFS.
src/arch/i386/image/bzimage.c