From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34385) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UnFs9-0006fG-No for qemu-devel@nongnu.org; Thu, 13 Jun 2013 18:20:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UnFs8-0000pv-QI for qemu-devel@nongnu.org; Thu, 13 Jun 2013 18:20:01 -0400 Received: from mail-qe0-f48.google.com ([209.85.128.48]:45238) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UnFs8-0000pq-M8 for qemu-devel@nongnu.org; Thu, 13 Jun 2013 18:20:00 -0400 Received: by mail-qe0-f48.google.com with SMTP id 2so6893379qea.35 for ; Thu, 13 Jun 2013 15:20:00 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51BA458D.6070308@redhat.com> Date: Thu, 13 Jun 2013 18:19:57 -0400 From: Paolo Bonzini MIME-Version: 1.0 References: <1371106939-6968-1-git-send-email-armbru@redhat.com> <1371106939-6968-6-git-send-email-armbru@redhat.com> In-Reply-To: <1371106939-6968-6-git-send-email-armbru@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC 5/8] s390: Make qemu_ram_remap() consistent with allocation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: borntraeger@de.ibm.com, mtosatti@redhat.com, qemu-devel@nongnu.org, stefano.stabellini@eu.citrix.com, agraf@suse.de Il 13/06/2013 03:02, Markus Armbruster ha scritto: > -static void *legacy_s390_alloc(ram_addr_t size) > + > +static void *legacy_s390_mmap(void *vaddr, ram_addr_t size) > { > - void *mem; > + return mmap(vaddr, size, PROT_EXEC | PROT_READ | PROT_WRITE, > + MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0); > +} > > - mem = mmap((void *) 0x800000000ULL, size, > - PROT_EXEC|PROT_READ|PROT_WRITE, > - MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0); You can just turn kvm_arch_mem_alloc to kvm_arch_ram_mmap, and call it from both kvm_mem_alloc and a new kvm_mem_remap. Then s390 can do mmap(vaddr ? vaddr : (void *) 0x800000000ULL, size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED | MAP_ANONYMOUS, -1, 0); and other arches can still return NULL. Paolo