Subject: Re: pool problems, TAILQ, and more...
To: None <bgrayson@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-kern
Date: 04/05/2000 20:55:26
On Tue, Apr 04, 2000 at 10:29:11PM -0500, Brian C. Grayson wrote:
> Sorry --  I've added some debugging stuff, so line numbers won't
> match up.  So here's what I have:
> 
>      $NetBSD: wd.c,v 1.202 2000/02/07 20:16:55 thorpej Exp $
> 
>     629         disk_unbusy(&wd->sc_dk, (bp->b_bcount - bp->b_resid));
>     630 #if NRND > 0
>     631         rnd_add_uint32(&wd->rnd_source, bp->b_blkno);
>     632 #endif
>     633 CHECKPOOL();
>     634         biodone(bp);
>     635 CHECKPOOL();
>     636         wd->openings++;
>     637         wdstart(wd);
>     638 CHECKPOOL();
>     639 }
>     640 
>     641 void
>     642 wdrestart(v)
>     643         void *v;
>     644 {

So it gets a trap when calling biodone() ?? This doesn't make sense !
Maybe it gets a trap inside biodone() but the stack frame is corruped ?
This would mean that bp is corrupted.

> 
>   CHECKPOOL() expands to a call to
> checkpool(__FILE__,__LINE__), which verifies that the
> last-freed item hasn't been modified.

Only the last one ? Maybe it's an older one which gets touched ?

--
Manuel Bouyer <bouyer@antioche.eu.org>
--