On 25.11.2013 08:06, Chen Hanxiao wrote: > From: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> > > Don't do duplicate work when getting pagesize. > > Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> > --- > v2: remove redundant debug log > > src/lxc/lxc_container.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c > index 2bdf957..00bbaf7 100644 > --- a/src/lxc/lxc_container.c > +++ b/src/lxc/lxc_container.c > @@ -144,6 +144,7 @@ int lxcContainerHasReboot(void) > int cmd, v; > int status; > char *tmp; > + int stacksize = getpagesize() * 4; > > if (virFileReadAll("/proc/sys/kernel/ctrl-alt-del", 10, &buf) < 0) > return -1; > @@ -160,10 +161,10 @@ int lxcContainerHasReboot(void) > VIR_FREE(buf); > cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF; > > - if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0) > + if (VIR_ALLOC_N(stack, stacksize) < 0) > return -1; > > - childStack = stack + (getpagesize() * 4); > + childStack = stack + stacksize; > > cpid = clone(lxcContainerRebootChild, childStack, flags, &cmd); > VIR_FREE(stack); > @@ -2031,6 +2032,7 @@ int lxcContainerStart(virDomainDefPtr def, > /* allocate a stack for the container */ > if (VIR_ALLOC_N(stack, stacksize) < 0) > return -1; > + > stacktop = stack + stacksize; > > cflags = CLONE_NEWPID|CLONE_NEWNS|CLONE_NEWUTS|CLONE_NEWIPC|SIGCHLD; > @@ -2078,6 +2080,7 @@ int lxcContainerAvailable(int features) > int cpid; > char *childStack; > char *stack; > + int stacksize = getpagesize() * 4; > > if (features & LXC_CONTAINER_FEATURE_USER) > flags |= CLONE_NEWUSER; > @@ -2085,12 +2088,10 @@ int lxcContainerAvailable(int features) > if (features & LXC_CONTAINER_FEATURE_NET) > flags |= CLONE_NEWNET; > > - if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0) { > - VIR_DEBUG("Unable to allocate stack"); > + if (VIR_ALLOC_N(stack, stacksize) < 0) > return -1; > - } > > - childStack = stack + (getpagesize() * 4); > + childStack = stack + stacksize; > > cpid = clone(lxcContainerDummyChild, childStack, flags, NULL); > VIR_FREE(stack); > ACKed & pushed. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list