On 16-Aug-01 David O'Brien wrote:
># uname -a
> FreeBSD phuong.nuxi.com 5.0-CURRENT FreeBSD 5.0-CURRENT #12: Sun Jul 15
> 19:07:45 PDT 2001    
> [EMAIL PROTECTED]:/files/Current/sys/alpha/compile/DS20  alpha

Looks like a trapsignal() in trap() is being called w/o Giant.  I'll look at it.

Try this:

Index: trap.c
===================================================================
RCS file: /usr/cvs/src/sys/alpha/alpha/trap.c,v
retrieving revision 1.73
diff -u -r1.73 trap.c
--- trap.c      2001/08/10 22:53:25     1.73
+++ trap.c      2001/08/16 04:29:40
@@ -611,14 +611,15 @@
        framep->tf_regs[FRAME_TRAPARG_A0] = a0;
        framep->tf_regs[FRAME_TRAPARG_A1] = a1;
        framep->tf_regs[FRAME_TRAPARG_A2] = a2;
+       mtx_lock(&Giant);
        trapsignal(p, i, ucode);
 out:
        if (user) {
                framep->tf_regs[FRAME_SP] = alpha_pal_rdusp();
                userret(p, framep, sticks);
-               if (mtx_owned(&Giant))
-                       mtx_unlock(&Giant);
        }
+       if (mtx_owned(&Giant))
+               mtx_unlock(&Giant);
        return;
 
 dopanic:

-- 

John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to