From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38824) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7rjh-0004FP-Lq for qemu-devel@nongnu.org; Wed, 14 Mar 2012 13:12:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7rja-0001OM-Sn for qemu-devel@nongnu.org; Wed, 14 Mar 2012 13:11:41 -0400 Received: from mail-yw0-f45.google.com ([209.85.213.45]:58762) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7rja-0001OF-MT for qemu-devel@nongnu.org; Wed, 14 Mar 2012 13:11:34 -0400 Received: by yhoo21 with SMTP id o21so2339509yho.4 for ; Wed, 14 Mar 2012 10:11:33 -0700 (PDT) Sender: fluxion Date: Wed, 14 Mar 2012 12:11:26 -0500 From: Michael Roth Message-ID: <20120314171126.GC2894@illuin> References: <1330936245-2570-1-git-send-email-i.mitsyanko@samsung.com> <1330936245-2570-3-git-send-email-i.mitsyanko@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1330936245-2570-3-git-send-email-i.mitsyanko@samsung.com> Subject: Re: [Qemu-devel] [PATCH V2 2/5] hw/pxa2xx_dma.c: drop target_phys_addr_t usage in device state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mitsyanko Cc: peter.maydell@linaro.org, balrog@zabor.org, e.voevodin@samsung.com, quintela@redhat.com, qemu-devel@nongnu.org, kyungmin.park@samsung.com, d.solodkiy@samsung.com, m.kozlov@samsung.com, afaerber@suse.de On Mon, Mar 05, 2012 at 12:30:42PM +0400, Igor Mitsyanko wrote: > Pxa2xx DMA controller is a 32-bit device and it has no knowledge of system's > physical address size, so it should not use target_phys_addr_t in it's state. > Convert variables descr, src and dest from type target_phys_addr_t to uint32_t, > use VMSTATE_UINT32 instead of VMSTATE_UINTTL for these variables. > > We can do this safely because: > 1) pxa2xx actually has 32-bit physical address size; > 2) rest of the code in file never assumes descr, src and dest variables to have > size different from uint32_t; > 3) we shouldn't have used VMSTATE_UINTTL in the first place because this macro > is for target_ulong type (which can be different from target_phys_addr_t). 4) target-arm is the only user of pxa2xx*, and has never defined target_ulong/TARGET_LONG_BITS to be anything other than 32-bits. Reviewed-by: Michael Roth > > Signed-off-by: Igor Mitsyanko > Reviewed-by: Peter Maydell > --- > hw/pxa2xx_dma.c | 12 ++++++------ > 1 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/hw/pxa2xx_dma.c b/hw/pxa2xx_dma.c > index 8ced0dd..0310154 100644 > --- a/hw/pxa2xx_dma.c > +++ b/hw/pxa2xx_dma.c > @@ -18,9 +18,9 @@ > #define PXA2XX_DMA_NUM_REQUESTS 75 > > typedef struct { > - target_phys_addr_t descr; > - target_phys_addr_t src; > - target_phys_addr_t dest; > + uint32_t descr; > + uint32_t src; > + uint32_t dest; > uint32_t cmd; > uint32_t state; > int request; > @@ -512,9 +512,9 @@ static VMStateDescription vmstate_pxa2xx_dma_chan = { > .minimum_version_id = 1, > .minimum_version_id_old = 1, > .fields = (VMStateField[]) { > - VMSTATE_UINTTL(descr, PXA2xxDMAChannel), > - VMSTATE_UINTTL(src, PXA2xxDMAChannel), > - VMSTATE_UINTTL(dest, PXA2xxDMAChannel), > + VMSTATE_UINT32(descr, PXA2xxDMAChannel), > + VMSTATE_UINT32(src, PXA2xxDMAChannel), > + VMSTATE_UINT32(dest, PXA2xxDMAChannel), > VMSTATE_UINT32(cmd, PXA2xxDMAChannel), > VMSTATE_UINT32(state, PXA2xxDMAChannel), > VMSTATE_INT32(request, PXA2xxDMAChannel), > -- > 1.7.4.1 > >