I posted an ioprbs(4) patch to tech@ early last week in need of
testing.  Still haven't heard anything, so now prodding misc@ in case
there are any lurkers.

If I don't hear back from anyone, I'll be removing I2O support (i.e.,
iop(4), iopsp(4), and ioprbs(4)), so I suggest you speak up now if
you're still using it.

On Tue, Jul 06, 2010 at 03:02:10PM -0700, Matthew Dempsky wrote:
> Still waiting to hear back from someone on this diff.  Can anyone at
> least confirm that ioprbs(4) is still being used?
> 
> On Sun, Jun 27, 2010 at 09:48:03AM -0700, Matthew Dempsky wrote:
> > Anyone still using ioprbs(4)?  If so, please test the diff below and
> > report back to me.
> > 
> > Index: dev/i2o/ioprbs.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/i2o/ioprbs.c,v
> > retrieving revision 1.20
> > diff -u -p dev/i2o/ioprbs.c
> > --- dev/i2o/ioprbs.c        23 Mar 2010 01:57:19 -0000      1.20
> > +++ dev/i2o/ioprbs.c        28 Jun 2010 19:59:33 -0000
> > @@ -544,7 +544,7 @@ ioprbs_intr(struct device *dv, struct iop_msg *im, voi
> >  {
> >     struct i2o_rbs_reply *rb = reply;
> >     struct ioprbs_ccb *ccb = im->im_dvcontext;
> > -   struct buf *bp = ccb->ic_xs->bp;
> > +   struct scsi_xfer *xs = ccb->ic_xs;
> >     struct ioprbs_softc *sc = (struct ioprbs_softc *)dv;
> >     struct iop_softc *iop = (struct iop_softc *)dv->dv_parent;
> >     int err, detail;
> > @@ -554,7 +554,7 @@ ioprbs_intr(struct device *dv, struct iop_msg *im, voi
> >  
> >     DPRINTF(("ioprbs_intr(%p, %p, %p) ", dv, im, reply));
> >  
> > -   timeout_del(&ccb->ic_xs->stimeout);
> > +   timeout_del(&xs->stimeout);
> >  
> >     err = ((rb->msgflags & I2O_MSGFLAGS_FAIL) != 0);
> >  
> > @@ -572,18 +572,14 @@ ioprbs_intr(struct device *dv, struct iop_msg *im, voi
> >             err = 1;
> >     }
> >  
> > -   if (bp) {
> > -           if (err) {
> > -                   bp->b_flags |= B_ERROR;
> > -                   bp->b_error = EIO;
> > -                   bp->b_resid = bp->b_bcount;
> > -           } else
> > -                   bp->b_resid = bp->b_bcount - letoh32(rb->transfercount);
> > -   }
> > +   if (err)
> > +           xs->error = XS_DRIVER_STUFFUP;
> > +   else
> > +           xs->resid = xs->datalen - letoh32(rb->transfercount);
> >  
> >     iop_msg_unmap(iop, im);
> >     iop_msg_free(iop, im);
> > -   scsi_done(ccb->ic_xs);
> > +   scsi_done(xs);
> >     ioprbs_free_ccb(sc, ccb);
> >  }

Reply via email to