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