|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH-for-4.13 v2 1/2] libxl: replace 'enabled' with 'unknown' in libxl_passthrough enumeration
This is mostly a cosmetic patch to avoid the default enumeration value
being 'enabled'. The only non-cosmetic parts are in xl_parse.c where it now
becomes necessary to explicitly parse the 'enabled' value for xl.cfg
'passthrough' option, and error on the value 'unknown', because there is no
longer a direct mapping between valid xl.cfg values and the enumeration.
Suggested-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
Cc: Wei Liu <wl@xxxxxxx>
Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
v2:
- new in v2
---
tools/libxl/libxl_create.c | 4 ++--
tools/libxl/libxl_types.idl | 2 +-
tools/xl/xl_parse.c | 26 +++++++++++++++-----------
3 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index b58e030376..5f2972bc03 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -64,7 +64,7 @@ int libxl__domain_create_info_setdefault(libxl__gc *gc,
c_info->ssidref = SECINITSID_DOMU;
if (info.cap_hvm_directio &&
- (c_info->passthrough == LIBXL_PASSTHROUGH_ENABLED)) {
+ (c_info->passthrough == LIBXL_PASSTHROUGH_UNKNOWN)) {
c_info->passthrough = ((c_info->type == LIBXL_DOMAIN_TYPE_PV) ||
!info.cap_iommu_hap_pt_share) ?
LIBXL_PASSTHROUGH_SYNC_PT : LIBXL_PASSTHROUGH_SHARE_PT;
@@ -586,7 +586,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config
*d_config,
libxl_defbool_val(info->oos) ? 0 : XEN_DOMCTL_CDF_oos_off;
}
- assert(info->passthrough != LIBXL_PASSTHROUGH_ENABLED);
+ assert(info->passthrough != LIBXL_PASSTHROUGH_UNKNOWN);
LOG(DETAIL, "passthrough: %s",
libxl_passthrough_to_string(info->passthrough));
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 54ac685f50..3ac9494b80 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -264,7 +264,7 @@ libxl_vkb_backend = Enumeration("vkb_backend", [
])
libxl_passthrough = Enumeration("passthrough", [
- (0, "enabled"),
+ (0, "unknown"),
(1, "disabled"),
(2, "sync_pt"),
(3, "share_pt"),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index c2e61b680f..03a2c54dd2 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1512,23 +1512,27 @@ void parse_config_data(const char *config_source,
if (xlu_cfg_get_string(config, "passthrough", &buf, 0)) {
c_info->passthrough =
(d_config->num_pcidevs || d_config->num_dtdevs)
- ? LIBXL_PASSTHROUGH_ENABLED : LIBXL_PASSTHROUGH_DISABLED;
+ ? LIBXL_PASSTHROUGH_UNKNOWN : LIBXL_PASSTHROUGH_DISABLED;
} else {
- libxl_passthrough o;
+ if (!strcasecmp("enabled", buf))
+ c_info->passthrough = LIBXL_PASSTHROUGH_UNKNOWN;
+ else {
+ libxl_passthrough o;
- e = libxl_passthrough_from_string(buf, &o);
- if (e) {
- fprintf(stderr,
- "ERROR: unknown passthrough option '%s'\n",
- buf);
- exit(-ERROR_FAIL);
- }
+ e = libxl_passthrough_from_string(buf, &o);
+ if (e || !strcasecmp("unknown", buf)) {
+ fprintf(stderr,
+ "ERROR: unknown passthrough option '%s'\n",
+ buf);
+ exit(-ERROR_FAIL);
+ }
- c_info->passthrough = o;
+ c_info->passthrough = o;
+ }
}
switch (c_info->passthrough) {
- case LIBXL_PASSTHROUGH_ENABLED:
+ case LIBXL_PASSTHROUGH_UNKNOWN:
/*
* Choose a suitable default. libxl would also do this but
* choosing here allows the code calculating 'iommu_memkb'
--
2.20.1.2.gb21ebb671
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |