[CRIU] [PATCH 4/4] zdtm: Align stack pointer for arm64

Vijay Kilari vijay.kilari at gmail.com
Mon Dec 28 03:04:05 PST 2015


Reposting.

On Mon, Dec 28, 2015 at 1:39 PM, Vijaya Kumar K
<Vijaya.Kumar at caviumnetworks.com> wrote:
> arm64 requires stack pointer to be aligned to 16 bytes.
> Update all test cases that are using clone system call
> to have 16 byte aligned stack pointer.
>
> Signed-off-by: Vijaya Kumar K <vijayak at caviumnetworks.com>
> ---
>  test/zdtm/lib/ns.c                       |    2 +-
>  test/zdtm/live/static/fdt_shared.c       |    2 +-
>  test/zdtm/live/static/mntns_link_remap.c |    2 +-
>  test/zdtm/live/static/mntns_open.c       |    2 +-
>  test/zdtm/live/static/mountpoints.c      |    2 +-
>  test/zdtm/live/static/session02.c        |    2 +-
>  test/zdtm/live/static/session03.c        |    2 +-
>  7 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/test/zdtm/lib/ns.c b/test/zdtm/lib/ns.c
> index 6e44342..8d7e7af 100644
> --- a/test/zdtm/lib/ns.c
> +++ b/test/zdtm/lib/ns.c
> @@ -143,7 +143,7 @@ static int prepare_namespaces(void)
>
>  /* All arguments should be above stack, because it grows down */
>  struct ns_exec_args {
> -       char stack[NS_STACK_SIZE];
> +       char stack[NS_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int argc;
>         char **argv;
> diff --git a/test/zdtm/live/static/fdt_shared.c b/test/zdtm/live/static/fdt_shared.c
> index e31191f..605bb6d 100644
> --- a/test/zdtm/live/static/fdt_shared.c
> +++ b/test/zdtm/live/static/fdt_shared.c
> @@ -48,7 +48,7 @@ static void wait_children()
>
>  static pid_t clone_child(int (*fn)(void *), int flags)
>  {
> -       char stack[STACK_SIZE];
> +       char stack[STACK_SIZE] __attribute__((aligned (16)));
>         pid_t pid;
>
>         pid = clone(fn, stack + STACK_SIZE,
> diff --git a/test/zdtm/live/static/mntns_link_remap.c b/test/zdtm/live/static/mntns_link_remap.c
> index d8e1fb9..6d62920 100644
> --- a/test/zdtm/live/static/mntns_link_remap.c
> +++ b/test/zdtm/live/static/mntns_link_remap.c
> @@ -29,7 +29,7 @@ TEST_OPTION(dirname, string, "directory name", 1);
>  #define NS_STACK_SIZE  4096
>  /* All arguments should be above stack, because it grows down */
>  struct ns_exec_args {
> -       char stack[NS_STACK_SIZE];
> +       char stack[NS_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int fd;
>         int sync;
> diff --git a/test/zdtm/live/static/mntns_open.c b/test/zdtm/live/static/mntns_open.c
> index 3ddfa76..2f91801 100644
> --- a/test/zdtm/live/static/mntns_open.c
> +++ b/test/zdtm/live/static/mntns_open.c
> @@ -29,7 +29,7 @@ char fpath[PATH_MAX];
>  #define NS_STACK_SIZE  4096
>  /* All arguments should be above stack, because it grows down */
>  struct ns_exec_args {
> -       char stack[NS_STACK_SIZE];
> +       char stack[NS_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int fd;
>  };
> diff --git a/test/zdtm/live/static/mountpoints.c b/test/zdtm/live/static/mountpoints.c
> index c1857a0..7ad5c92 100644
> --- a/test/zdtm/live/static/mountpoints.c
> +++ b/test/zdtm/live/static/mountpoints.c
> @@ -22,7 +22,7 @@ static char buf[1024];
>  #define NS_STACK_SIZE  4096
>  /* All arguments should be above stack, because it grows down */
>  struct ns_exec_args {
> -       char stack[NS_STACK_SIZE];
> +       char stack[NS_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int status_pipe[2];
>  };
> diff --git a/test/zdtm/live/static/session02.c b/test/zdtm/live/static/session02.c
> index 02d29f9..c4c3922 100644
> --- a/test/zdtm/live/static/session02.c
> +++ b/test/zdtm/live/static/session02.c
> @@ -67,7 +67,7 @@ static void mainloop()
>  #define CLONE_STACK_SIZE       4096
>  /* All arguments should be above stack, because it grows down */
>  struct clone_args {
> -       char stack[CLONE_STACK_SIZE];
> +       char stack[CLONE_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int id;
>  };
> diff --git a/test/zdtm/live/static/session03.c b/test/zdtm/live/static/session03.c
> index f10e1ef..a8e14b1 100644
> --- a/test/zdtm/live/static/session03.c
> +++ b/test/zdtm/live/static/session03.c
> @@ -109,7 +109,7 @@ static void mainloop()
>  #define CLONE_STACK_SIZE       4096
>  /* All arguments should be above stack, because it grows down */
>  struct clone_args {
> -       char stack[CLONE_STACK_SIZE];
> +       char stack[CLONE_STACK_SIZE] __attribute__((aligned (16)));
>         char stack_ptr[0];
>         int id;
>  };
> --
> 1.7.9.5
>


More information about the CRIU mailing list