The latest vhost-user changes changed the VHOST_SET_MEM_TABLE handling. Now the memory regions are mapped from dev->mem. The BIOS is registered at address 0xfffc0000 which is out of memory boundaries for guests with less than 4G RAM. Calling qemu_get_ram_fd with this address causes abort() in qemu_get_ram_block with "Bad ram offset".
To prevent this situation we introduce a new function to check if the address maps to any RAMBlock - qemu_is_ram_block. This is used in VHOST_SET_MEM_TABLE handling to revent the aborting call to qemu_get_ram_fd. The related vhost-user qtest is also updated to reflect the changes in vhost-user message structures. --- Nikolay Nikolaev (3): Add qemu_is_ram_block vhost-user: Fix VHOST_SET_MEM_TABLE processing qtest: Adapt vhost-user-test to latehs vhost-user changes exec.c | 15 +++++++++++++++ hw/virtio/vhost-user.c | 4 ++++ include/exec/ram_addr.h | 1 + tests/vhost-user-test.c | 11 +++++++++-- 4 files changed, 29 insertions(+), 2 deletions(-) -- Signature