Message ID | 1461682343-20597-13-git-send-email-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Apr 26, 2016 at 04:52:21PM +0200, Roger Pau Monne wrote: > The xc_psr_* functions expect the type to be xc_psr_cat_type instead of > libxl_psr_cbm_type, so do the conversion. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Acked-by: Wei Liu <wei.liu2@citrix.com> > --- > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > --- > tools/libxl/libxl_psr.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c > index 3d0dc61..40f2d5f 100644 > --- a/tools/libxl/libxl_psr.c > +++ b/tools/libxl/libxl_psr.c > @@ -298,6 +298,7 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, > uint64_t cbm) > { > GC_INIT(ctx); > + BUILD_BUG_ON(sizeof(libxl_psr_cbm_type) != sizeof(xc_psr_cat_type)); > int rc; > int socketid, nr_sockets; > > @@ -310,7 +311,8 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, > libxl_for_each_set_bit(socketid, *target_map) { > if (socketid >= nr_sockets) > break; > - if (xc_psr_cat_set_domain_data(ctx->xch, domid, type, socketid, cbm)) { > + if (xc_psr_cat_set_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, > + socketid, cbm)) { > libxl__psr_cat_log_err_msg(gc, errno); > rc = ERROR_FAIL; > } > @@ -328,7 +330,8 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid, > GC_INIT(ctx); > int rc = 0; > > - if (xc_psr_cat_get_domain_data(ctx->xch, domid, type, target, cbm_r)) { > + if (xc_psr_cat_get_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, > + target, cbm_r)) { > libxl__psr_cat_log_err_msg(gc, errno); > rc = ERROR_FAIL; > } > -- > 2.6.4 (Apple Git-63) >
Wei Liu writes ("Re: [PATCH v2 for-4.7 12/14] libxl: fix passing the type argument to xc_psr_*"): > On Tue, Apr 26, 2016 at 04:52:21PM +0200, Roger Pau Monne wrote: > > The xc_psr_* functions expect the type to be xc_psr_cat_type instead of > > libxl_psr_cbm_type, so do the conversion. > > > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > > Acked-by: Wei Liu <wei.liu2@citrix.com> Nacked-by: Ian Jackson <ian.jackson@eu.citrix.com> > > - if (xc_psr_cat_set_domain_data(ctx->xch, domid, type, socketid, cbm)) { > > + if (xc_psr_cat_set_domain_data(ctx->xch, domid, (xc_psr_cat_typ e)type, > > + socketid, cbm)) { I'm very much against introducing casts which are not absolutely necessary. Casts are a big hammer which can suppress important warnings (such as conversions between integers and pointers). This anomaly with the same enum defined in two places with two names is pretty poor. But if we are to perpetuate it, as perhaps we must, then rather than casting at each conversion point, we should introduce an inline function which contains the cast. That way each call site remains more typesafe. Thanks, Ian.
diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c index 3d0dc61..40f2d5f 100644 --- a/tools/libxl/libxl_psr.c +++ b/tools/libxl/libxl_psr.c @@ -298,6 +298,7 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, uint64_t cbm) { GC_INIT(ctx); + BUILD_BUG_ON(sizeof(libxl_psr_cbm_type) != sizeof(xc_psr_cat_type)); int rc; int socketid, nr_sockets; @@ -310,7 +311,8 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, libxl_for_each_set_bit(socketid, *target_map) { if (socketid >= nr_sockets) break; - if (xc_psr_cat_set_domain_data(ctx->xch, domid, type, socketid, cbm)) { + if (xc_psr_cat_set_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, + socketid, cbm)) { libxl__psr_cat_log_err_msg(gc, errno); rc = ERROR_FAIL; } @@ -328,7 +330,8 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid, GC_INIT(ctx); int rc = 0; - if (xc_psr_cat_get_domain_data(ctx->xch, domid, type, target, cbm_r)) { + if (xc_psr_cat_get_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, + target, cbm_r)) { libxl__psr_cat_log_err_msg(gc, errno); rc = ERROR_FAIL; }
The xc_psr_* functions expect the type to be xc_psr_cat_type instead of libxl_psr_cbm_type, so do the conversion. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> --- tools/libxl/libxl_psr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)