From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43118) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROv5O-0001eP-7S for qemu-devel@nongnu.org; Fri, 11 Nov 2011 12:40:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ROv5M-0001Li-OB for qemu-devel@nongnu.org; Fri, 11 Nov 2011 12:40:18 -0500 Received: from cantor2.suse.de ([195.135.220.15]:44574 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROv5M-0001LT-Fd for qemu-devel@nongnu.org; Fri, 11 Nov 2011 12:40:16 -0500 Message-ID: <4EBD5E13.8000604@suse.de> Date: Fri, 11 Nov 2011 18:40:35 +0100 From: Alexander Graf MIME-Version: 1.0 References: <1320887981-2099-1-git-send-email-agraf@suse.de> <4A2D3614-438C-40F4-B3D1-A8ABF30FB82F@suse.de> <4EBD467F.7040107@suse.de> <4EBD4C57.1080709@suse.de> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] s390x: initialize virtio dev region List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel@nongnu.org On 11/11/2011 05:44 PM, Peter Maydell wrote: > On 11 November 2011 16:24, Alexander Graf wrote: >> On 11/11/2011 05:11 PM, Peter Maydell wrote: >>> Yes, so that's option (2) and you need to be using a target_phys_addr_t. >> But ram_size is ram_addr_t and is the ram size that I have available to use, >> so it's exactly the address that I want. I don't see your point. Should go >> jump through random useless hoops of doing >> >> target_phys_addr_t ram_end = ram_size; >> >> just because there are some subtile semantic differences between the two >> variables? They're integers at the end of the day. Both of them. > Because handing a ram_addr_t to something that wants a target_phys_addr_t > is a red flag that something might be wrong. (As is handing a variable > called _size to something that wants an address.) > > Force in Newtons and Force in pound-feet are also both just integers > at the end of the day, but that doesn't make them interchangeable: > http://en.wikipedia.org/wiki/Mars_Climate_Orbiter#Communications_loss Or actually rather this one: Alex diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index d936809..61b67e8 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -167,6 +167,7 @@ static void s390_init(ram_addr_t my_ram_size, uint8_t *storage_keys; void *virtio_region; target_phys_addr_t virtio_region_len; + target_phys_addr_t virtio_region_start; int i; /* s390x ram size detection needs a 16bit multiplier + an increment. So @@ -188,7 +189,9 @@ static void s390_init(ram_addr_t my_ram_size, /* clear virtio region */ virtio_region_len = my_ram_size - ram_size; - virtio_region = cpu_physical_memory_map(ram_size, &virtio_region_len, true); + virtio_region_start = ram_size; + virtio_region = cpu_physical_memory_map(virtio_region_start, + &virtio_region_len, true); memset(virtio_region, 0, virtio_region_len); cpu_physical_memory_unmap(virtio_region, virtio_region_len, 1, virtio_region_len);