Blob Blame History Raw
From 6fe1fdc57802c699022d3b54920a435daabef969 Mon Sep 17 00:00:00 2001
From: Mark McLoughlin <markmc@redhat.com>
Date: Tue, 29 Apr 2008 11:30:42 +0100
Subject: [PATCH] kvm: qemu: Allow booting from extboot drive with -kernel

The -kernel option generates a new boot sector for
the boot drive which jumps directly to the supplied
kernel rather than running the standard bootloader.

Trivially fix generate_bootsect() to handle the
case where we're booting using extboot.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
---
 qemu/hw/pc.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index 48a36e0..506ef6b 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -405,11 +405,12 @@ static void generate_bootsect(uint32_t gpr[8], uint16_t segs[6], uint16_t ip)
 {
     uint8_t bootsect[512], *p;
     int i;
-    int hda;
+    int hda = extboot_drive;
 
-    hda = drive_get_index(IF_IDE, 0, 0);
+    if (hda == -1)
+      hda = drive_get_index(IF_IDE, 0, 0);
     if (hda == -1) {
-	fprintf(stderr, "A disk image must be given for 'hda' when booting "
+	fprintf(stderr, "-hda or -drive boot=on must be given when booting "
 		"a Linux kernel\n");
 	exit(1);
     }
-- 
1.5.4.1