git: 5f19e18b641a - main - linux(4): Get rid of linux_vdso_sigcode

From: Dmitry Chagin <dchagin_at_FreeBSD.org>
Date: Sun, 14 May 2023 21:31:08 UTC
The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=5f19e18b641add5632e1bf19cce27b5d46e1e55a

commit 5f19e18b641add5632e1bf19cce27b5d46e1e55a
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-05-14 21:26:24 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-05-14 21:26:24 +0000

    linux(4): Get rid of linux_vdso_sigcode
    
    MFC after:              1 week
---
 sys/arm64/linux/linux_locore.asm | 7 +------
 sys/arm64/linux/linux_sysvec.c   | 4 ++--
 sys/arm64/linux/linux_vdso.lds.s | 1 -
 3 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/sys/arm64/linux/linux_locore.asm b/sys/arm64/linux/linux_locore.asm
index 417cc7bd5fc4..6ebecef51b39 100644
--- a/sys/arm64/linux/linux_locore.asm
+++ b/sys/arm64/linux/linux_locore.asm
@@ -47,13 +47,8 @@ linux_platform:
 
 	nop	/* This is what Linux calls a "Mysterious NOP". */
 EENTRY(__kernel_rt_sigreturn)
-	mov	x8, #LINUX_SYS_linux_rt_sigreturn
-	svc	#0
-EEND(__kernel_rt_sigreturn)
-
-EENTRY(linux_vdso_sigcode)
 	blr	x8
 
 	mov	x8, #LINUX_SYS_linux_rt_sigreturn
 	svc	#0
-EEND(linux_vdso_sigcode)
+EEND(__kernel_rt_sigreturn)
diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c
index 8337bdfe0eb2..299586e1c7b6 100644
--- a/sys/arm64/linux/linux_sysvec.c
+++ b/sys/arm64/linux/linux_sysvec.c
@@ -118,7 +118,7 @@ LIN_SDT_PROBE_DEFINE0(sysvec, linux_exec_setregs, todo);
 
 LINUX_VDSO_SYM_CHAR(linux_platform);
 LINUX_VDSO_SYM_INTPTR(kern_timekeep_base);
-LINUX_VDSO_SYM_INTPTR(linux_vdso_sigcode);
+LINUX_VDSO_SYM_INTPTR(__kernel_rt_sigreturn);
 
 static int
 linux_fetch_syscall_args(struct thread *td)
@@ -355,7 +355,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
 	tf->tf_x[29] = (register_t)&fp->fp;
 	tf->tf_x[8] = (register_t)catcher;
 	tf->tf_sp = (register_t)fp;
-	tf->tf_elr = (register_t)linux_vdso_sigcode;
+	tf->tf_elr = (register_t)__kernel_rt_sigreturn;
 
 	CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_elr,
 	    tf->tf_sp);
diff --git a/sys/arm64/linux/linux_vdso.lds.s b/sys/arm64/linux/linux_vdso.lds.s
index 8790e14bbb80..652b99545069 100644
--- a/sys/arm64/linux/linux_vdso.lds.s
+++ b/sys/arm64/linux/linux_vdso.lds.s
@@ -70,7 +70,6 @@ VERSION
 	global:
 		linux_platform;
 		kern_timekeep_base;
-		linux_vdso_sigcode;
 	local: *;
 	};
 }