[Libvirt-cim] [PATCH] Add KVM proc/mem check in _resource_dynamic()

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Wed Jun 4 00:41:36 UTC 2008


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1212540049 25200
# Node ID 8fdff95eb25e04745c992a76a85f45039e5022a5
# Parent  345ed17b623f12a2befafa7841c2ae89b1a47dc7
Add KVM proc/mem check in _resource_dynamic().

KVM doesn't support VCPU / memory modification of running guests.

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 345ed17b623f -r 8fdff95eb25e src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c	Tue Jun 03 11:48:18 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c	Tue Jun 03 17:40:49 2008 -0700
@@ -912,6 +912,7 @@
         virConnectPtr conn;
         virDomainPtr dom;
         int (*func)(virDomainPtr, struct virt_device *);
+        char *prefix = NULL;
 
         if (action == RESOURCE_ADD)
                 func = attach_device;
@@ -951,6 +952,17 @@
                 goto out;
         }
 
+        prefix = class_prefix_name(refcn); 
+        
+        if  (((dev->type == CIM_RES_TYPE_PROC) || 
+            (dev->type == CIM_RES_TYPE_MEM)) && (STREQ(prefix, "KVM"))) {
+                cu_statusf(_BROKER, &s,
+                           CMPI_RC_ERR_FAILED,
+                           "Running guest cannot modify resource type %" PRIu16,
+                           dev->type);
+                goto out;
+        }
+
         CU_DEBUG("Doing dynamic device update for `%s'", dominfo->name);
 
         if (func(dom, dev) == 0) {
@@ -963,6 +975,7 @@
                            "");
         }
  out:
+        free(prefix);
         virDomainFree(dom);
         virConnectClose(conn);
 




More information about the Libvirt-cim mailing list