On 06/11/2015 23:11, Eduardo Habkost wrote:
> The only code that sets RAMBlock.fd is file_ram_alloc(), and the only
> code that calls file_ram_alloc() sets the RAM_FILE flag. That means the
> flag is always set when RAMBlock.fd >= 0, and the munmap() call at
> reclaim_ramblock() is dead code that never runs.
> 
> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
> ---
>  exec.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index a028961..9eb8b4b 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -88,9 +88,6 @@ static MemoryRegion io_mem_unassigned;
>   */
>  #define RAM_RESIZEABLE (1 << 2)
>  
> -/* RAM is backed by an mmapped file.
> - */
> -#define RAM_FILE (1 << 3)
>  #endif
>  
>  struct CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus);
> @@ -1597,7 +1594,6 @@ ram_addr_t qemu_ram_alloc_from_file(ram_addr_t size, 
> MemoryRegion *mr,
>      new_block->used_length = size;
>      new_block->max_length = size;
>      new_block->flags = share ? RAM_SHARED : 0;
> -    new_block->flags |= RAM_FILE;
>      new_block->host = file_ram_alloc(new_block, size,
>                                       mem_path, errp);
>      if (!new_block->host) {
> @@ -1699,11 +1695,7 @@ static void reclaim_ramblock(RAMBlock *block)
>          xen_invalidate_map_cache_entry(block->host);
>  #ifndef _WIN32
>      } else if (block->fd >= 0) {
> -        if (block->flags & RAM_FILE) {
> -            qemu_ram_munmap(block->host, block->max_length);
> -        } else {
> -            munmap(block->host, block->max_length);
> -        }
> +        qemu_ram_munmap(block->host, block->max_length);
>          close(block->fd);
>  #endif
>      } else {
> 

Queued for 2.6, thanks.

Paolo

Reply via email to