From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=45473 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OmZEC-0001HU-Km for qemu-devel@nongnu.org; Fri, 20 Aug 2010 17:34:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OmZEB-0003qr-EY for qemu-devel@nongnu.org; Fri, 20 Aug 2010 17:34:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59812) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OmZEB-0003qi-8T for qemu-devel@nongnu.org; Fri, 20 Aug 2010 17:34:19 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o7KLYH4m028387 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 20 Aug 2010 17:34:17 -0400 From: Alex Williamson Date: Fri, 20 Aug 2010 15:34:16 -0600 Message-ID: <20100820213402.23794.51805.stgit@localhost6.localdomain6> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH] VGA: Don't register deprecated VBE range List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: alex.williamson@redhat.com 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 --- hw/vga.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/hw/vga.c b/hw/vga.c index b5c7ee7..966185e 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);