[BACK]Return to scsipi_base.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / dev / scsipi

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/dev/scsipi/scsipi_base.c between version 1.134 and 1.134.4.1

version 1.134, 2006/02/20 16:50:37 version 1.134.4.1, 2006/04/19 03:26:20
Line 1321  scsipi_done(struct scsipi_xfer *xs)
Line 1321  scsipi_done(struct scsipi_xfer *xs)
         /*          /*
          * The resource this command was using is now free.           * The resource this command was using is now free.
          */           */
           if (xs->xs_status & XS_STS_DONE) {
                   /* XXX in certain circumstances, such as a device
                    * being detached, a xs that has already been
                    * scsipi_done()'d by the main thread will be done'd
                    * again by scsibusdetach(). Putting the xs on the
                    * chan_complete queue causes list corruption and
                    * everyone dies. This prevents that, but perhaps
                    * there should be better coordination somewhere such
                    * that this won't ever happen (and can be turned into
                    * a KASSERT().
                    */
                   splx(s);
                   goto out;
           }
         scsipi_put_resource(chan);          scsipi_put_resource(chan);
         xs->xs_periph->periph_sent--;          xs->xs_periph->periph_sent--;
   

Legend:
Removed from v.1.134  
changed lines
  Added in v.1.134.4.1

CVSweb <webmaster@jp.NetBSD.org>