Message ID | 20170929164925.18562-1-zlang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/src/nsexec.c b/src/nsexec.c index f033b1a4..c2d172fe 100644 --- a/src/nsexec.c +++ b/src/nsexec.c @@ -138,7 +138,8 @@ childFunc(void *arg) #define STACK_SIZE (1024 * 1024) -static char child_stack[STACK_SIZE]; /* Space for child's stack */ +/* Space for child's stack */ +static char child_stack[STACK_SIZE] __attribute__((aligned)); int main(int argc, char *argv[])
When test g/317 or g/318 on ARM server, we got a kernel exception: kernel: nsexec[8203]: SP Alignment exception: pc=00000000004010a0 sp=00000000005200e8 nsexec gives an unaligned child stack address to clone() system call sometimes. For making sure it's always aligned, use "__attribute__((aligned))" extension of GCC (Thanks this suggestion from Eric sandeen). Signed-off-by: Zorro Lang <zlang@redhat.com> --- Sorry I made a wrong V2, this's the right one. V2 move the "__attribute__((aligned))" after array name, for following common "__attribute__" usage. Thanks, Zorro src/nsexec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)