|
@@ -1970,10 +1970,12 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr,
|
|
size = REAL_HOST_PAGE_ALIGN(size);
|
|
size = REAL_HOST_PAGE_ALIGN(size);
|
|
|
|
|
|
file_size = get_file_size(fd);
|
|
file_size = get_file_size(fd);
|
|
- if (file_size > offset && file_size < (offset + size)) {
|
|
|
|
- error_setg(errp, "backing store size 0x%" PRIx64
|
|
|
|
- " does not match 'size' option 0x" RAM_ADDR_FMT,
|
|
|
|
- file_size, size);
|
|
|
|
|
|
+ if (file_size && file_size < offset + size) {
|
|
|
|
+ error_setg(errp, "%s backing store size 0x%" PRIx64
|
|
|
|
+ " is too small for 'size' option 0x" RAM_ADDR_FMT
|
|
|
|
+ " plus 'offset' option 0x%" PRIx64,
|
|
|
|
+ memory_region_name(mr), file_size, size,
|
|
|
|
+ (uint64_t)offset);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|