Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Sep 1999 11:48:48 -0700 (PDT)
From:      John Polstra <jdp@polstra.com>
To:        marcel@scc.nl
Cc:        current@freebsd.org
Subject:   Re: HEADS UP: sigset_t changes committed
Message-ID:  <199909291848.LAA22988@vashon.polstra.com>
In-Reply-To: <37F23064.98EEBC67@scc.nl>
References:  <37F23064.98EEBC67@scc.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

GDB is _still_ looking for the bottom of the stack.  If it ever
finds it, I'll send that part of the backtrace. :-)

John
-- 
  John Polstra                                               jdp@polstra.com
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "No matter how cynical I get, I just can't keep up."        -- Nora Ephron


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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