From c95b9557b5144831066e900211d28e2ba0a0bab8 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Thu, 8 Feb 2018 15:47:46 +0100 Subject: [PATCH] util: Initialize virResctrlInfo struct right away MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is no need to have virResctrlGetInfo() when it must be called after virResctrlInfoNew() anyway, otherwise it's just an unusable object. When we wrap the logic inside the New() function we'll save some calls later as well. Signed-off-by: Martin Kletzander Reviewed-by: Ján Tomko --- src/conf/capabilities.c | 2 +- src/libvirt_private.syms | 1 - src/util/virresctrl.c | 15 +++++++++++++-- src/util/virresctrl.h | 3 --- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index d5f6f00730..978edf8719 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -1604,7 +1604,7 @@ virCapabilitiesInitResctrl(virCapsPtr caps) if (!caps->host.resctrl) return -1; - return virResctrlGetInfo(caps->host.resctrl); + return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 3a9680b3cd..3f54790297 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2632,7 +2632,6 @@ virResctrlAllocNew; virResctrlAllocRemove; virResctrlAllocSetID; virResctrlAllocSetSize; -virResctrlGetInfo; virResctrlInfoGetCache; virResctrlInfoNew; diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c index 13baa82be0..06a85d0d40 100644 --- a/src/util/virresctrl.c +++ b/src/util/virresctrl.c @@ -314,7 +314,7 @@ virResctrlUnlock(int fd) /* virResctrlInfo-related definitions */ -int +static int virResctrlGetInfo(virResctrlInfoPtr resctrl) { DIR *dirp = NULL; @@ -448,10 +448,21 @@ virResctrlGetInfo(virResctrlInfoPtr resctrl) virResctrlInfoPtr virResctrlInfoNew(void) { + virResctrlInfoPtr ret = NULL; + if (virResctrlInitialize() < 0) return NULL; - return virObjectNew(virResctrlInfoClass); + ret = virObjectNew(virResctrlInfoClass); + if (!ret) + return NULL; + + if (virResctrlGetInfo(ret) < 0) { + virObjectUnref(ret); + return NULL; + } + + return ret; } diff --git a/src/util/virresctrl.h b/src/util/virresctrl.h index cc648b521e..a348fa7ab1 100644 --- a/src/util/virresctrl.h +++ b/src/util/virresctrl.h @@ -55,9 +55,6 @@ typedef virResctrlInfo *virResctrlInfoPtr; virResctrlInfoPtr virResctrlInfoNew(void); -int -virResctrlGetInfo(virResctrlInfoPtr resctrl); - int virResctrlInfoGetCache(virResctrlInfoPtr resctrl, unsigned int level, -- GitLab