Subject: Re: Request for review on scsipi changes
To: James Chacon <jchacon@genuity.net>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 09/17/2002 08:57:57
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>