From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5JRO-0000y7-9e for qemu-devel@nongnu.org; Sun, 18 Sep 2011 11:37:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R5JRM-00088M-TB for qemu-devel@nongnu.org; Sun, 18 Sep 2011 11:37:58 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36506) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5JRM-00087W-GN for qemu-devel@nongnu.org; Sun, 18 Sep 2011 11:37:56 -0400 Message-ID: <4E761051.9000204@redhat.com> Date: Sun, 18 Sep 2011 18:37:53 +0300 From: Avi Kivity MIME-Version: 1.0 References: <4E75E7A4.50702@web.de> <4E75E96E.90101@web.de> In-Reply-To: <4E75E96E.90101@web.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 1/2] memory: Fix old portio word accesses List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel , Richard Henderson On 09/18/2011 03:51 PM, Jan Kiszka wrote: > From: Jan Kiszka > > As we register old portio regions via ioport_register, we are also > responsible for providing the word access wrapper. > > Signed-off-by: Jan Kiszka > --- > > Oops, was lacking a shift for word reads. > > memory.c | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/memory.c b/memory.c > index b3ee232..aef4702 100644 > --- a/memory.c > +++ b/memory.c > @@ -397,6 +397,11 @@ static void memory_region_iorange_read(IORange *iorange, > *data = ((uint64_t)1<< (width * 8)) - 1; > if (mrp) { > *data = mrp->read(mr->opaque, offset + mr->offset); > + } else if (width == 2) { > + mrp = find_portio(mr, offset, 1, false); > + assert(mrp); > + *data = mrp->read(mr->opaque, offset + mr->offset) | > + (mrp->read(mr->opaque, offset + mr->offset + 1)<< 8); > } What about width 4? Why not use access_with_adjusted_size()? -- error compiling committee.c: too many arguments to function