Accepting request 55880 from Virtualization
Accepted submit request 55880 from user jfehlig OBS-URL: https://build.opensuse.org/request/show/55880 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=63
This commit is contained in:
commit
d6456a07bc
18
45147ca3-macvtap-warning.patch
Normal file
18
45147ca3-macvtap-warning.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
commit 45147ca37f3d93ea67b02a6c0e435bdf40b4ddc5
|
||||||
|
Author: Jean-Baptiste Rouault <jean-baptiste.rouault@diateam.net>
|
||||||
|
Date: Wed Dec 1 12:00:32 2010 +0100
|
||||||
|
|
||||||
|
Fix warning when macvtap support is disabled
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
|
||||||
|
index b0343c6..7cd0603 100644
|
||||||
|
--- a/src/qemu/qemu_conf.c
|
||||||
|
+++ b/src/qemu/qemu_conf.c
|
||||||
|
@@ -1689,6 +1689,7 @@ qemudPhysIfaceConnect(virConnectPtr conn,
|
||||||
|
(void)qemuCmdFlags;
|
||||||
|
(void)driver;
|
||||||
|
(void)vmuuid;
|
||||||
|
+ (void)vmop;
|
||||||
|
qemuReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
"%s", _("No support for macvtap device"));
|
||||||
|
rc = -1;
|
121
474b1c14-macvtap-undefined.patch
Normal file
121
474b1c14-macvtap-undefined.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
commit 474b1c1487828a17fe9e1025901334d9820ea350
|
||||||
|
Author: Matthias Bolte <matthias.bolte@googlemail.com>
|
||||||
|
Date: Wed Dec 1 15:43:40 2010 +0100
|
||||||
|
|
||||||
|
Fix undefined symbol errors when macvtap support is disabled
|
||||||
|
|
||||||
|
Use macvtap specific functions depending on WITH_MACVTAP.
|
||||||
|
|
||||||
|
Use #if instead of #ifdef to check for WITH_MACVTAP, because
|
||||||
|
WITH_MACVTAP is always defined with value 0 or 1.
|
||||||
|
|
||||||
|
Also export virVMOperationType{To|From}String unconditional,
|
||||||
|
because they are used unconditional in the domain config code.
|
||||||
|
|
||||||
|
Index: libvirt-0.8.6/src/libvirt_macvtap.syms
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-0.8.6.orig/src/libvirt_macvtap.syms
|
||||||
|
+++ libvirt-0.8.6/src/libvirt_macvtap.syms
|
||||||
|
@@ -1,9 +1,10 @@
|
||||||
|
#
|
||||||
|
+# These symbols are dependent on WITH_MACVTAP.
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
|
||||||
|
# macvtap.h
|
||||||
|
delMacvtap;
|
||||||
|
openMacvtapTap;
|
||||||
|
-virVMOperationTypeFromString;
|
||||||
|
-virVMOperationTypeToString;
|
||||||
|
vpAssociatePortProfileId;
|
||||||
|
vpDisassociatePortProfileId;
|
||||||
|
Index: libvirt-0.8.6/src/libvirt_private.syms
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-0.8.6.orig/src/libvirt_private.syms
|
||||||
|
+++ libvirt-0.8.6/src/libvirt_private.syms
|
||||||
|
@@ -503,6 +503,11 @@ virLogStartup;
|
||||||
|
virLogUnlock;
|
||||||
|
|
||||||
|
|
||||||
|
+# macvtap.h
|
||||||
|
+virVMOperationTypeFromString;
|
||||||
|
+virVMOperationTypeToString;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# memory.h
|
||||||
|
virAlloc;
|
||||||
|
virAllocN;
|
||||||
|
Index: libvirt-0.8.6/src/qemu/qemu_driver.c
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-0.8.6.orig/src/qemu/qemu_driver.c
|
||||||
|
+++ libvirt-0.8.6/src/qemu/qemu_driver.c
|
||||||
|
@@ -11869,6 +11869,7 @@ cleanup:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if WITH_MACVTAP
|
||||||
|
static void
|
||||||
|
qemudVPAssociatePortProfiles(virDomainDefPtr def) {
|
||||||
|
int i;
|
||||||
|
@@ -11903,6 +11904,10 @@ err_exit:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+#else /* !WITH_MACVTAP */
|
||||||
|
+static void
|
||||||
|
+qemudVPAssociatePortProfiles(virDomainDefPtr def ATTRIBUTE_UNUSED) { }
|
||||||
|
+#endif /* WITH_MACVTAP */
|
||||||
|
|
||||||
|
/* Finish is the third and final step, and it runs on the destination host. */
|
||||||
|
static virDomainPtr
|
||||||
|
Index: libvirt-0.8.6/src/util/macvtap.h
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-0.8.6.orig/src/util/macvtap.h
|
||||||
|
+++ libvirt-0.8.6/src/util/macvtap.h
|
||||||
|
@@ -57,11 +57,6 @@ struct _virVirtualPortProfileParams {
|
||||||
|
} u;
|
||||||
|
};
|
||||||
|
|
||||||
|
-
|
||||||
|
-# if defined(WITH_MACVTAP)
|
||||||
|
-
|
||||||
|
-# include "internal.h"
|
||||||
|
-
|
||||||
|
enum virVMOperationType {
|
||||||
|
VIR_VM_OP_CREATE,
|
||||||
|
VIR_VM_OP_SAVE,
|
||||||
|
@@ -75,6 +70,10 @@ enum virVMOperationType {
|
||||||
|
VIR_VM_OP_LAST
|
||||||
|
};
|
||||||
|
|
||||||
|
+# if WITH_MACVTAP
|
||||||
|
+
|
||||||
|
+# include "internal.h"
|
||||||
|
+
|
||||||
|
int openMacvtapTap(const char *ifname,
|
||||||
|
const unsigned char *macaddress,
|
||||||
|
const char *linkdev,
|
||||||
|
@@ -90,11 +89,9 @@ void delMacvtap(const char *ifname,
|
||||||
|
const char *linkdev,
|
||||||
|
virVirtualPortProfileParamsPtr virtPortProfile);
|
||||||
|
|
||||||
|
-# endif /* WITH_MACVTAP */
|
||||||
|
-
|
||||||
|
-# define MACVTAP_MODE_PRIVATE_STR "private"
|
||||||
|
-# define MACVTAP_MODE_VEPA_STR "vepa"
|
||||||
|
-# define MACVTAP_MODE_BRIDGE_STR "bridge"
|
||||||
|
+# define MACVTAP_MODE_PRIVATE_STR "private"
|
||||||
|
+# define MACVTAP_MODE_VEPA_STR "vepa"
|
||||||
|
+# define MACVTAP_MODE_BRIDGE_STR "bridge"
|
||||||
|
|
||||||
|
int vpAssociatePortProfileId(const char *macvtap_ifname,
|
||||||
|
const unsigned char *macvtap_macaddr,
|
||||||
|
@@ -109,6 +106,8 @@ int vpDisassociatePortProfileId(const ch
|
||||||
|
const virVirtualPortProfileParamsPtr virtPort,
|
||||||
|
enum virVMOperationType vmOp);
|
||||||
|
|
||||||
|
+# endif /* WITH_MACVTAP */
|
||||||
|
+
|
||||||
|
VIR_ENUM_DECL(virVirtualPort)
|
||||||
|
VIR_ENUM_DECL(virVMOperation)
|
||||||
|
|
@ -1,57 +0,0 @@
|
|||||||
commit b164db623c7dce2d75b100abae3be6ffd162c4e4
|
|
||||||
Author: Eric Blake <eblake@redhat.com>
|
|
||||||
Date: Mon Nov 1 12:18:06 2010 -0600
|
|
||||||
|
|
||||||
build: avoid compiler warning in xen code
|
|
||||||
|
|
||||||
* src/xen/xend_internal.c (xenDaemonFormatSxpr): Hoist verify
|
|
||||||
outside of function to avoid a -Wnested-externs warning.
|
|
||||||
* src/xen/xm_internal.c (xenXMDomainConfigFormat): Likewise.
|
|
||||||
Reported by Daniel P. Berrange.
|
|
||||||
|
|
||||||
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
|
|
||||||
index 614c036..5c3a4bd 100644
|
|
||||||
--- a/src/xen/xend_internal.c
|
|
||||||
+++ b/src/xen/xend_internal.c
|
|
||||||
@@ -5744,6 +5744,10 @@ xenDaemonFormatSxprInput(virDomainInputDefPtr input,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
+ either 32, or 64 on a platform where long is big enough. */
|
|
||||||
+verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* xenDaemonFormatSxpr:
|
|
||||||
* @conn: pointer to the hypervisor connection
|
|
||||||
@@ -5772,7 +5776,6 @@ xenDaemonFormatSxpr(virConnectPtr conn,
|
|
||||||
virBufferVSprintf(&buf, "(vcpus %u)", def->maxvcpus);
|
|
||||||
/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
either 32, or 64 on a platform where long is big enough. */
|
|
||||||
- verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
if (def->vcpus < def->maxvcpus)
|
|
||||||
virBufferVSprintf(&buf, "(vcpu_avail %lu)", (1UL << def->vcpus) - 1);
|
|
||||||
|
|
||||||
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
|
|
||||||
index 6c5df0f..a4d1a30 100644
|
|
||||||
--- a/src/xen/xm_internal.c
|
|
||||||
+++ b/src/xen/xm_internal.c
|
|
||||||
@@ -2304,6 +2304,10 @@ error:
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
+/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
+ either 32, or 64 on a platform where long is big enough. */
|
|
||||||
+verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
+
|
|
||||||
virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
|
|
||||||
virDomainDefPtr def) {
|
|
||||||
virConfPtr conf = NULL;
|
|
||||||
@@ -2338,7 +2342,6 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
|
|
||||||
goto no_memory;
|
|
||||||
/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
either 32, or 64 on a platform where long is big enough. */
|
|
||||||
- verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
if (def->vcpus < def->maxvcpus &&
|
|
||||||
xenXMConfigSetInt(conf, "vcpu_avail", (1UL << def->vcpus) - 1) < 0)
|
|
||||||
goto no_memory;
|
|
@ -2,7 +2,7 @@ Index: src/lxc/lxc_container.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- src/lxc/lxc_container.c.orig
|
--- src/lxc/lxc_container.c.orig
|
||||||
+++ src/lxc/lxc_container.c
|
+++ src/lxc/lxc_container.c
|
||||||
@@ -831,6 +831,9 @@ int lxcContainerStart(virDomainDefPtr de
|
@@ -838,6 +838,9 @@ int lxcContainerStart(virDomainDefPtr de
|
||||||
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
|
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
|
||||||
|
|
||||||
/* allocate a stack for the container */
|
/* allocate a stack for the container */
|
||||||
@ -12,7 +12,7 @@ Index: src/lxc/lxc_container.c
|
|||||||
if (VIR_ALLOC_N(stack, stacksize) < 0) {
|
if (VIR_ALLOC_N(stack, stacksize) < 0) {
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
return -1;
|
return -1;
|
||||||
@@ -849,7 +852,11 @@ int lxcContainerStart(virDomainDefPtr de
|
@@ -856,7 +859,11 @@ int lxcContainerStart(virDomainDefPtr de
|
||||||
flags |= CLONE_NEWNET;
|
flags |= CLONE_NEWNET;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Index: src/lxc/lxc_container.c
|
|||||||
VIR_FREE(stack);
|
VIR_FREE(stack);
|
||||||
DEBUG("clone() completed, new container PID is %d", pid);
|
DEBUG("clone() completed, new container PID is %d", pid);
|
||||||
|
|
||||||
@@ -875,6 +882,7 @@ int lxcContainerAvailable(int features)
|
@@ -882,6 +889,7 @@ int lxcContainerAvailable(int features)
|
||||||
char *childStack;
|
char *childStack;
|
||||||
char *stack;
|
char *stack;
|
||||||
int childStatus;
|
int childStatus;
|
||||||
@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c
|
|||||||
|
|
||||||
if (features & LXC_CONTAINER_FEATURE_USER)
|
if (features & LXC_CONTAINER_FEATURE_USER)
|
||||||
flags |= CLONE_NEWUSER;
|
flags |= CLONE_NEWUSER;
|
||||||
@@ -882,14 +890,21 @@ int lxcContainerAvailable(int features)
|
@@ -889,14 +897,21 @@ int lxcContainerAvailable(int features)
|
||||||
if (features & LXC_CONTAINER_FEATURE_NET)
|
if (features & LXC_CONTAINER_FEATURE_NET)
|
||||||
flags |= CLONE_NEWNET;
|
flags |= CLONE_NEWNET;
|
||||||
|
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
commit dc27e089bf40ef0336667e2678774b6dadd876a5
|
|
||||||
Author: Eric Blake <eblake@redhat.com>
|
|
||||||
Date: Fri Oct 29 10:51:01 2010 -0600
|
|
||||||
|
|
||||||
xen: work with ia64 MAX_VIRT_CPUS of 64
|
|
||||||
|
|
||||||
* src/xen/xen_hypervisor.c (MAX_VIRT_CPUS): Move...
|
|
||||||
* src/xen/xen_driver.h (MAX_VIRT_CPUS): ...so all xen code can see
|
|
||||||
same value.
|
|
||||||
* src/xen/xend_internal.c (sexpr_to_xend_domain_info)
|
|
||||||
(xenDaemonDomainGetVcpusFlags, xenDaemonParseSxpr)
|
|
||||||
(xenDaemonFormatSxpr): Work if MAX_VIRT_CPUS is 64 on a platform
|
|
||||||
where long is 64-bits.
|
|
||||||
* src/xen/xm_internal.c (xenXMDomainConfigParse)
|
|
||||||
(xenXMDomainConfigFormat): Likewise.
|
|
||||||
|
|
||||||
diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h
|
|
||||||
index 53f97d4..16d22f1 100644
|
|
||||||
--- a/src/xen/xen_driver.h
|
|
||||||
+++ b/src/xen/xen_driver.h
|
|
||||||
@@ -29,6 +29,14 @@
|
|
||||||
# include <winsock2.h>
|
|
||||||
# endif
|
|
||||||
|
|
||||||
+/* xen-unstable changeset 19788 removed MAX_VIRT_CPUS from public
|
|
||||||
+ * headers. Its semantic was retained with XEN_LEGACY_MAX_VCPUS.
|
|
||||||
+ * Ensure MAX_VIRT_CPUS is defined accordingly.
|
|
||||||
+ */
|
|
||||||
+# if !defined(MAX_VIRT_CPUS) && defined(XEN_LEGACY_MAX_VCPUS)
|
|
||||||
+# define MAX_VIRT_CPUS XEN_LEGACY_MAX_VCPUS
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
extern int xenRegister (void);
|
|
||||||
|
|
||||||
# define XEN_UNIFIED_HYPERVISOR_OFFSET 0
|
|
||||||
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
|
|
||||||
index 3797865..ec726fe 100644
|
|
||||||
--- a/src/xen/xen_hypervisor.c
|
|
||||||
+++ b/src/xen/xen_hypervisor.c
|
|
||||||
@@ -109,14 +109,6 @@ typedef privcmd_hypercall_t hypercall_t;
|
|
||||||
# define SYS_IFACE_MIN_VERS_NUMA 4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-/* xen-unstable changeset 19788 removed MAX_VIRT_CPUS from public
|
|
||||||
- * headers. Its semanitc was retained with XEN_LEGACY_MAX_VCPUS.
|
|
||||||
- * Ensure MAX_VIRT_CPUS is defined accordingly.
|
|
||||||
- */
|
|
||||||
-#if !defined(MAX_VIRT_CPUS) && defined(XEN_LEGACY_MAX_VCPUS)
|
|
||||||
-# define MAX_VIRT_CPUS XEN_LEGACY_MAX_VCPUS
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
static int xen_ioctl_hypercall_cmd = 0;
|
|
||||||
static int initialized = 0;
|
|
||||||
static int in_init = 0;
|
|
||||||
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
|
|
||||||
index e96b762..614c036 100644
|
|
||||||
--- a/src/xen/xend_internal.c
|
|
||||||
+++ b/src/xen/xend_internal.c
|
|
||||||
@@ -2192,7 +2192,7 @@ xenDaemonParseSxpr(virConnectPtr conn,
|
|
||||||
}
|
|
||||||
|
|
||||||
def->maxvcpus = sexpr_int(root, "domain/vcpus");
|
|
||||||
- def->vcpus = count_one_bits(sexpr_int(root, "domain/vcpu_avail"));
|
|
||||||
+ def->vcpus = count_one_bits_l(sexpr_u64(root, "domain/vcpu_avail"));
|
|
||||||
if (!def->vcpus || def->maxvcpus < def->vcpus)
|
|
||||||
def->vcpus = def->maxvcpus;
|
|
||||||
|
|
||||||
@@ -2468,7 +2468,7 @@ sexpr_to_xend_domain_info(virDomainPtr domain, const struct sexpr *root,
|
|
||||||
}
|
|
||||||
info->cpuTime = sexpr_float(root, "domain/cpu_time") * 1000000000;
|
|
||||||
vcpus = sexpr_int(root, "domain/vcpus");
|
|
||||||
- info->nrVirtCpu = count_one_bits(sexpr_int(root, "domain/vcpu_avail"));
|
|
||||||
+ info->nrVirtCpu = count_one_bits_l(sexpr_u64(root, "domain/vcpu_avail"));
|
|
||||||
if (!info->nrVirtCpu || vcpus < info->nrVirtCpu)
|
|
||||||
info->nrVirtCpu = vcpus;
|
|
||||||
|
|
||||||
@@ -3706,7 +3706,7 @@ xenDaemonDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
|
|
||||||
|
|
||||||
ret = sexpr_int(root, "domain/vcpus");
|
|
||||||
if (!(flags & VIR_DOMAIN_VCPU_MAXIMUM)) {
|
|
||||||
- int vcpus = count_one_bits(sexpr_int(root, "domain/vcpu_avail"));
|
|
||||||
+ int vcpus = count_one_bits_l(sexpr_u64(root, "domain/vcpu_avail"));
|
|
||||||
if (vcpus)
|
|
||||||
ret = MIN(vcpus, ret);
|
|
||||||
}
|
|
||||||
@@ -5770,9 +5770,11 @@ xenDaemonFormatSxpr(virConnectPtr conn,
|
|
||||||
virBufferVSprintf(&buf, "(memory %lu)(maxmem %lu)",
|
|
||||||
def->mem.cur_balloon/1024, def->mem.max_balloon/1024);
|
|
||||||
virBufferVSprintf(&buf, "(vcpus %u)", def->maxvcpus);
|
|
||||||
- /* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is 32. */
|
|
||||||
+ /* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
+ either 32, or 64 on a platform where long is big enough. */
|
|
||||||
+ verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
if (def->vcpus < def->maxvcpus)
|
|
||||||
- virBufferVSprintf(&buf, "(vcpu_avail %u)", (1U << def->vcpus) - 1);
|
|
||||||
+ virBufferVSprintf(&buf, "(vcpu_avail %lu)", (1UL << def->vcpus) - 1);
|
|
||||||
|
|
||||||
if (def->cpumask) {
|
|
||||||
char *ranges = virDomainCpuSetFormat(def->cpumask, def->cpumasklen);
|
|
||||||
@@ -5869,8 +5871,8 @@ xenDaemonFormatSxpr(virConnectPtr conn,
|
|
||||||
|
|
||||||
virBufferVSprintf(&buf, "(vcpus %u)", def->maxvcpus);
|
|
||||||
if (def->vcpus < def->maxvcpus)
|
|
||||||
- virBufferVSprintf(&buf, "(vcpu_avail %u)",
|
|
||||||
- (1U << def->vcpus) - 1);
|
|
||||||
+ virBufferVSprintf(&buf, "(vcpu_avail %lu)",
|
|
||||||
+ (1UL << def->vcpus) - 1);
|
|
||||||
|
|
||||||
for (i = 0 ; i < def->os.nBootDevs ; i++) {
|
|
||||||
switch (def->os.bootDevs[i]) {
|
|
||||||
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
|
|
||||||
index 430d40b..6c5df0f 100644
|
|
||||||
--- a/src/xen/xm_internal.c
|
|
||||||
+++ b/src/xen/xm_internal.c
|
|
||||||
@@ -776,7 +776,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
|
|
||||||
def->maxvcpus = count;
|
|
||||||
if (xenXMConfigGetULong(conf, "vcpu_avail", &count, -1) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
- def->vcpus = MIN(count_one_bits(count), def->maxvcpus);
|
|
||||||
+ def->vcpus = MIN(count_one_bits_l(count), def->maxvcpus);
|
|
||||||
|
|
||||||
if (xenXMConfigGetString(conf, "cpus", &str, NULL) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
@@ -2336,8 +2336,11 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
|
|
||||||
|
|
||||||
if (xenXMConfigSetInt(conf, "vcpus", def->maxvcpus) < 0)
|
|
||||||
goto no_memory;
|
|
||||||
+ /* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
|
|
||||||
+ either 32, or 64 on a platform where long is big enough. */
|
|
||||||
+ verify(MAX_VIRT_CPUS <= sizeof(1UL) * CHAR_BIT);
|
|
||||||
if (def->vcpus < def->maxvcpus &&
|
|
||||||
- xenXMConfigSetInt(conf, "vcpu_avail", (1U << def->vcpus) - 1) < 0)
|
|
||||||
+ xenXMConfigSetInt(conf, "vcpu_avail", (1UL << def->vcpus) - 1) < 0)
|
|
||||||
goto no_memory;
|
|
||||||
|
|
||||||
if ((def->cpumask != NULL) &&
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2e4b053a5d74f886e0d75c7824ff078e4a3557d9a93186f248827baad11873e2
|
|
||||||
size 8679525
|
|
3
libvirt-0.8.6.tar.bz2
Normal file
3
libvirt-0.8.6.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:00392714fb1aca8c75d2dbe88dad91744da0028e7b259918a40ac930edabb0d9
|
||||||
|
size 8912706
|
@ -1,3 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 10 16:31:02 MDT 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
- Do not limit insserv_cleanup to SLES
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 9 17:28:43 MDT 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
- disable building openvz driver
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 1 17:27:29 MDT 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
- Update to libvirt 0.8.6
|
||||||
|
- new API virDomainIsUpdated
|
||||||
|
- Add support for iSCSI target auto-discovery
|
||||||
|
- QED: Basic support for QED images
|
||||||
|
- Introduce a virDomainOpenConsole API
|
||||||
|
- Support for SPICE graphics
|
||||||
|
- Add a sysinfo and SMBIOS support
|
||||||
|
- Implement virsh qemu-monitor-command
|
||||||
|
- Enabled yajl, macvtap, and virtualport for suse_version >= 1140
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 1 17:27:29 MDT 2010 - jfehlig@novell.com
|
Mon Nov 1 17:27:29 MDT 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
47
libvirt.spec
47
libvirt.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libvirt (Version 0.8.5)
|
# spec file for package libvirt (Version 0.8.6)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -21,8 +21,8 @@
|
|||||||
%define with_xen 1
|
%define with_xen 1
|
||||||
%define with_qemu 1
|
%define with_qemu 1
|
||||||
%define with_lxc 1
|
%define with_lxc 1
|
||||||
%define with_openvz 1
|
|
||||||
%define with_vbox 1
|
%define with_vbox 1
|
||||||
|
%define with_openvz 0
|
||||||
%define with_uml 0
|
%define with_uml 0
|
||||||
%define with_one 0
|
%define with_one 0
|
||||||
# hypervisor drivers that use a native remote protocol
|
# hypervisor drivers that use a native remote protocol
|
||||||
@ -44,12 +44,24 @@
|
|||||||
%else
|
%else
|
||||||
%define with_capng 0
|
%define with_capng 0
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?suse_version} >= 1140
|
||||||
|
%define with_netcf 1
|
||||||
|
%define with_yajl 1
|
||||||
|
%define with_macvtap 1
|
||||||
|
%define with_virtualport 1
|
||||||
|
%else
|
||||||
%define with_netcf 0
|
%define with_netcf 0
|
||||||
%define with_udev 0
|
|
||||||
%define with_hal 0
|
|
||||||
%define with_yajl 0
|
%define with_yajl 0
|
||||||
%define with_macvtap 0
|
%define with_macvtap 0
|
||||||
%define with_virtualport 0
|
%define with_virtualport 0
|
||||||
|
%endif
|
||||||
|
%if 0%{?suse_version} > 1110
|
||||||
|
%define with_udev 1
|
||||||
|
%define with_hal 0
|
||||||
|
%else
|
||||||
|
%define with_udev 0
|
||||||
|
%define with_hal 1
|
||||||
|
%endif
|
||||||
|
|
||||||
# Xen is available only on i386 x86_64
|
# Xen is available only on i386 x86_64
|
||||||
%ifnarch %ix86 x86_64
|
%ifnarch %ix86 x86_64
|
||||||
@ -76,11 +88,6 @@
|
|||||||
%define with_one 0
|
%define with_one 0
|
||||||
%define with_esx 0
|
%define with_esx 0
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} > 1110
|
|
||||||
%define with_udev 1
|
|
||||||
%else
|
|
||||||
%define with_hal 1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel python-xml readline-devel util-linux xhtml-dtd
|
BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel python-xml readline-devel util-linux xhtml-dtd
|
||||||
@ -116,6 +123,9 @@ BuildRequires: PolicyKit-devel >= 0.6
|
|||||||
%if %{with_phyp}
|
%if %{with_phyp}
|
||||||
BuildRequires: libssh2-devel
|
BuildRequires: libssh2-devel
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with_yajl}
|
||||||
|
BuildRequires: libyajl-devel
|
||||||
|
%endif
|
||||||
%if %{with_macvtap}
|
%if %{with_macvtap}
|
||||||
BuildRequires: libnl-devel
|
BuildRequires: libnl-devel
|
||||||
%endif
|
%endif
|
||||||
@ -125,22 +135,25 @@ BuildRequires: libcurl-devel
|
|||||||
%if %{with_capng}
|
%if %{with_capng}
|
||||||
BuildRequires: libcap-ng-devel
|
BuildRequires: libcap-ng-devel
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with_netcf}
|
||||||
|
BuildRequires: netcf-devel
|
||||||
|
%endif
|
||||||
# Only for directory ownership:
|
# Only for directory ownership:
|
||||||
BuildRequires: gtk-doc
|
BuildRequires: gtk-doc
|
||||||
Url: http://libvirt.org/
|
Url: http://libvirt.org/
|
||||||
License: LGPLv2.1+
|
License: LGPLv2.1+
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
AutoReqProv: yes
|
AutoReqProv: yes
|
||||||
Version: 0.8.5
|
Version: 0.8.6
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: A C toolkit to interract with the virtualization capabilities of Linux
|
Summary: A C toolkit to interract with the virtualization capabilities of Linux
|
||||||
# The client side, i.e. shared libs and virsh are in a subpackage
|
# The client side, i.e. shared libs and virsh are in a subpackage
|
||||||
Requires: %{name}-client = %{version}-%{release}
|
Requires: %{name}-client = %{version}-%{release}
|
||||||
|
Requires: parted
|
||||||
|
Requires: virt-utils
|
||||||
Recommends: bridge-utils
|
Recommends: bridge-utils
|
||||||
Recommends: iptables
|
Recommends: iptables
|
||||||
Recommends: lvm2
|
Recommends: lvm2
|
||||||
Requires: parted
|
|
||||||
Requires: virt-utils
|
|
||||||
Recommends: logrotate
|
Recommends: logrotate
|
||||||
Recommends: dnsmasq
|
Recommends: dnsmasq
|
||||||
Recommends: open-iscsi
|
Recommends: open-iscsi
|
||||||
@ -151,15 +164,13 @@ Requires: hal
|
|||||||
%if 0%{?suse_version} > 1110
|
%if 0%{?suse_version} > 1110
|
||||||
Recommends: polkit >= 0.9
|
Recommends: polkit >= 0.9
|
||||||
%else
|
%else
|
||||||
Requires: PolicyKit >= 0.6
|
Recommends: PolicyKit >= 0.6
|
||||||
%endif
|
%endif
|
||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
Source1: libvirtd.init
|
Source1: libvirtd.init
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch0: dc27e089-xen-max-cpu.patch
|
Patch0: 45147ca3-macvtap-warning.patch
|
||||||
Patch1: b164db62-xen-compile-warnings.patch
|
Patch1: 474b1c14-macvtap-undefined.patch
|
||||||
Patch2: max-cpus-fixup.patch
|
|
||||||
Patch3: polkit0.patch
|
|
||||||
# Need to go upstream
|
# Need to go upstream
|
||||||
Patch100: xen-name-for-devid.patch
|
Patch100: xen-name-for-devid.patch
|
||||||
Patch102: clone.patch
|
Patch102: clone.patch
|
||||||
@ -273,8 +284,6 @@ Authors:
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch102
|
%patch102
|
||||||
%patch103 -p1
|
%patch103 -p1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-0.8.5/daemon/libvirtd.conf
|
Index: libvirt-0.8.6/daemon/libvirtd.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/daemon/libvirtd.conf
|
--- libvirt-0.8.6.orig/daemon/libvirtd.conf
|
||||||
+++ libvirt-0.8.5/daemon/libvirtd.conf
|
+++ libvirt-0.8.6/daemon/libvirtd.conf
|
||||||
@@ -18,8 +18,8 @@
|
@@ -18,8 +18,8 @@
|
||||||
# It is necessary to setup a CA and issue server certificates before
|
# It is necessary to setup a CA and issue server certificates before
|
||||||
# using this capability.
|
# using this capability.
|
||||||
@ -28,11 +28,11 @@ Index: libvirt-0.8.5/daemon/libvirtd.conf
|
|||||||
|
|
||||||
# Override the default mDNS advertizement name. This must be
|
# Override the default mDNS advertizement name. This must be
|
||||||
# unique on the immediate broadcast network.
|
# unique on the immediate broadcast network.
|
||||||
Index: libvirt-0.8.5/daemon/libvirtd.c
|
Index: libvirt-0.8.6/daemon/libvirtd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/daemon/libvirtd.c
|
--- libvirt-0.8.6.orig/daemon/libvirtd.c
|
||||||
+++ libvirt-0.8.5/daemon/libvirtd.c
|
+++ libvirt-0.8.6/daemon/libvirtd.c
|
||||||
@@ -143,7 +143,7 @@ static int sigwrite = -1; /* Signa
|
@@ -147,7 +147,7 @@ static int sigwrite = -1; /* Signa
|
||||||
static int ipsock = 0; /* -l Listen for TCP/IP */
|
static int ipsock = 0; /* -l Listen for TCP/IP */
|
||||||
|
|
||||||
/* Defaults for configuration file elements */
|
/* Defaults for configuration file elements */
|
||||||
@ -41,7 +41,7 @@ Index: libvirt-0.8.5/daemon/libvirtd.c
|
|||||||
static int listen_tcp = 0;
|
static int listen_tcp = 0;
|
||||||
static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR;
|
static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR;
|
||||||
static char *tls_port = (char *) LIBVIRTD_TLS_PORT;
|
static char *tls_port = (char *) LIBVIRTD_TLS_PORT;
|
||||||
@@ -165,7 +165,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
|
@@ -169,7 +169,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
|
||||||
#endif
|
#endif
|
||||||
static int auth_tls = REMOTE_AUTH_NONE;
|
static int auth_tls = REMOTE_AUTH_NONE;
|
||||||
|
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
I'm waiting for an ACK before pushing this, but it sure seems
|
|
||||||
pretty trivial. I don't know why the xen 4.0.1 headers of rawhide
|
|
||||||
are different from the xen 3.4.3 headers of Fedora 13 (translation:
|
|
||||||
something used to implicitly include xen/xen.h in the older headers,
|
|
||||||
but no longer does in the newer xen, but I didn't bother to figure
|
|
||||||
out where the inclusion chain differs).
|
|
||||||
|
|
||||||
Tested on F13 and rawhide; fixes the MAX_VIRT_CPUS undeclared issue
|
|
||||||
that was occurring on rawhide.
|
|
||||||
|
|
||||||
src/xen/xen_driver.h | 2 ++
|
|
||||||
src/xen/xs_internal.c | 1 -
|
|
||||||
2 files changed, 2 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h
|
|
||||||
index 16d22f1..6af6132 100644
|
|
||||||
--- a/src/xen/xen_driver.h
|
|
||||||
+++ b/src/xen/xen_driver.h
|
|
||||||
@@ -29,6 +29,8 @@
|
|
||||||
# include <winsock2.h>
|
|
||||||
# endif
|
|
||||||
|
|
||||||
+# include <xen/xen.h>
|
|
||||||
+
|
|
||||||
/* xen-unstable changeset 19788 removed MAX_VIRT_CPUS from public
|
|
||||||
* headers. Its semantic was retained with XEN_LEGACY_MAX_VCPUS.
|
|
||||||
* Ensure MAX_VIRT_CPUS is defined accordingly.
|
|
||||||
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c
|
|
||||||
index a9817b1..eba1b95 100644
|
|
||||||
--- a/src/xen/xs_internal.c
|
|
||||||
+++ b/src/xen/xs_internal.c
|
|
||||||
@@ -22,7 +22,6 @@
|
|
||||||
|
|
||||||
#include <xen/dom0_ops.h>
|
|
||||||
#include <xen/version.h>
|
|
||||||
-#include <xen/xen.h>
|
|
||||||
|
|
||||||
#include <xs.h>
|
|
@ -1,12 +0,0 @@
|
|||||||
Index: libvirt-0.8.5/daemon/remote.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-0.8.5.orig/daemon/remote.c
|
|
||||||
+++ libvirt-0.8.5/daemon/remote.c
|
|
||||||
@@ -4152,6 +4152,7 @@ remoteDispatchAuthPolkit (struct qemud_s
|
|
||||||
DBusError err;
|
|
||||||
const char *action;
|
|
||||||
char ident[100];
|
|
||||||
+ int rv;
|
|
||||||
|
|
||||||
memset(ident, 0, sizeof ident);
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
Index: libvirt-0.8.5/src/xen/xen_hypervisor.c
|
Index: libvirt-0.8.6/src/xen/xen_hypervisor.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/src/xen/xen_hypervisor.c
|
--- libvirt-0.8.6.orig/src/xen/xen_hypervisor.c
|
||||||
+++ libvirt-0.8.5/src/xen/xen_hypervisor.c
|
+++ libvirt-0.8.6/src/xen/xen_hypervisor.c
|
||||||
@@ -222,11 +222,28 @@ struct xen_v2d6_getdomaininfo {
|
@@ -223,11 +223,28 @@ struct xen_v2d6_getdomaininfo {
|
||||||
};
|
};
|
||||||
typedef struct xen_v2d6_getdomaininfo xen_v2d6_getdomaininfo;
|
typedef struct xen_v2d6_getdomaininfo xen_v2d6_getdomaininfo;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ Index: libvirt-0.8.5/src/xen/xen_hypervisor.c
|
|||||||
};
|
};
|
||||||
typedef union xen_getdomaininfo xen_getdomaininfo;
|
typedef union xen_getdomaininfo xen_getdomaininfo;
|
||||||
|
|
||||||
@@ -235,6 +252,7 @@ union xen_getdomaininfolist {
|
@@ -236,6 +253,7 @@ union xen_getdomaininfolist {
|
||||||
struct xen_v2_getdomaininfo *v2;
|
struct xen_v2_getdomaininfo *v2;
|
||||||
struct xen_v2d5_getdomaininfo *v2d5;
|
struct xen_v2d5_getdomaininfo *v2d5;
|
||||||
struct xen_v2d6_getdomaininfo *v2d6;
|
struct xen_v2d6_getdomaininfo *v2d6;
|
||||||
@ -39,7 +39,7 @@ Index: libvirt-0.8.5/src/xen/xen_hypervisor.c
|
|||||||
};
|
};
|
||||||
typedef union xen_getdomaininfolist xen_getdomaininfolist;
|
typedef union xen_getdomaininfolist xen_getdomaininfolist;
|
||||||
|
|
||||||
@@ -272,147 +290,179 @@ typedef struct xen_v2s5_availheap xen_v
|
@@ -273,147 +291,179 @@ typedef struct xen_v2s5_availheap xen_v
|
||||||
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
|
#define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \
|
||||||
(hypervisor_version < 2 ? \
|
(hypervisor_version < 2 ? \
|
||||||
(VIR_ALLOC_N(domlist.v0, (size)) == 0) : \
|
(VIR_ALLOC_N(domlist.v0, (size)) == 0) : \
|
||||||
@ -251,7 +251,7 @@ Index: libvirt-0.8.5/src/xen/xen_hypervisor.c
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -2095,8 +2145,16 @@ xenHypervisorInit(void)
|
@@ -2087,8 +2137,16 @@ xenHypervisorInit(void)
|
||||||
sys_interface_version = 7; /* XEN_SYSCTL_INTERFACE_VERSION */
|
sys_interface_version = 7; /* XEN_SYSCTL_INTERFACE_VERSION */
|
||||||
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
if (virXen_getdomaininfo(fd, 0, &info) == 1) {
|
||||||
dom_interface_version = 6; /* XEN_DOMCTL_INTERFACE_VERSION */
|
dom_interface_version = 6; /* XEN_DOMCTL_INTERFACE_VERSION */
|
||||||
|
@ -13,11 +13,11 @@ Date: Wed Jan 27 16:11:41 2010 -0700
|
|||||||
This approach allows removing a disk when domain is inactive. We
|
This approach allows removing a disk when domain is inactive. We
|
||||||
obviously can't search xenstore when the domain is inactive.
|
obviously can't search xenstore when the domain is inactive.
|
||||||
|
|
||||||
Index: libvirt-0.8.5/src/xen/xend_internal.c
|
Index: libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/src/xen/xend_internal.c
|
--- libvirt-0.8.6.orig/src/xen/xend_internal.c
|
||||||
+++ libvirt-0.8.5/src/xen/xend_internal.c
|
+++ libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
@@ -93,6 +93,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd
|
@@ -89,6 +89,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virDomainXMLDevID(virDomainPtr domain,
|
virDomainXMLDevID(virDomainPtr domain,
|
||||||
@ -25,7 +25,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
virDomainDeviceDefPtr dev,
|
virDomainDeviceDefPtr dev,
|
||||||
char *class,
|
char *class,
|
||||||
char *ref,
|
char *ref,
|
||||||
@@ -4072,7 +4073,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
|
@@ -4052,7 +4053,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
|
||||||
|
|
||||||
sexpr = virBufferContentAndReset(&buf);
|
sexpr = virBufferContentAndReset(&buf);
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
/* device doesn't exist, define it */
|
/* device doesn't exist, define it */
|
||||||
ret = xend_op(domain->conn, domain->name, "op", "device_create",
|
ret = xend_op(domain->conn, domain->name, "op", "device_create",
|
||||||
"config", sexpr, NULL);
|
"config", sexpr, NULL);
|
||||||
@@ -4190,7 +4191,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
|
@@ -4170,7 +4171,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
|
||||||
|
|
||||||
sexpr = virBufferContentAndReset(&buf);
|
sexpr = virBufferContentAndReset(&buf);
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
virXendError(VIR_ERR_OPERATION_INVALID, "%s",
|
virXendError(VIR_ERR_OPERATION_INVALID, "%s",
|
||||||
_("requested device does not exist"));
|
_("requested device does not exist"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@@ -4283,7 +4284,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
|
@@ -4263,7 +4264,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
|
||||||
def, xml, VIR_DOMAIN_XML_INACTIVE)))
|
def, xml, VIR_DOMAIN_XML_INACTIVE)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
|
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
|
||||||
@@ -6042,6 +6043,7 @@ error:
|
@@ -6033,6 +6034,7 @@ error:
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
virDomainXMLDevID(virDomainPtr domain,
|
virDomainXMLDevID(virDomainPtr domain,
|
||||||
@ -60,7 +60,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
virDomainDeviceDefPtr dev,
|
virDomainDeviceDefPtr dev,
|
||||||
char *class,
|
char *class,
|
||||||
char *ref,
|
char *ref,
|
||||||
@@ -6050,8 +6052,12 @@ virDomainXMLDevID(virDomainPtr domain,
|
@@ -6041,8 +6043,12 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||||
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
||||||
char *xref;
|
char *xref;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
@ -73,7 +73,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
if (dev->data.disk->driverName &&
|
if (dev->data.disk->driverName &&
|
||||||
STREQ(dev->data.disk->driverName, "tap"))
|
STREQ(dev->data.disk->driverName, "tap"))
|
||||||
strcpy(class, "tap");
|
strcpy(class, "tap");
|
||||||
@@ -6061,19 +6067,21 @@ virDomainXMLDevID(virDomainPtr domain,
|
@@ -6052,19 +6058,21 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||||
else
|
else
|
||||||
strcpy(class, "vbd");
|
strcpy(class, "vbd");
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: libvirt-0.8.5/src/xen/xend_internal.c
|
Index: libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/src/xen/xend_internal.c
|
--- libvirt-0.8.6.orig/src/xen/xend_internal.c
|
||||||
+++ libvirt-0.8.5/src/xen/xend_internal.c
|
+++ libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
@@ -1376,7 +1376,7 @@ error:
|
@@ -1358,7 +1358,7 @@ error:
|
||||||
static int
|
static int
|
||||||
xenDaemonParseSxprDisks(virDomainDefPtr def,
|
xenDaemonParseSxprDisks(virDomainDefPtr def,
|
||||||
const struct sexpr *root,
|
const struct sexpr *root,
|
||||||
@ -11,7 +11,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
int xendConfigVersion)
|
int xendConfigVersion)
|
||||||
{
|
{
|
||||||
const struct sexpr *cur, *node;
|
const struct sexpr *cur, *node;
|
||||||
@@ -1423,7 +1423,6 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
@@ -1405,7 +1405,6 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
||||||
/* There is a case without the uname to the CD-ROM device */
|
/* There is a case without the uname to the CD-ROM device */
|
||||||
offset = strchr(dst, ':');
|
offset = strchr(dst, ':');
|
||||||
if (!offset ||
|
if (!offset ||
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: libvirt-0.8.5/src/xen/xend_internal.c
|
Index: libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-0.8.5.orig/src/xen/xend_internal.c
|
--- libvirt-0.8.6.orig/src/xen/xend_internal.c
|
||||||
+++ libvirt-0.8.5/src/xen/xend_internal.c
|
+++ libvirt-0.8.6/src/xen/xend_internal.c
|
||||||
@@ -1394,20 +1394,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
@@ -1376,20 +1376,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
||||||
const char *src = NULL;
|
const char *src = NULL;
|
||||||
const char *dst = NULL;
|
const char *dst = NULL;
|
||||||
const char *mode = NULL;
|
const char *mode = NULL;
|
||||||
@ -27,7 +27,7 @@ Index: libvirt-0.8.5/src/xen/xend_internal.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (VIR_ALLOC(disk) < 0)
|
if (VIR_ALLOC(disk) < 0)
|
||||||
@@ -1532,7 +1536,12 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
@@ -1514,7 +1518,12 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
||||||
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
|
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user