Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jan 2016 17:39:41 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r293581 - in stable/10/sys: amd64/amd64 amd64/ia32 arm/arm i386/i386 mips/mips powerpc/powerpc sparc64/sparc64
Message-ID:  <201601091739.u09HdfpG062002@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Sat Jan  9 17:39:41 2016
New Revision: 293581
URL: https://svnweb.freebsd.org/changeset/base/293581

Log:
  MFC r283479:
  
  The kernel sends signals to the processes via ABI specific sv_sendsig method.
  Native ABI do not need signal conversion, only emulators may want this. Usually
  emulators implements its own sv_sendsig method. For now only ibcs2 emulator does
  not have own sv_sendsig implementation and depends on native sendsig() method.
  So, remove any extra attempts to convert signal numbers from native sendsig()
  methods except from i386 where ibsc2 is living.

Modified:
  stable/10/sys/amd64/amd64/machdep.c
  stable/10/sys/amd64/ia32/ia32_signal.c
  stable/10/sys/arm/arm/machdep.c
  stable/10/sys/i386/i386/machdep.c
  stable/10/sys/mips/mips/freebsd32_machdep.c
  stable/10/sys/mips/mips/pm_machdep.c
  stable/10/sys/powerpc/powerpc/exec_machdep.c
  stable/10/sys/sparc64/sparc64/machdep.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/amd64/amd64/machdep.c
==============================================================================
--- stable/10/sys/amd64/amd64/machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/amd64/amd64/machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -384,10 +384,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
 	/* Align to 16 bytes. */
 	sfp = (struct sigframe *)((unsigned long)sp & ~0xFul);
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	regs->tf_rdi = sig;			/* arg 1 in %rdi */
 	regs->tf_rdx = (register_t)&sfp->sf_uc;	/* arg 3 in %rdx */

Modified: stable/10/sys/amd64/ia32/ia32_signal.c
==============================================================================
--- stable/10/sys/amd64/ia32/ia32_signal.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/amd64/ia32/ia32_signal.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -360,10 +360,6 @@ ia32_osendsig(sig_t catcher, ksiginfo_t 
 	} else
 		fp = (struct ia32_sigframe3 *)regs->tf_rsp - 1;
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	sf.sf_signum = sig;
 	sf.sf_scp = (register_t)&fp->sf_siginfo.si_sc;
@@ -498,10 +494,6 @@ freebsd4_ia32_sendsig(sig_t catcher, ksi
 		sfp = (struct ia32_sigframe4 *)regs->tf_rsp - 1;
 	PROC_UNLOCK(p);
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	sf.sf_signum = sig;
 	sf.sf_ucontext = (register_t)&sfp->sf_uc;
@@ -643,10 +635,6 @@ ia32_sendsig(sig_t catcher, ksiginfo_t *
 	sfp = (struct ia32_sigframe *)((uintptr_t)sp & ~0xF);
 	PROC_UNLOCK(p);
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	sf.sf_signum = sig;
 	sf.sf_ucontext = (register_t)&sfp->sf_uc;

Modified: stable/10/sys/arm/arm/machdep.c
==============================================================================
--- stable/10/sys/arm/arm/machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/arm/arm/machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -259,10 +259,6 @@ sendsig(catcher, ksi, mask)
 		sigexit(td, SIGILL);
 	}
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/*
 	 * Build context to run handler in.  We invoke the handler
 	 * directly, only returning via the trampoline.  Note the

Modified: stable/10/sys/i386/i386/machdep.c
==============================================================================
--- stable/10/sys/i386/i386/machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/i386/i386/machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -400,10 +400,6 @@ osendsig(sig_t catcher, ksiginfo_t *ksi,
 	} else
 		fp = (struct osigframe *)regs->tf_esp - 1;
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	sf.sf_signum = sig;
 	sf.sf_scp = (register_t)&fp->sf_siginfo.si_sc;
@@ -551,10 +547,6 @@ freebsd4_sendsig(sig_t catcher, ksiginfo
 	} else
 		sfp = (struct sigframe4 *)regs->tf_esp - 1;
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	sf.sf_signum = sig;
 	sf.sf_ucontext = (register_t)&sfp->sf_uc;

Modified: stable/10/sys/mips/mips/freebsd32_machdep.c
==============================================================================
--- stable/10/sys/mips/mips/freebsd32_machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/mips/mips/freebsd32_machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -419,12 +419,6 @@ freebsd32_sendsig(sig_t catcher, ksiginf
 		sfp = (struct sigframe32 *)((vm_offset_t)(td->td_frame->sp - 
 		    sizeof(struct sigframe32)) & ~(sizeof(__int64_t) - 1));
 
-	/* Translate the signal if appropriate */
-	if (p->p_sysent->sv_sigtbl) {
-		if (sig <= p->p_sysent->sv_sigsize)
-			sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-	}
-
 	/* Build the argument list for the signal handler. */
 	td->td_frame->a0 = sig;
 	td->td_frame->a2 = (register_t)(intptr_t)&sfp->sf_uc;

Modified: stable/10/sys/mips/mips/pm_machdep.c
==============================================================================
--- stable/10/sys/mips/mips/pm_machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/mips/mips/pm_machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -133,12 +133,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
 		sfp = (struct sigframe *)((vm_offset_t)(regs->sp - 
 		    sizeof(struct sigframe)) & ~(sizeof(__int64_t) - 1));
 
-	/* Translate the signal if appropriate */
-	if (p->p_sysent->sv_sigtbl) {
-		if (sig <= p->p_sysent->sv_sigsize)
-			sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-	}
-
 	/* Build the argument list for the signal handler. */
 	regs->a0 = sig;
 	regs->a2 = (register_t)(intptr_t)&sfp->sf_uc;

Modified: stable/10/sys/powerpc/powerpc/exec_machdep.c
==============================================================================
--- stable/10/sys/powerpc/powerpc/exec_machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/powerpc/powerpc/exec_machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -231,12 +231,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
 	}
 
 	/*
-	 * Translate the signal if appropriate (Linux emu ?)
-	 */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
-	/*
 	 * Save the floating-point state, if necessary, then copy it.
 	 */
 	/* XXX */

Modified: stable/10/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/10/sys/sparc64/sparc64/machdep.c	Sat Jan  9 17:35:09 2016	(r293580)
+++ stable/10/sys/sparc64/sparc64/machdep.c	Sat Jan  9 17:39:41 2016	(r293581)
@@ -658,10 +658,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, 
 
 	fp = (struct frame *)sfp - 1;
 
-	/* Translate the signal if appropriate. */
-	if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
-		sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
 	/* Build the argument list for the signal handler. */
 	tf->tf_out[0] = sig;
 	tf->tf_out[2] = (register_t)&sfp->sf_uc;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601091739.u09HdfpG062002>