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>
This commit is contained in:
parent
d29f3196af
commit
916452df46
7
hw/vga.c
7
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);
|
||||
|
Loading…
Reference in New Issue
Block a user