kernel - Fix buffer overflow in legacy (non EFI) boot loader
* Fix a buffer overflow primarily in bd_read(). The code contains
a work-around for segment boundary crossings that very old BIOSes
would sometimes blow-up on, but was improperly calculating the
bounce-buffer I/O limit to be the full bounce-buffer size
instead of 1/2 the bounce buffer size.
Thus if the bounce buffer's base address happened to be certain
values, large I/O requests would overflow the buffer.
* Make sure the bounce-buffer is 16-byte aligned, again for old
BIOSes.
Reported-by: zrj
Debugging-by: dillon, zrj, Naabed-