[PATCH] microblaze: fix __syscall_cancel_arch

Luc Michel luc.michel@amd.com
Fri Oct 17 09:27:12 GMT 2025


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>
---

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
 
-- 
2.51.0



More information about the Libc-alpha mailing list