From: Anthony Liguori <[EMAIL PROTECTED]>

New extboot needs the block device size.

Signed-off-by: Anthony Liguori <[EMAIL PROTECTED]>
Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/qemu/hw/extboot.c b/qemu/hw/extboot.c
index 8759895..056fb59 100644
--- a/qemu/hw/extboot.c
+++ b/qemu/hw/extboot.c
@@ -26,6 +26,7 @@ union extboot_cmd
        uint16_t cylinders;
        uint16_t heads;
        uint16_t sectors;
+       uint64_t nb_sectors;
     } query_geometry;
     struct {
        uint16_t type;
@@ -75,6 +76,7 @@ static void extboot_write_cmd(void *opaque, uint32_t addr, 
uint32_t value)
     union extboot_cmd *cmd = (void *)(phys_ram_base + ((value & 0xFFFF) << 4));
     BlockDriverState *bs = opaque;
     int cylinders, heads, sectors, err;
+    int64_t nb_sectors;
 
     get_translated_chs(bs, &cylinders, &heads, &sectors);
 
@@ -88,9 +90,11 @@ static void extboot_write_cmd(void *opaque, uint32_t addr, 
uint32_t value)
 
     switch (cmd->type) {
     case 0x00:
+       bdrv_get_geometry(bs, &nb_sectors);
        cmd->query_geometry.cylinders = cylinders;
        cmd->query_geometry.heads = heads;
        cmd->query_geometry.sectors = sectors;
+       cmd->query_geometry.nb_sectors = nb_sectors;
        cpu_physical_memory_set_dirty((value & 0xFFFF) << 4);
        break;
     case 0x01:

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-commits mailing list
kvm-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-commits

Reply via email to