[libvirt] [PATCH 12/23] Replace use of custom macros with virReportError in the Xen drivers

Peter Krempa pkrempa at redhat.com
Fri Jul 20 13:11:26 UTC 2012


On 07/18/12 20:40, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Update the legacy Xen drivers to use virReportError instead of
> the statsError, virXenInotifyError, virXenStoreError,
> virXendError, xenUnifiedError, xenXMError custom macros
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>   cfg.mk                   |    6 -
>   src/xen/block_stats.c    |   54 +++---
>   src/xen/xen_driver.c     |  114 ++++++------
>   src/xen/xen_hypervisor.c |  211 +++++++++++----------
>   src/xen/xen_inotify.c    |   48 +++--
>   src/xen/xend_internal.c  |  461 +++++++++++++++++++++++-----------------------
>   src/xen/xm_internal.c    |  134 +++++++-------
>   src/xen/xs_internal.c    |   40 ++--
>   8 files changed, 514 insertions(+), 554 deletions(-)
>
> diff --git a/cfg.mk b/cfg.mk

ACK to changes in this file

> diff --git a/src/xen/block_stats.c b/src/xen/block_stats.c

ACK to changes in this file.

> diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
> index b4ec579..21ea07d 100644
> --- a/src/xen/xen_hypervisor.c
> +++ b/src/xen/xen_hypervisor.c
> @@ -874,11 +874,6 @@ struct xenUnifiedDriver xenHypervisorDriver = {
>       .xenDomainSetSchedulerParameters = xenHypervisorSetSchedulerParameters,
>   };
>
> -#define virXenError(code, ...)                                             \
> -        if (in_init == 0)                                                  \
> -            virReportErrorHelper(VIR_FROM_XEN, code, __FILE__,             \
> -                                 __FUNCTION__, __LINE__, __VA_ARGS__)
> -

This error reporting macro is different from the other ones you nuked in 
the previous patches. This one does not print the error if the global 
static variable "in_init" in xen_hypervisor.c is non-zero.

Skimming through the code in xenHypervisorInit the program flow may 
leave the function without reseting in_init to 0 and thus suppressing 
error reporting from all parts of this file. Also in_init is compared 
only in that macro, so removing the use of that makes that variable 
pointless. I don't know if suppressing errors during init of xen driver 
is needed but either way, this part wil need tweaking.

NACK to changes in this file until it gets cleared.

