> 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message