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>
>
>
>
>