From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57736) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5Kav-0004da-UZ for qemu-devel@nongnu.org; Sun, 18 Sep 2011 12:51:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R5Kau-0006O7-Q2 for qemu-devel@nongnu.org; Sun, 18 Sep 2011 12:51:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:17826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5Kau-0006O1-GK for qemu-devel@nongnu.org; Sun, 18 Sep 2011 12:51:52 -0400 Message-ID: <4E7621A2.7070406@redhat.com> Date: Sun, 18 Sep 2011 19:51:46 +0300 From: Avi Kivity MIME-Version: 1.0 References: <4E75E7B0.9080104@web.de> <4E761371.3020007@redhat.com> <4E761C29.8070304@web.de> In-Reply-To: <4E761C29.8070304@web.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] vga: Fix portio list conversion fallouts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel , Richard Henderson On 09/18/2011 07:28 PM, Jan Kiszka wrote: > On 2011-09-18 17:51, Avi Kivity wrote: > > On 09/18/2011 03:44 PM, Jan Kiszka wrote: > >> From: Jan Kiszka > >> > >> Fix copy&paste errors and reduce duplications of the BOCHS VBE ranges. > >> > >> Signed-off-by: Jan Kiszka > >> --- > >> > >> #ifdef CONFIG_BOCHS_VBE > >> static const MemoryRegionPortio vbe_portio_list[] = { > >> -# ifdef TARGET_I386 > >> { 0, 1, 2, .read = vbe_ioport_read_index, .write = > >> vbe_ioport_write_index }, > >> +# ifdef TARGET_I386 > > > > Strange how the card knows what target it's plugged into. Fixing this > > is going to involve major pain - need to update the bios and need to > > provide backwards compatibility. All this assuming guests don't > > hardcode the address. > > > > Anyway I find the deduplication makes the code harder to read. > > That line is rather tricky to deduplicate in mind. So it's not nice for > our readers keeping it duplicated around. I don't think it should be deduplicated. The device is providing two separate ABIs. > > > >> { 1, 1, 2, .read = vbe_ioport_read_data, .write = > >> vbe_ioport_write_data }, > >> # else > >> - { 0, 2, 2, .read = vbe_ioport_read_index, .write = > >> vbe_ioport_write_index }, > >> - { 2, 2, 2, .read = vbe_ioport_read_data, .write = > >> vbe_ioport_write_data }, > >> + { 2, 1, 2, .read = vbe_ioport_read_data, .write = > >> vbe_ioport_write_data }, > > > > Is this correct? length 1 region with size 2? > > Yes, it prevents accesses on base+1. > Why disallow it? For the general case or a 2-byte access near the end of a region, we need to provide a general fix. -- error compiling committee.c: too many arguments to function