From owner-freebsd-hackers Tue Mar 25 21:50:45 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id VAA17996 for hackers-outgoing; Tue, 25 Mar 1997 21:50:45 -0800 (PST) Received: from dg-rtp.dg.com (dg-rtp.rtp.dg.com [128.222.1.2]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id VAA17989 for ; Tue, 25 Mar 1997 21:50:41 -0800 (PST) Received: by dg-rtp.dg.com (5.4R3.10/dg-rtp-v02) id AA29095; Wed, 26 Mar 1997 00:50:08 -0500 Received: from ponds by dg-rtp.dg.com.rtp.dg.com; Wed, 26 Mar 1997 00:50 EST Received: from lakes.water.net (lakes [10.0.0.3]) by ponds.water.net (8.8.3/8.7.3) with ESMTP id VAA10080; Tue, 25 Mar 1997 21:38:30 -0500 (EST) Received: (from rivers@localhost) by lakes.water.net (8.8.3/8.6.9) id VAA02518; Tue, 25 Mar 1997 21:44:08 -0500 (EST) Date: Tue, 25 Mar 1997 21:44:08 -0500 (EST) From: Thomas David Rivers Message-Id: <199703260244.VAA02518@lakes.water.net> To: ponds!freefall.cdrom.com!freebsd-hackers, ponds!uriah.heep.sax.de!joerg_wunsch, ponds!lakes.water.net!rivers Subject: "dup alloc" report - checking on recent fix to scsi_base.c Content-Type: text Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Joerg sent me the following (thanks!) which I had high hopes of fixing the "dup alloc" problem (as it is exactly the type of thing I'm looking for...) and is exactly where I'm looking... (My own tests didn't bring this case forward; but I'm willing to believe my tests aren't worth diddly :-) ) Unfortunately, after trying it out, it wasn't the case... that is, the problem still occurs.... (sigh.) Back to the printf()s.... - Dave Rivers - > > As Thomas David Rivers wrote: > > > This patch didn't come across my mail... can you send it to me? > > [I'm guessing it's just wrapping calls to free_xs() with splbio()/splx, > > but I want to make sure.] > > Your guess is correct. :) > > Index: /sys/scsi/scsi_base.c > =================================================================== > RCS file: /home/cvs/src/sys/scsi/scsi_base.c,v > retrieving revision 1.46 > retrieving revision 1.47 > diff -u -u -r1.46 -r1.47 > --- scsi_base.c 1997/03/23 06:33:46 1.46 > +++ scsi_base.c 1997/03/24 01:46:15 1.47 > @@ -616,7 +616,9 @@ > * check if anyone else needs to be started up. > */ > bad: > + s = splbio(); > free_xs(xs, sc_link, flags); /* includes the 'start' op */ > + splx(s); > if (bp && retval) { > bp->b_error = retval; > bp->b_flags |= B_ERROR; > > > -- > cheers, J"org > > joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE > Never trust an operating system you don't have sources for. ;-) >