From 3eb869a04bdeaddbe10e74568540e865fb79e412 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Tue, 5 Apr 2011 10:07:57 -0600 Subject: [PATCH] libxl: avoid compiler warning cc1: warnings being treated as errors libxl/libxl_driver.c: In function 'libxlDomainSetVcpusFlags': libxl/libxl_driver.c:1570:14: error: cast from function call of type 'double' to non-matching type 'unsigned int' [-Wbad-function-cast] libxl/libxl_driver.c:1578:15: error: cast from function call of type 'double' to non-matching type 'unsigned int' [-Wbad-function-cast] This was the only use of floor() and ceil(), and floating-point is overkill for power-of-two manipulations. * src/libxl/libxl_driver.c (libxlDomainSetVcpusFlags): Avoid -lm for trivial computations. --- src/libxl/libxl_driver.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 75f99c1f0..8cc446900 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1567,15 +1567,14 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, if (!(def = virDomainObjGetPersistentDef(driver->caps, vm))) goto cleanup; - maplen = (unsigned int) ceil((double) nvcpus / 8); + maplen = VIR_CPU_MAPLEN(nvcpus); if (VIR_ALLOC_N(bitmask, maplen) < 0) { virReportOOMError(); goto cleanup; } - memset(bitmask, 0, maplen); for (i = 0; i < nvcpus; ++i) { - pos = (unsigned int) floor((double) i / 8); + pos = i / 8; bitmask[pos] |= 1 << (i % 8); } -- 2.39.5