diff options
| author | Alex Williamson | 2010-08-20 23:34:16 +0200 |
|---|---|---|
| committer | Anthony Liguori | 2010-08-23 00:11:06 +0200 |
| commit | 916452df46d7c1cec1357d3ec033f540db069156 (patch) | |
| tree | ff643add29dd84491d4e0c6841114c94d0a94b17 | |
| parent | QMP: Update README file (diff) | |
| download | qemu-916452df46d7c1cec1357d3ec033f540db069156.tar.gz qemu-916452df46d7c1cec1357d3ec033f540db069156.tar.xz 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.c | 7 |
1 files changed, 0 insertions, 7 deletions
@@ -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); |
