[PATCH for-7.1?] linux-user/riscv: Align signal frame to 16 bytes

Richard Henderson posted 1 patch 1 year, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220729201942.30738-1-richard.henderson@linaro.org
Maintainers: Laurent Vivier <laurent@vivier.eu>
linux-user/riscv/signal.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH for-7.1?] linux-user/riscv: Align signal frame to 16 bytes
Posted by Richard Henderson 1 year, 9 months ago
Follow the kernel's alignment, as we already noted.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1093
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 linux-user/riscv/signal.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c
index 296e39fbf0..eaa168199a 100644
--- a/linux-user/riscv/signal.c
+++ b/linux-user/riscv/signal.c
@@ -64,9 +64,7 @@ static abi_ulong get_sigframe(struct target_sigaction *ka,
 
     /* This is the X/Open sanctioned signal stack switching.  */
     sp = target_sigsp(sp, ka) - framesize;
-
-    /* XXX: kernel aligns with 0xf ? */
-    sp &= ~3UL; /* align sp on 4-byte boundary */
+    sp &= ~0xf;
 
     return sp;
 }
-- 
2.34.1
Re: [PATCH for-7.1?] linux-user/riscv: Align signal frame to 16 bytes
Posted by Alistair Francis 1 year, 8 months ago
On Sat, Jul 30, 2022 at 6:19 AM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Follow the kernel's alignment, as we already noted.
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1093
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Thanks!

Applied to riscv-to-apply.next

Alistair

> ---
>  linux-user/riscv/signal.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c
> index 296e39fbf0..eaa168199a 100644
> --- a/linux-user/riscv/signal.c
> +++ b/linux-user/riscv/signal.c
> @@ -64,9 +64,7 @@ static abi_ulong get_sigframe(struct target_sigaction *ka,
>
>      /* This is the X/Open sanctioned signal stack switching.  */
>      sp = target_sigsp(sp, ka) - framesize;
> -
> -    /* XXX: kernel aligns with 0xf ? */
> -    sp &= ~3UL; /* align sp on 4-byte boundary */
> +    sp &= ~0xf;
>
>      return sp;
>  }
> --
> 2.34.1
>
>
Re: [PATCH for-7.1?] linux-user/riscv: Align signal frame to 16 bytes
Posted by Alistair Francis 1 year, 9 months ago
On Sat, Jul 30, 2022 at 6:19 AM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Follow the kernel's alignment, as we already noted.
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1093
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
>  linux-user/riscv/signal.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c
> index 296e39fbf0..eaa168199a 100644
> --- a/linux-user/riscv/signal.c
> +++ b/linux-user/riscv/signal.c
> @@ -64,9 +64,7 @@ static abi_ulong get_sigframe(struct target_sigaction *ka,
>
>      /* This is the X/Open sanctioned signal stack switching.  */
>      sp = target_sigsp(sp, ka) - framesize;
> -
> -    /* XXX: kernel aligns with 0xf ? */
> -    sp &= ~3UL; /* align sp on 4-byte boundary */
> +    sp &= ~0xf;
>
>      return sp;
>  }
> --
> 2.34.1
>
>