mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
libxl: fix libxl_domain_need_memory after 899433f149
After 899433f149 libxl needs to know the content of d_config to
determine which QEMU is used. The code is changed such that
libxl__domain_set_device_model needs to be called before
libxl__domain_build_info_setdefault.
This is fine for libxl code, but it is problematic for
libxl_domain_need_memory, which is the only public API that takes a
build_info. To avoid breaking its users, provide a compatibility
setting inside that function.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
6ac66c9cbb
commit
278c64519c
1 file changed
+18
@@ -457,6 +457,24 @@ int libxl_domain_need_memory(libxl_ctx *ctx,
|
||||
libxl_domain_build_info_init(b_info);
|
||||
libxl_domain_build_info_copy(ctx, b_info, b_info_in);
|
||||
|
||||
/*
|
||||
* It has become a requirement that to figure out which QEMU to
|
||||
* use, libxl will need to peek d_config's content. The code has
|
||||
* been changed such that one will need to call
|
||||
* libxl__domain_set_device_model before calling
|
||||
* libxl__domain_build_info_setdefault inside libxl.
|
||||
*
|
||||
* This (problematic) public API is the only one which takes a
|
||||
* b_info. Imposing the same requirement on the users of this
|
||||
* public API will break them.
|
||||
*
|
||||
* Provide a compatibility setting for this function. The
|
||||
* calculation doesn't really care which QEMU is set here, so we
|
||||
* go with the upstream default.
|
||||
*/
|
||||
if (!b_info->device_model_version)
|
||||
b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
|
||||
|
||||
rc = libxl__domain_build_info_setdefault(gc, b_info);
|
||||
if (rc) goto out;
|
||||
|
||||
|
||||