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
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 > >
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 > >
© 2016 - 2024 Red Hat, Inc.