mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-15 14:13:31 -06:00
vhost: fix memslot limit check
Since used_memslots will be updated to the actual value after registering memory listener for the first time, move the memslots limit checking to the right place. Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Jay Zhou <jianjay.zhou@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
c8945922be
commit
9e2a2a3e08
1 changed files with 12 additions and 7 deletions
|
@ -1106,13 +1106,6 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (used_memslots > hdev->vhost_ops->vhost_backend_memslots_limit(hdev)) {
|
|
||||||
error_report("vhost backend memory slots limit is less"
|
|
||||||
" than current number of present memory slots");
|
|
||||||
r = -1;
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = hdev->vhost_ops->vhost_set_owner(hdev);
|
r = hdev->vhost_ops->vhost_set_owner(hdev);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
VHOST_OPS_DEBUG("vhost_set_owner failed");
|
VHOST_OPS_DEBUG("vhost_set_owner failed");
|
||||||
|
@ -1192,6 +1185,18 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
|
||||||
hdev->started = false;
|
hdev->started = false;
|
||||||
memory_listener_register(&hdev->memory_listener, &address_space_memory);
|
memory_listener_register(&hdev->memory_listener, &address_space_memory);
|
||||||
QLIST_INSERT_HEAD(&vhost_devices, hdev, entry);
|
QLIST_INSERT_HEAD(&vhost_devices, hdev, entry);
|
||||||
|
|
||||||
|
if (used_memslots > hdev->vhost_ops->vhost_backend_memslots_limit(hdev)) {
|
||||||
|
error_report("vhost backend memory slots limit is less"
|
||||||
|
" than current number of present memory slots");
|
||||||
|
r = -1;
|
||||||
|
if (busyloop_timeout) {
|
||||||
|
goto fail_busyloop;
|
||||||
|
} else {
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail_busyloop:
|
fail_busyloop:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue