From owner-p4-projects@FreeBSD.ORG Mon Jun 25 04:31:52 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72E1916A46B; Mon, 25 Jun 2007 04:31:52 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1D20116A400; Mon, 25 Jun 2007 04:31:52 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 0CDEC13C447; Mon, 25 Jun 2007 04:31:52 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id 6BD9E1A4D8E; Sun, 24 Jun 2007 20:58:50 -0700 (PDT) Date: Sun, 24 Jun 2007 20:58:50 -0700 From: Alfred Perlstein To: Peter Wemm Message-ID: <20070625035850.GI55189@elvis.mu.org> References: <200706222138.l5MLcjxa021194@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200706222138.l5MLcjxa021194@repoman.freebsd.org> User-Agent: Mutt/1.4.2.2i Cc: Perforce Change Reviews Subject: Re: PERFORCE change 122167 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jun 2007 04:31:52 -0000 er, can't you just do a signal(SIGSYS, SIG_IGN)? * Peter Wemm [070622 14:38] wrote: > http://perforce.freebsd.org/chv.cgi?CH=122167 > > Change 122167 by peter@peter_daintree on 2007/06/22 21:38:41 > > Add kern.do_sigsys to control whether an enosys() also causes SIGSYS. This would > have been very useful to probe for presence of syscalls. Avoids the need to install > a sigsys handler. If only this was present for the last 10 years.... > > Affected files ... > > .. //depot/projects/hammer/sys/kern/kern_sig.c#80 edit > > Differences ... > > ==== //depot/projects/hammer/sys/kern/kern_sig.c#80 (text+ko) ==== > > @@ -111,6 +111,10 @@ > SYSCTL_INT(_kern, OID_AUTO, forcesigexit, CTLFLAG_RW, > &kern_forcesigexit, 0, "Force trap signal to be handled"); > > +static int kern_do_sigsys = 1; > +SYSCTL_INT(_kern, OID_AUTO, do_sigsys, CTLFLAG_RW, > + &kern_do_sigsys, 0, "Have the kernel send SIGSYS on a bad syscall"); > + > SYSCTL_NODE(_kern, OID_AUTO, sigqueue, CTLFLAG_RW, 0, "POSIX real time signal"); > > static int max_pending_per_proc = 128; > @@ -3168,9 +3172,11 @@ > { > struct proc *p = td->td_proc; > > - PROC_LOCK(p); > - psignal(p, SIGSYS); > - PROC_UNLOCK(p); > + if (kern_do_sigsys) { > + PROC_LOCK(p); > + psignal(p, SIGSYS); > + PROC_UNLOCK(p); > + } > return (ENOSYS); > } > -- - Alfred Perlstein