tools/libxl: Combine legacy CPUID handling logic

While we are in the process of overhauling boot time CPUID/MSR handling, the
existing logic is going to have to remain in roughly this form for backwards
compatibility.

Fold libxl__cpuid_apply_policy() and libxl__cpuid_set() together into a single
libxl__cpuid_legacy() to reduce the complexity for callers.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Andrew Cooper committed 2020-02-11 18:26:52 +00:00
1 parent dacb80f975
commit 1b3cec69bf
4 files changed
+13 -19

No files matched your search

+8 -7
View File
@@ -410,17 +410,18 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *cpuid,
return 0;
}
void libxl__cpuid_apply_policy(libxl_ctx *ctx, uint32_t domid)
{
xc_cpuid_apply_policy(ctx->xch, domid, NULL, 0);
}
void libxl__cpuid_set(libxl_ctx *ctx, uint32_t domid,
libxl_cpuid_policy_list cpuid)
void libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid,
libxl_domain_build_info *info)
{
libxl_cpuid_policy_list cpuid = info->cpuid;
int i;
char *cpuid_res[4];
xc_cpuid_apply_policy(ctx->xch, domid, NULL, 0);
if (!cpuid)
return;
for (i = 0; cpuid[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++)
xc_cpuid_set(ctx->xch, domid, cpuid[i].input,
(const char**)(cpuid[i].policy), cpuid_res);
+1 -3
View File
@@ -454,9 +454,7 @@ int libxl__build_post(libxl__gc *gc, uint32_t domid,
if (rc)
return rc;
libxl__cpuid_apply_policy(ctx, domid);
if (info->cpuid != NULL)
libxl__cpuid_set(ctx, domid, info->cpuid);
libxl__cpuid_legacy(ctx, domid, info);
if (info->type == LIBXL_DOMAIN_TYPE_HVM
&& !libxl_ms_vm_genid_is_zero(&info->u.hvm.ms_vm_genid)) {
+2 -3
View File
@@ -2056,9 +2056,8 @@ struct libxl__cpuid_policy {
char *policy[4];
};
_hidden void libxl__cpuid_apply_policy(libxl_ctx *ctx, uint32_t domid);
_hidden void libxl__cpuid_set(libxl_ctx *ctx, uint32_t domid,
libxl_cpuid_policy_list cpuid);
_hidden void libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid,
libxl_domain_build_info *info);
/* Calls poll() again - useful to check whether a signaled condition
* is still true. Cannot fail. Returns currently-true revents. */
+2 -6
View File
@@ -34,12 +34,8 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *cpuid,
return 0;
}
void libxl__cpuid_apply_policy(libxl_ctx *ctx, uint32_t domid)
{
}
void libxl__cpuid_set(libxl_ctx *ctx, uint32_t domid,
libxl_cpuid_policy_list cpuid)
void libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid,
libxl_domain_config *d_config)
{
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.