Skip to content

Commit

Permalink
lguest: allow booting guest with CONFIG_RELOCATABLE=y
Browse files Browse the repository at this point in the history
The CONFIG_RELOCATABLE code tries to align the unpack destination to
the value of 'kernel_alignment' in the setup_hdr.  If that's 0, it
tries to unpack to address 0, which in fact causes the gunzip code
to call 'error("Out of memory while allocating output buffer")'.

The bootloader (ie. the lguest Launcher in this case) should be doing
setting this field; the normal bzImage is 16M, we can use the same.

Reported-by: Stefanos Geraggelos <[email protected]>
Signed-off-by: Rusty Russell <[email protected]>
Cc: [email protected]
  • Loading branch information
rustyrussell committed Aug 15, 2011
1 parent c3c53a0 commit e22a539
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Documentation/virtual/lguest/lguest.c
Original file line number Diff line number Diff line change
Expand Up @@ -1996,6 +1996,9 @@ int main(int argc, char *argv[])
/* We use a simple helper to copy the arguments separated by spaces. */
concat((char *)(boot + 1), argv+optind+2);

/* Set kernel alignment to 16M (CONFIG_PHYSICAL_ALIGN) */
boot->hdr.kernel_alignment = 0x1000000;

/* Boot protocol version: 2.07 supports the fields for lguest. */
boot->hdr.version = 0x207;

Expand Down

0 comments on commit e22a539

Please sign in to comment.