Subject: Re: -current panic: tcp_reass_lock
To: Sean Doran <firstname.lastname@example.org>
From: Jason Thorpe <email@example.com>
Date: 07/24/1999 21:34:31
On Sun, 25 Jul 1999 05:29:36 +0200 (CEST)
Sean Doran <firstname.lastname@example.org> wrote:
> 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 <email@example.com>