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,