From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33639) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aailG-0005jn-VE for qemu-devel@nongnu.org; Tue, 01 Mar 2016 06:46:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aailE-0007Nw-9L for qemu-devel@nongnu.org; Tue, 01 Mar 2016 06:46:42 -0500 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:34124) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aailD-0007NR-Vw for qemu-devel@nongnu.org; Tue, 01 Mar 2016 06:46:40 -0500 Received: by mail-wm0-x242.google.com with SMTP id p65so3654368wmp.1 for ; Tue, 01 Mar 2016 03:46:39 -0800 (PST) Sender: Paolo Bonzini References: <1456771254-17511-1-git-send-email-armbru@redhat.com> <1456771254-17511-31-git-send-email-armbru@redhat.com> From: Paolo Bonzini Message-ID: <56D5811C.7090108@redhat.com> Date: Tue, 1 Mar 2016 12:46:36 +0100 MIME-Version: 1.0 In-Reply-To: <1456771254-17511-31-git-send-email-armbru@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 30/38] ivshmem: Simplify memory regions for BAR 2 (shared memory) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster , qemu-devel@nongnu.org Cc: mlureau@redhat.com, cam@cs.ualberta.ca, claudio.fontana@huawei.com, david.marchand@6wind.com On 29/02/2016 19:40, Markus Armbruster wrote: > - memory_region_init_ram_ptr(&s->ivshmem, OBJECT(s), > + s->ivshmem_bar2 = g_new(MemoryRegion, 1); > + memory_region_init_ram_ptr(s->ivshmem_bar2, OBJECT(s), > "ivshmem.bar2", s->ivshmem_size, ptr); > - qemu_set_ram_fd(s->ivshmem.ram_addr, fd); > - vmstate_register_ram(&s->ivshmem, DEVICE(s)); > - memory_region_add_subregion(&s->bar, 0, &s->ivshmem); > + qemu_set_ram_fd(s->ivshmem_bar2->ram_addr, fd); This is missing an instance_finalize callback to do if (s->ivshmem_bar2) { object_unparent(s->ivshmem_bar2); g_free(s->ivshmem_bar2); } or, alternatively just use a flag (e.g. s->bar2_mapped) and allocate it directly in the IVShmemState struct. Paolo