libvirt/ia64-clone.patch
James Fehlig 0e53c763a0 - Update to libvirt 1.2.1
- CVE-2014-0028, CVE-2014-1447, CVE-2013-6458, CVE-2013-6457,
    CVE-2013-6436
  - Many incremental improvements and bug fixes, see
    http://libvirt.org/news.html
  - Dropped upstream patches: 5e397d9c-test-fix-dbus-crash.patch,
    78af457e-fix-virnettlscontexttest.patch,
    9faf3f29-LXC-memtune.patch, f8c1cb90-CVE-2013-6436.patch,
    libxl-hvm-nic.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=342
2014-01-17 19:45:49 +00:00

67 lines
1.9 KiB
Diff

Index: libvirt-1.2.1/src/lxc/lxc_container.c
===================================================================
--- libvirt-1.2.1.orig/src/lxc/lxc_container.c
+++ libvirt-1.2.1/src/lxc/lxc_container.c
@@ -162,12 +162,19 @@ int lxcContainerHasReboot(void)
VIR_FREE(buf);
cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
+#ifdef __ia64__
+ stacksize *= 2;
+#endif
if (VIR_ALLOC_N(stack, stacksize) < 0)
return -1;
childStack = stack + stacksize;
+#ifdef __ia64__
+ cpid = __clone2(lxcContainerRebootChild, childStack, stacksize, flags, &cmd);
+#else
cpid = clone(lxcContainerRebootChild, childStack, flags, &cmd);
+#endif
VIR_FREE(stack);
if (cpid < 0) {
virReportSystemError(errno, "%s",
@@ -2004,6 +2011,9 @@ int lxcContainerStart(virDomainDefPtr de
.handshakefd = handshakefd
};
+#ifdef __ia64__
+ stacksize *= 2;
+#endif
/* allocate a stack for the container */
if (VIR_ALLOC_N(stack, stacksize) < 0)
return -1;
@@ -2029,7 +2039,11 @@ int lxcContainerStart(virDomainDefPtr de
cflags |= CLONE_NEWNET;
}
+#ifdef __ia64__
+ pid = __clone2(lxcContainerChild, stacktop, stacksize, cflags, &args);
+#else
pid = clone(lxcContainerChild, stacktop, cflags, &args);
+#endif
VIR_FREE(stack);
VIR_DEBUG("clone() completed, new container PID is %d", pid);
@@ -2063,12 +2077,19 @@ int lxcContainerAvailable(int features)
if (features & LXC_CONTAINER_FEATURE_NET)
flags |= CLONE_NEWNET;
+#ifdef __ia64__
+ stacksize *= 2;
+#endif
if (VIR_ALLOC_N(stack, stacksize) < 0)
return -1;
childStack = stack + stacksize;
+#ifdef __ia64__
+ cpid = __clone2(lxcContainerDummyChild, childStack, stacksize, flags, NULL);
+#else
cpid = clone(lxcContainerDummyChild, childStack, flags, NULL);
+#endif
VIR_FREE(stack);
if (cpid < 0) {
char ebuf[1024] ATTRIBUTE_UNUSED;