[PATCH] microblaze: fix __syscall_cancel_arch
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Fri Oct 17 12:22:40 GMT 2025
On 17/10/25 06:27, Luc Michel wrote:
> The __syscall_cancel_arch function has an epilogue that does not match
> the prologue. The stack is not used and the return address still lies in
> r15 when reaching the epilogue. Fix the epilogue by simply returning
> from the function.
>
> Signed-off-by: Luc Michel <luc.michel@amd.com>
LGTM. How did you tested? I tried to come up with an simulated microblaze
environment, but there is no official qemu support (only qemu-user).
> ---
>
> Hi,
> This bug was introduced by 89b53077d2a58f00e7debdfe58afabe953dac60d
> (BZ#12683).
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=12683 suggests that the
> author copied coded generated by GCC. This is probably why the epilogue
> was wrong.
>
> I have yet to create a Bugzilla entry for this. I just requested an
> accound and waiting for it.
>
> Thanks
>
> Luc
>
> ---
> sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
> index 38150e6a94..3e8dc96a93 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
> +++ b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
> @@ -48,13 +48,12 @@ __syscall_cancel_arch_start:
>
> .globl __syscall_cancel_arch_end
> __syscall_cancel_arch_end:
>
> nop
> - lwi r15,r1,0
> rtsd r15,8
> - addik r1,r1,28
> + nop
>
> 1:
> brlid r15, __syscall_do_cancel
> nop
>
More information about the Libc-alpha
mailing list