hw/xen: Only advertise ring-page-order for xen-block if gnttab supports it
Whem emulating Xen, multi-page grants are distinctly non-trivial and we have elected not to support them for the time being. Don't advertise them to the guest. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Reviewed-by: Paul Durrant <paul@xen.org>
This commit is contained in:
parent
240cc11369
commit
072519037d
@ -83,7 +83,8 @@ static void xen_block_connect(XenDevice *xendev, Error **errp)
|
|||||||
g_free(ring_ref);
|
g_free(ring_ref);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (order <= blockdev->props.max_ring_page_order) {
|
} else if (qemu_xen_gnttab_can_map_multi() &&
|
||||||
|
order <= blockdev->props.max_ring_page_order) {
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
nr_ring_ref = 1 << order;
|
nr_ring_ref = 1 << order;
|
||||||
@ -255,8 +256,12 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
xen_device_backend_printf(xendev, "feature-flush-cache", "%u", 1);
|
xen_device_backend_printf(xendev, "feature-flush-cache", "%u", 1);
|
||||||
|
|
||||||
|
if (qemu_xen_gnttab_can_map_multi()) {
|
||||||
xen_device_backend_printf(xendev, "max-ring-page-order", "%u",
|
xen_device_backend_printf(xendev, "max-ring-page-order", "%u",
|
||||||
blockdev->props.max_ring_page_order);
|
blockdev->props.max_ring_page_order);
|
||||||
|
}
|
||||||
|
|
||||||
xen_device_backend_printf(xendev, "info", "%u", blockdev->info);
|
xen_device_backend_printf(xendev, "info", "%u", blockdev->info);
|
||||||
|
|
||||||
xen_device_frontend_printf(xendev, "virtual-device", "%lu",
|
xen_device_frontend_printf(xendev, "virtual-device", "%lu",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user