Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Aug 2001 07:59:04 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        "David O'Brien" <obrien@freebsd.org>
Cc:        current@freebsd.org
Subject:   RE: mutex Giant not owned
Message-ID:  <XFMail.010816075904.jhb@FreeBSD.org>
In-Reply-To: <20010815193517.A8445@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help

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    
> rootk@phuong.nuxi.com:/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 <jhb@FreeBSD.org> -- 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 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?XFMail.010816075904.jhb>