Message ID | 1579779525-20065-76-git-send-email-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | refactor main RAM allocation to use hostmem backend | expand |
On Thu, 23 Jan 2020 12:38:40 +0100 Igor Mammedov <imammedo@redhat.com> wrote: > Function will report error that will mention global mem_path, > which was valid the only if legacy -mem-path was used and > only in case of main RAM. > > However it doesn't work with hostmem backends > (for example: > " > qemu: -object memory-backend-file,id=ram0,size=128M,mem-path=foo: > backing store (null) size 0x200000 does not match 'size' option 0x8000000 > ") > and couldn't possibly work in general FD case the function > is supposed to handle. > > Taking in account that main RAM was converted into > memory-backend-foo object, there is no point in printing > file name (from inappropriate place) as failing path is > a part of backend's error message. > > Hence drop bogus mem_path usage from qemu_ram_alloc_from_fd(), > it's a job of its user to add file name to error message if applicable. > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> Marc-André, git blames you as the one who introduced it, could you take a look at this patch probably I should add here as well Fixes: 8d37b030fe ("exec: split file_ram_alloc()") > --- > CC: pbonzini@redhat.com > CC: rth@twiddle.net > --- > exec.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/exec.c b/exec.c > index 809987c..dc844fd 100644 > --- a/exec.c > +++ b/exec.c > @@ -2308,9 +2308,9 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, > size = HOST_PAGE_ALIGN(size); > file_size = get_file_size(fd); > if (file_size > 0 && file_size < size) { > - error_setg(errp, "backing store %s size 0x%" PRIx64 > + error_setg(errp, "backing store size 0x%" PRIx64 > " does not match 'size' option 0x" RAM_ADDR_FMT, > - mem_path, file_size, size); > + file_size, size); > return NULL; > } >
diff --git a/exec.c b/exec.c index 809987c..dc844fd 100644 --- a/exec.c +++ b/exec.c @@ -2308,9 +2308,9 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr, size = HOST_PAGE_ALIGN(size); file_size = get_file_size(fd); if (file_size > 0 && file_size < size) { - error_setg(errp, "backing store %s size 0x%" PRIx64 + error_setg(errp, "backing store size 0x%" PRIx64 " does not match 'size' option 0x" RAM_ADDR_FMT, - mem_path, file_size, size); + file_size, size); return NULL; }
Function will report error that will mention global mem_path, which was valid the only if legacy -mem-path was used and only in case of main RAM. However it doesn't work with hostmem backends (for example: " qemu: -object memory-backend-file,id=ram0,size=128M,mem-path=foo: backing store (null) size 0x200000 does not match 'size' option 0x8000000 ") and couldn't possibly work in general FD case the function is supposed to handle. Taking in account that main RAM was converted into memory-backend-foo object, there is no point in printing file name (from inappropriate place) as failing path is a part of backend's error message. Hence drop bogus mem_path usage from qemu_ram_alloc_from_fd(), it's a job of its user to add file name to error message if applicable. Signed-off-by: Igor Mammedov <imammedo@redhat.com> --- CC: pbonzini@redhat.com CC: rth@twiddle.net --- exec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)