>   /**
>    * xenHypervisorDoV0Op:
>    * @handle: the handle to the Xen hypervisor
> @@ -901,18 +896,18 @@ xenHypervisorDoV0Op(int handle, xen_op_v0 * op)
>       hc.arg[0] = (unsigned long) op;
>
>       if (lock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " locking");
> +        virReportError(VIR_ERR_XEN_CALL, " locking");
>           return -1;
>       }
>
>       ret = ioctl(handle, xen_ioctl_hypercall_cmd, (unsigned long) &hc);
>       if (ret < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " ioctl %d",
> -                    xen_ioctl_hypercall_cmd);
> +        virReportError(VIR_ERR_XEN_CALL, " ioctl %d",
> +                       xen_ioctl_hypercall_cmd);
>       }
>
>       if (unlock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " releasing");
> +        virReportError(VIR_ERR_XEN_CALL, " releasing");
>           ret = -1;
>       }
>
> @@ -943,18 +938,18 @@ xenHypervisorDoV1Op(int handle, xen_op_v1* op)
>       hc.arg[0] = (unsigned long) op;
>
>       if (lock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " locking");
> +        virReportError(VIR_ERR_XEN_CALL, " locking");
>           return -1;
>       }
>
>       ret = ioctl(handle, xen_ioctl_hypercall_cmd, (unsigned long) &hc);
>       if (ret < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " ioctl %d",
> -                    xen_ioctl_hypercall_cmd);
> +        virReportError(VIR_ERR_XEN_CALL, " ioctl %d",
> +                       xen_ioctl_hypercall_cmd);
>       }
>
>       if (unlock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " releasing");
> +        virReportError(VIR_ERR_XEN_CALL, " releasing");
>           ret = -1;
>       }
>
> @@ -986,18 +981,18 @@ xenHypervisorDoV2Sys(int handle, xen_op_v2_sys* op)
>       hc.arg[0] = (unsigned long) op;
>
>       if (lock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " locking");
> +        virReportError(VIR_ERR_XEN_CALL, " locking");
>           return -1;
>       }
>
>       ret = ioctl(handle, xen_ioctl_hypercall_cmd, (unsigned long) &hc);
>       if (ret < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " sys ioctl %d",
> -                                            xen_ioctl_hypercall_cmd);
> +        virReportError(VIR_ERR_XEN_CALL, " sys ioctl %d",
> +                       xen_ioctl_hypercall_cmd);
>       }
>
>       if (unlock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " releasing");
> +        virReportError(VIR_ERR_XEN_CALL, " releasing");
>           ret = -1;
>       }
>
> @@ -1029,18 +1024,18 @@ xenHypervisorDoV2Dom(int handle, xen_op_v2_dom* op)
>       hc.arg[0] = (unsigned long) op;
>
>       if (lock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " locking");
> +        virReportError(VIR_ERR_XEN_CALL, " locking");
>           return -1;
>       }
>
>       ret = ioctl(handle, xen_ioctl_hypercall_cmd, (unsigned long) &hc);
>       if (ret < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " ioctl %d",
> -                    xen_ioctl_hypercall_cmd);
> +        virReportError(VIR_ERR_XEN_CALL, " ioctl %d",
> +                       xen_ioctl_hypercall_cmd);
>       }
>
>       if (unlock_pages(op, sizeof(dom0_op_t)) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " releasing");
> +        virReportError(VIR_ERR_XEN_CALL, " releasing");
>           ret = -1;
>       }
>
> @@ -1069,7 +1064,7 @@ virXen_getdomaininfolist(int handle, int first_domain, int maxids,
>
>       if (lock_pages(XEN_GETDOMAININFOLIST_DATA(dominfos),
>                 XEN_GETDOMAININFO_SIZE * maxids) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " locking");
> +        virReportError(VIR_ERR_XEN_CALL, " locking");
>           return -1;
>       }
>       if (hv_versions.hypervisor > 1) {
> @@ -1124,7 +1119,7 @@ virXen_getdomaininfolist(int handle, int first_domain, int maxids,
>       }
>       if (unlock_pages(XEN_GETDOMAININFOLIST_DATA(dominfos),
>                   XEN_GETDOMAININFO_SIZE * maxids) < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, " release");
> +        virReportError(VIR_ERR_XEN_CALL, " release");
>           ret = -1;
>       }
>       return ret;
> @@ -1161,20 +1156,20 @@ xenHypervisorGetSchedulerType(virDomainPtr domain, int *nparams)
>       xenUnifiedPrivatePtr priv;
>
>       if (domain->conn == NULL) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("domain or conn is NULL"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("domain or conn is NULL"));
>           return NULL;
>       }
>
>       priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
>       if (priv->handle < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("priv->handle invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("priv->handle invalid"));
>           return NULL;
>       }
>       if (domain->id < 0) {
> -        virXenError(VIR_ERR_OPERATION_INVALID,
> -                    "%s", _("domain is not running"));
> +        virReportError(VIR_ERR_OPERATION_INVALID,
> +                       "%s", _("domain is not running"));
>           return NULL;
>       }
>
> @@ -1184,8 +1179,8 @@ xenHypervisorGetSchedulerType(virDomainPtr domain, int *nparams)
>        * TODO: check on Xen 3.0.3
>        */
>       if (hv_versions.dom_interface < 5) {
> -        virXenError(VIR_ERR_NO_XEN, "%s",
> -                    _("unsupported in dom interface < 5"));
> +        virReportError(VIR_ERR_NO_XEN, "%s",
> +                       _("unsupported in dom interface < 5"));
>           return NULL;
>       }
>
> @@ -1242,20 +1237,20 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
>       xenUnifiedPrivatePtr priv;
>
>       if (domain->conn == NULL) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("domain or conn is NULL"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("domain or conn is NULL"));
>           return -1;
>       }
>
>       priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
>       if (priv->handle < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("priv->handle invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("priv->handle invalid"));
>           return -1;
>       }
>       if (domain->id < 0) {
> -        virXenError(VIR_ERR_OPERATION_INVALID,
> -                    "%s", _("domain is not running"));
> +        virReportError(VIR_ERR_OPERATION_INVALID,
> +                       "%s", _("domain is not running"));
>           return -1;
>       }
>
> @@ -1265,8 +1260,8 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
>        * TODO: check on Xen 3.0.3
>        */
>       if (hv_versions.dom_interface < 5) {
> -        virXenError(VIR_ERR_NO_XEN, "%s",
> -                    _("unsupported in dom interface < 5"));
> +        virReportError(VIR_ERR_NO_XEN, "%s",
> +                       _("unsupported in dom interface < 5"));
>           return -1;
>       }
>
> @@ -1284,8 +1279,8 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
>           switch (op_sys.u.getschedulerid.sched_id){
>               case XEN_SCHEDULER_SEDF:
>                   if (*nparams < XEN_SCHED_SEDF_NPARAM) {
> -                    virXenError(VIR_ERR_INVALID_ARG,
> -                                "%s", _("Invalid parameter count"));
> +                    virReportError(VIR_ERR_INVALID_ARG,
> +                                   "%s", _("Invalid parameter count"));
>                       return -1;
>                   }
>
> @@ -1319,9 +1314,9 @@ xenHypervisorGetSchedulerParameters(virDomainPtr domain,
>                       *nparams = XEN_SCHED_CRED_NPARAM;
>                   break;
>               default:
> -                virXenError(VIR_ERR_INVALID_ARG,
> -                            _("Unknown scheduler %d"),
> -                            op_sys.u.getschedulerid.sched_id);
> +                virReportError(VIR_ERR_INVALID_ARG,
> +                               _("Unknown scheduler %d"),
> +                               op_sys.u.getschedulerid.sched_id);
>                   return -1;
>           }
>       }
> @@ -1348,8 +1343,8 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>       char buf[256];
>
>       if (domain->conn == NULL) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("domain or conn is NULL"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("domain or conn is NULL"));
>           return -1;
>       }
>
> @@ -1368,13 +1363,13 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>
>       priv = (xenUnifiedPrivatePtr) domain->conn->privateData;
>       if (priv->handle < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("priv->handle invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("priv->handle invalid"));
>           return -1;
>       }
>       if (domain->id < 0) {
> -        virXenError(VIR_ERR_OPERATION_INVALID,
> -                    "%s", _("domain is not running"));
> +        virReportError(VIR_ERR_OPERATION_INVALID,
> +                       "%s", _("domain is not running"));
>           return -1;
>       }
>
> @@ -1384,8 +1379,8 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>        * TODO: check on Xen 3.0.3
>        */
>       if (hv_versions.dom_interface < 5) {
> -        virXenError(VIR_ERR_NO_XEN, "%s",
> -                    _("unsupported in dom interface < 5"));
> +        virReportError(VIR_ERR_NO_XEN, "%s",
> +                       _("unsupported in dom interface < 5"));
>           return -1;
>       }
>
> @@ -1423,18 +1418,18 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>                   if (STREQ(params[i].field, VIR_DOMAIN_SCHEDULER_WEIGHT)) {
>                       val = params[i].value.ui;
>                       if ((val < 1) || (val > USHRT_MAX)) {
> -                        virXenError(VIR_ERR_INVALID_ARG,
> -                                    _("Credit scheduler weight parameter (%d) "
> -                                      "is out of range (1-65535)"), val);
> +                        virReportError(VIR_ERR_INVALID_ARG,
> +                                       _("Credit scheduler weight parameter (%d) "
> +                                         "is out of range (1-65535)"), val);
>                           return -1;
>                       }
>                       op_dom.u.getschedinfo.u.credit.weight = val;
>                   } else if (STREQ(params[i].field, VIR_DOMAIN_SCHEDULER_CAP)) {
>                       val = params[i].value.ui;
>                       if (val >= USHRT_MAX) {
> -                        virXenError(VIR_ERR_INVALID_ARG,
> -                                    _("Credit scheduler cap parameter (%d) is "
> -                                      "out of range (0-65534)"), val);
> +                        virReportError(VIR_ERR_INVALID_ARG,
> +                                       _("Credit scheduler cap parameter (%d) is "
> +                                         "out of range (0-65534)"), val);
>                           return -1;
>                       }
>                       op_dom.u.getschedinfo.u.credit.cap = val;
> @@ -1447,9 +1442,9 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>               break;
>           }
>           default:
> -            virXenError(VIR_ERR_INVALID_ARG,
> -                        _("Unknown scheduler %d"),
> -                        op_sys.u.getschedulerid.sched_id);
> +            virReportError(VIR_ERR_INVALID_ARG,
> +                           _("Unknown scheduler %d"),
> +                           op_sys.u.getschedulerid.sched_id);
>               return -1;
>           }
>       }
> @@ -1474,8 +1469,8 @@ xenHypervisorDomainBlockStats (virDomainPtr dom,
>       xenUnifiedUnlock(priv);
>       return ret;
>   #else
> -    virXenError(VIR_ERR_OPERATION_INVALID, "%s",
> -                _("block statistics not supported on this platform"));
> +    virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                   _("block statistics not supported on this platform"));
>       return -1;
>   #endif
>   }
> @@ -1499,20 +1494,20 @@ xenHypervisorDomainInterfaceStats (virDomainPtr dom,
>        * domain.
>        */
>       if (sscanf(path, "vif%d.%d", &rqdomid, &device) != 2) {
> -        virXenError(VIR_ERR_INVALID_ARG, "%s",
> -                    _("invalid path, should be vif<domid>.<n>."));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
> +                       _("invalid path, should be vif<domid>.<n>."));
>           return -1;
>       }
>       if (rqdomid != dom->id) {
> -        virXenError(VIR_ERR_INVALID_ARG, "%s",
> -                    _("invalid path, vif<domid> should match this domain ID"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
> +                       _("invalid path, vif<domid> should match this domain ID"));
>           return -1;
>       }
>
>       return linuxDomainInterfaceStats(path, stats);
>   #else
> -    virXenError(VIR_ERR_OPERATION_INVALID, "%s",
> -                _("/proc/net/dev: Interface not found"));
> +    virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                   _("/proc/net/dev: Interface not found"));
>       return -1;
>   #endif
>   }
> @@ -1748,7 +1743,7 @@ virXen_setvcpumap(int handle, int id, unsigned int vcpu,
>           xen_op_v2_dom op;
>
>           if (lock_pages(cpumap, maplen) < 0) {
> -            virXenError(VIR_ERR_XEN_CALL, " locking");
> +            virReportError(VIR_ERR_XEN_CALL, " locking");
>               return -1;
>           }
>           memset(&op, 0, sizeof(op));
> @@ -1783,7 +1778,7 @@ virXen_setvcpumap(int handle, int id, unsigned int vcpu,
>           VIR_FREE(new);
>
>           if (unlock_pages(cpumap, maplen) < 0) {
> -            virXenError(VIR_ERR_XEN_CALL, " release");
> +            virReportError(VIR_ERR_XEN_CALL, " release");
>               ret = -1;
>           }
>       } else {
> @@ -1880,7 +1875,7 @@ virXen_getvcpusinfo(int handle, int id, unsigned int vcpu, virVcpuInfoPtr ipt,
>           }
>           if ((cpumap != NULL) && (maplen > 0)) {
>               if (lock_pages(cpumap, maplen) < 0) {
> -                virXenError(VIR_ERR_XEN_CALL, " locking");
> +                virReportError(VIR_ERR_XEN_CALL, " locking");
>                   return -1;
>               }
>               memset(cpumap, 0, maplen);
> @@ -1898,7 +1893,7 @@ virXen_getvcpusinfo(int handle, int id, unsigned int vcpu, virVcpuInfoPtr ipt,
>               }
>               ret = xenHypervisorDoV2Dom(handle, &op);
>               if (unlock_pages(cpumap, maplen) < 0) {
> -                virXenError(VIR_ERR_XEN_CALL, " release");
> +                virReportError(VIR_ERR_XEN_CALL, " release");
>                   ret = -1;
>               }
>           }
> @@ -1998,7 +1993,7 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
>           char error[100];
>           regerror (errcode, &flags_hvm_rec, error, sizeof(error));
>           regfree (&flags_hvm_rec);
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s", error);
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);
>           in_init = 0;
>           return -1;
>       }
> @@ -2008,7 +2003,7 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
>           regerror (errcode, &flags_pae_rec, error, sizeof(error));
>           regfree (&flags_pae_rec);
>           regfree (&flags_hvm_rec);
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s", error);
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);
>           in_init = 0;
>           return -1;
>       }
> @@ -2019,7 +2014,7 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
>           regfree (&xen_cap_rec);
>           regfree (&flags_pae_rec);
>           regfree (&flags_hvm_rec);
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s", error);
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", error);
>           in_init = 0;
>           return -1;
>       }
> @@ -2079,8 +2074,8 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
>        */
>
>       hv_versions.hypervisor = -1;
> -    virXenError(VIR_ERR_XEN_CALL, " ioctl %lu",
> -                (unsigned long) IOCTL_PRIVCMD_HYPERCALL);
> +    virReportError(VIR_ERR_XEN_CALL, " ioctl %lu",
> +                   (unsigned long) IOCTL_PRIVCMD_HYPERCALL);
>       VIR_FORCE_CLOSE(fd);
>       in_init = 0;
>       return -1;
> @@ -2184,8 +2179,8 @@ xenHypervisorInit(struct xenHypervisorVersions *override_versions)
>
>       VIR_DEBUG("Failed to find any Xen hypervisor method");
>       hv_versions.hypervisor = -1;
> -    virXenError(VIR_ERR_XEN_CALL, " ioctl %lu",
> -                (unsigned long)IOCTL_PRIVCMD_HYPERCALL);
> +    virReportError(VIR_ERR_XEN_CALL, " ioctl %lu",
> +                   (unsigned long)IOCTL_PRIVCMD_HYPERCALL);
>       VIR_FORCE_CLOSE(fd);
>       in_init = 0;
>       VIR_FREE(ipt);
> @@ -2226,7 +2221,7 @@ xenHypervisorOpen(virConnectPtr conn,
>
>       ret = open(XEN_HYPERVISOR_SOCKET, O_RDWR);
>       if (ret < 0) {
> -        virXenError(VIR_ERR_NO_XEN, "%s", XEN_HYPERVISOR_SOCKET);
> +        virReportError(VIR_ERR_NO_XEN, "%s", XEN_HYPERVISOR_SOCKET);
>           return -1;
>       }
>
> @@ -2925,30 +2920,30 @@ xenHypervisorDomainGetOSType (virDomainPtr dom)
>
>       priv = (xenUnifiedPrivatePtr) dom->conn->privateData;
>       if (priv->handle < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("domain shut off or invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("domain shut off or invalid"));
>           return NULL;
>       }
>
>       /* HV's earlier than 3.1.0 don't include the HVM flags in guests status*/
>       if (hv_versions.hypervisor < 2 ||
>           hv_versions.dom_interface < 4) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("unsupported in dom interface < 4"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("unsupported in dom interface < 4"));
>           return NULL;
>       }
>
>       XEN_GETDOMAININFO_CLEAR(dominfo);
>
>       if (virXen_getdomaininfo(priv->handle, dom->id, &dominfo) < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("cannot get domain details"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("cannot get domain details"));
>           return NULL;
>       }
>
>       if (XEN_GETDOMAININFO_DOMAIN(dominfo) != dom->id) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("cannot get domain details"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("cannot get domain details"));
>           return NULL;
>       }
>
> @@ -3347,21 +3342,21 @@ xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *free
>       xenUnifiedPrivatePtr priv;
>
>       if (conn == NULL) {
> -        virXenError(VIR_ERR_INVALID_ARG, "%s", _("invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s", _("invalid argument"));
>           return -1;
>       }
>
>       priv = conn->privateData;
>
>       if (priv->nbNodeCells < 0) {
> -        virXenError(VIR_ERR_XEN_CALL, "%s",
> -                    _("cannot determine actual number of cells"));
> +        virReportError(VIR_ERR_XEN_CALL, "%s",
> +                       _("cannot determine actual number of cells"));
>           return -1;
>       }
>
>       if ((maxCells < 1) || (startCell >= priv->nbNodeCells)) {
> -        virXenError(VIR_ERR_INVALID_ARG, "%s",
> -                    _("invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
> +                       _("invalid argument"));
>           return -1;
>       }
>
> @@ -3369,14 +3364,14 @@ xenHypervisorNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long *free
>        * Support only hv_versions.sys_interface >=4
>        */
>       if (hv_versions.sys_interface < SYS_IFACE_MIN_VERS_NUMA) {
> -        virXenError(VIR_ERR_XEN_CALL, "%s",
> -                    _("unsupported in sys interface < 4"));
> +        virReportError(VIR_ERR_XEN_CALL, "%s",
> +                       _("unsupported in sys interface < 4"));
>           return -1;
>       }
>
>       if (priv->handle < 0) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("priv->handle invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("priv->handle invalid"));
>           return -1;
>       }
>
> @@ -3617,13 +3612,13 @@ xenHypervisorGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
>       if (priv->handle < 0 || (domain->id < 0) ||
>           (info == NULL) || (maxinfo < 1) ||
>           (sizeof(cpumap_t) & 7)) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("domain shut off or invalid"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("domain shut off or invalid"));
>           return -1;
>       }
>       if ((cpumaps != NULL) && (maplen < 1)) {
> -        virXenError(VIR_ERR_INVALID_ARG, "%s",
> -                    _("invalid argument"));
> +        virReportError(VIR_ERR_INVALID_ARG, "%s",
> +                       _("invalid argument"));
>           return -1;
>       }
>       /* first get the number of virtual CPUs in this domain */
> @@ -3632,8 +3627,8 @@ xenHypervisorGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
>                                  &dominfo);
>
>       if ((ret < 0) || (XEN_GETDOMAININFO_DOMAIN(dominfo) != domain->id)) {
> -        virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                    _("cannot get domain details"));
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("cannot get domain details"));
>           return -1;
>       }
>       nbinfo = XEN_GETDOMAININFO_CPUCOUNT(dominfo) + 1;
> @@ -3649,16 +3644,16 @@ xenHypervisorGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo,
>                                         (unsigned char *)VIR_GET_CPUMAP(cpumaps, maplen, i),
>                                         maplen);
>               if (ret < 0) {
> -                virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                            _("cannot get VCPUs info"));
> +                virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                               _("cannot get VCPUs info"));
>                   return -1;
>               }
>           } else {
>               ret = virXen_getvcpusinfo(priv->handle, domain->id, i,
>                                         ipt, NULL, 0);
>               if (ret < 0) {
> -                virXenError(VIR_ERR_INTERNAL_ERROR, "%s",
> -                            _("cannot get VCPUs info"));
> +                virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                               _("cannot get VCPUs info"));
>                   return -1;
>               }
>           }


> diff --git a/src/xen/xen_inotify.c b/src/xen/xen_inotify.c

ACK to changes in this file.

> diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c

ACK to changes in this file.

> diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c

ACK to changes in this file.

> diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c

ACK to changes in this file.

Apart from the problematic macro in src/xen/xen_hypervisor.c and some 
pre-existing virReportError(VIR_ERR_INVALID_ARG, __FUNCTION__) this 
patch looks fine, but I have to give:

NACK until src/xen/xen_hypervisor.c gets clarified.

Peter




More information about the libvir-list mailing list