Subject: Re: Request for review on scsipi changes
To: Jason R Thorpe <thorpej@wasabisystems.com>
From: James Chacon <jchacon@genuity.net>
List: tech-kern
Date: 09/17/2002 12:28:27
Ok..I noticed the man page doesn't document config_interrupts as doing this
(popping config_pending), so I'll change accordingly.

James


>On Mon, Sep 16, 2002 at 01:28:44PM -0400, James Chacon wrote:
>
> > -	printf(": %d targets, %d luns per target\n",
> > -	    chan->chan_ntargets, chan->chan_nluns);
> > -
> > -
> > -	/*
> > -	 * Defer configuration of the children until interrupts
> > -	 * are enabled.
> > -	 */
> > -	config_interrupts(self, scsibus_config_interrupts);
>
>Actually, right here you need to do a "config_pending_incr()", because
>you want to defer mounting of the root file system until all SCSI busses
>have had a chance to start their completion thread.  Note that the
>config_interrupts() function internally does a config_pending_incr().
>
>...and this means...
>
> >  void
> > -scsibus_config_interrupts(self)
> > -	struct device *self;
> > +scsibus_config(chan, arg)
> > +	struct scsipi_channel *chan;
> > +	void *arg;
> >  {
> > -	struct scsibus_softc *sc = (void *) self;
> > +	struct scsibus_softc *sc = arg;
> > +	struct scsi_initq *scsi_initq;
> >  
> >  #ifndef SCSI_DELAY
> >  #define SCSI_DELAY 2
> >  #endif
> >  
> > -	if ((sc->sc_channel->chan_flags & SCSIPI_CHAN_NOSETTLE) == 0 &&
> > +	config_pending_incr();
>
>That this config_pending_incr() should go away :-)
>
>-- 
>        -- Jason R. Thorpe <thorpej@wasabisystems.com>
>
>
>
>