> 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

Reply via email to