From owner-freebsd-current Wed Sep 29 12: 3:54 1999 Delivered-To: freebsd-current@freebsd.org Received: from ns.mt.sri.com (ns.mt.sri.com [206.127.79.91]) by hub.freebsd.org (Postfix) with ESMTP id A60781593E for ; Wed, 29 Sep 1999 12:03:15 -0700 (PDT) (envelope-from nate@mt.sri.com) Received: from mt.sri.com (rocky.mt.sri.com [206.127.76.100]) by ns.mt.sri.com (8.9.3/8.9.3) with SMTP id NAA24196; Wed, 29 Sep 1999 13:03:00 -0600 (MDT) (envelope-from nate@rocky.mt.sri.com) Received: by mt.sri.com (SMI-8.6/SMI-SVR4) id NAA24329; Wed, 29 Sep 1999 13:02:58 -0600 Date: Wed, 29 Sep 1999 13:02:58 -0600 Message-Id: <199909291902.NAA24329@mt.sri.com> From: Nate Williams MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: John Polstra Cc: marcel@scc.nl, current@FreeBSD.ORG Subject: Re: HEADS UP: sigset_t changes committed In-Reply-To: <199909291848.LAA22988@vashon.polstra.com> References: <37F23064.98EEBC67@scc.nl> <199909291848.LAA22988@vashon.polstra.com> X-Mailer: VM 6.34 under 19.16 "Lille" XEmacs Lucid Reply-To: nate@mt.sri.com (Nate Williams) Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > Following up on my previous mail regarding the panic on the Alpha, > I've been looking at the diff for the code in question, in > "src/sys/nfs/nfs_socket.c": > > @@ -1501,14 +1502,16 @@ > struct nfsreq *rep; > register struct proc *p; > { > + sigset_t tmpset; > > + tmpset = p->p_siglist; > + SIGSETNAND(tmpset, p->p_sigmask); > + SIGSETNAND(tmpset, p->p_sigignore); > if (rep && (rep->r_flags & R_SOFTTERM)) > return (EINTR); > if (!(nmp->nm_flag & NFSMNT_INT)) > return (0); > - if (p && p->p_siglist && > - (((p->p_siglist & ~p->p_sigmask) & ~p->p_sigignore) & > - NFSINT_SIGMASK)) > + if (p && SIGNOTEMPTY(p->p_siglist) && NFSINT_SIGMASK(tmpset)) > return (EINTR); > return (0); > } > > It looks like the old code was prepared for "p" to be NULL, but the > new code assumes it is non-NULL. Am I missing something? - if (p && p->p_siglist && - (((p->p_siglist & ~p->p_sigmask) & ~p->p_sigignore) & - NFSINT_SIGMASK)) + if (p && SIGNOTEMPTY(p->p_siglist) && NFSINT_SIGMASK(tmpset)) The if (p .... in both cases checks for an null p. Or, am I missing something? Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message