summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@redhat.com>2010-08-20 15:34:16 -0600
committerAnthony Liguori <aliguori@us.ibm.com>2010-08-22 17:11:06 -0500
commit916452df46d7c1cec1357d3ec033f540db069156 (patch)
treeff643add29dd84491d4e0c6841114c94d0a94b17
parentd29f3196afddd356a8169780fa506f565adb5036 (diff)
downloadfocaccia-qemu-916452df46d7c1cec1357d3ec033f540db069156.tar.gz
focaccia-qemu-916452df46d7c1cec1357d3ec033f540db069156.zip
VGA: Don't register deprecated VBE range
Old versions of the BOCHs VGA BIOS (cira 2003) made use of VBE
registers at 0xff80/81.  In VBE API version 0xb0c2 these were
moved to 0x1ce/cf.  Unfortunately, QEMU still registers handlers
for the old range.  If a guest attempts to assign an I/O device
overlapping this region, QEMU exits with a hw_error.  Windows
guests seem to like to assign I/O devices to the high end of
the address space, so it's pretty easy to hot add an rtl8139
to a Win2k8 guest and trigger the bug.  I can't find any reason
to register these handlers, so let's remove the cruft.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/vga.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/hw/vga.c b/hw/vga.c
index b5c7ee7fe3..966185e03b 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -2313,13 +2313,6 @@ void vga_init(VGACommonState *s)
 
     register_ioport_write(0x1ce, 1, 2, vbe_ioport_write_index, s);
     register_ioport_write(0x1cf, 1, 2, vbe_ioport_write_data, s);
-
-    /* old Bochs IO ports */
-    register_ioport_read(0xff80, 1, 2, vbe_ioport_read_index, s);
-    register_ioport_read(0xff81, 1, 2, vbe_ioport_read_data, s);
-
-    register_ioport_write(0xff80, 1, 2, vbe_ioport_write_index, s);
-    register_ioport_write(0xff81, 1, 2, vbe_ioport_write_data, s);
 #else
     register_ioport_read(0x1ce, 1, 2, vbe_ioport_read_index, s);
     register_ioport_read(0x1d0, 1, 2, vbe_ioport_read_data, s);