[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 30/38] ivshmem: Simplify memory regions for BAR
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 30/38] ivshmem: Simplify memory regions for BAR 2 (shared memory) |
Date: |
Tue, 01 Mar 2016 15:06:31 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Paolo Bonzini <address@hidden> writes:
> 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);
> }
Since it's allocated within ivshmem_realize(), I guess I could free it
in ivshmem_exit().
> or, alternatively just use a flag (e.g. s->bar2_mapped) and allocate it
> directly in the IVShmemState struct.
I'll see what comes out nicer. Thanks!