VGA: Don't register deprecated VBE range
PATCH 1/1 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 <[email protected]>
---
hw/vga.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
hw/vga.c +0 -7
@@ -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);