[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] tools/libxc: Fix error handling in get_cpuid_domain_info()
commit 82855aba5bf91e50c81526167c11d4aeaf665e66 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu Nov 29 18:17:01 2018 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Fri Nov 30 14:21:12 2018 +0000 tools/libxc: Fix error handling in get_cpuid_domain_info() get_cpuid_domain_info() has two conflicting return styles - either -error for local failures, or -1/errno for hypercall failures. Switch to consistently use -error. While fixing the xc_get_cpu_featureset(), take the opportunity to remove the redundancy and move it to be adjacent to the other featureset handling. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/libxc/xc_cpuid_x86.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index 13862b9761..098affe3c6 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -336,13 +336,22 @@ static int get_cpuid_domain_info(xc_interface *xch, uint32_t domid, if ( featureset[i] != 0 ) return -EOPNOTSUPP; } + else + { + rc = xc_get_cpu_featureset(xch, (info->hvm + ? XEN_SYSCTL_cpu_featureset_hvm + : XEN_SYSCTL_cpu_featureset_pv), + &host_nr_features, info->featureset); + if ( rc ) + return -errno; + } /* Get xstate information. */ domctl.cmd = XEN_DOMCTL_getvcpuextstate; domctl.domain = domid; rc = do_domctl(xch, &domctl); if ( rc ) - return rc; + return -errno; info->xfeature_mask = domctl.u.vcpuextstate.xfeature_mask; @@ -352,23 +361,15 @@ static int get_cpuid_domain_info(xc_interface *xch, uint32_t domid, rc = xc_hvm_param_get(xch, domid, HVM_PARAM_PAE_ENABLED, &val); if ( rc ) - return rc; + return -errno; info->pae = !!val; rc = xc_hvm_param_get(xch, domid, HVM_PARAM_NESTEDHVM, &val); if ( rc ) - return rc; + return -errno; info->nestedhvm = !!val; - - if ( !featureset ) - { - rc = xc_get_cpu_featureset(xch, XEN_SYSCTL_cpu_featureset_hvm, - &host_nr_features, info->featureset); - if ( rc ) - return rc; - } } else { @@ -376,17 +377,9 @@ static int get_cpuid_domain_info(xc_interface *xch, uint32_t domid, rc = xc_domain_get_guest_width(xch, domid, &width); if ( rc ) - return rc; + return -errno; info->pv64 = (width == 8); - - if ( !featureset ) - { - rc = xc_get_cpu_featureset(xch, XEN_SYSCTL_cpu_featureset_pv, - &host_nr_features, info->featureset); - if ( rc ) - return rc; - } } return 0; -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog |
Lists.xenproject.org is hosted with RackSpace, monitoring our |