Subject: Re: -current panic: tcp_reass_lock
To: Sean Doran <smd@sean.ebone.net>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: current-users
Date: 07/24/1999 21:34:31
On Sun, 25 Jul 1999 05:29:36 +0200 (CEST) 
 Sean Doran <smd@sean.ebone.net> wrote:

 > I can reproduce this with netscape by going to a page with lots of Javascript
 > goodies, sigh.   I can't see where the changes came in which started this
 > breaking, but it was very recent.

Can you please point me at a page which tickles it?

 > See frame 17 below, and the comment there about TCP_REASS_UNLOCK not
 > being called before sorwakeup.

I don't see any reason why you would need to do that.  Ever since I wrote
that code, the diagnostic panic has *never* been triggered until now.  The
old TCP_REASS() macro (which was eliminated and just inlined, grumble) didn't
TCP_REASS_UNLOCK() before the sorwakeup().  Not only that, but the only way
that panic can be triggered is for there to be some recursive entry into
tcp_input() *on the same PCB*!

Basically, I don't think TCP_REASS() is the problem.  Take a look at the
tcp_reass() function itself.  It makes a call to sorwakeup(), too, but
you don't need to TCP_REASS_UNLOCK() before that one!

I think more searching is in order.

        -- Jason R. Thorpe <thorpej@nas.nasa.gov>