Replying to the mailing-list as well. ACK On Sunday 29 July 2007 09:46, FUJITA Tomonori wrote: > The patch is only compile tested. > > --- > From: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> > Subject: [PATCH] zfcp: convert to use the data buffer accessors > > - remove the unnecessary map_single path. > > - convert to use the new accessors for the sg lists and the > parameters. > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> > --- > drivers/s390/scsi/zfcp_fsf.c | 5 +++-- > drivers/s390/scsi/zfcp_qdio.c | 41 ++++++----------------------------------- > 2 files changed, 9 insertions(+), 37 deletions(-) > > diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c > index b240800..9929997 100644 > --- a/drivers/s390/scsi/zfcp_fsf.c > +++ b/drivers/s390/scsi/zfcp_fsf.c > @@ -4154,8 +4154,9 @@ zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *fsf_req) > fcp_rsp_iu->fcp_resid, > (int) zfcp_get_fcp_dl(fcp_cmnd_iu)); > > - scpnt->resid = fcp_rsp_iu->fcp_resid; > - if (scpnt->request_bufflen - scpnt->resid < scpnt->underflow) > + scsi_set_resid(scpnt, fcp_rsp_iu->fcp_resid); > + if (scsi_bufflen(scpnt) - scsi_get_resid(scpnt) < > + scpnt->underflow) > set_host_byte(&scpnt->result, DID_ERROR); > } > > diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c > index c408bad..81daa82 100644 > --- a/drivers/s390/scsi/zfcp_qdio.c > +++ b/drivers/s390/scsi/zfcp_qdio.c > @@ -36,8 +36,6 @@ static void zfcp_qdio_sbale_fill > (struct zfcp_fsf_req *, unsigned long, void *, int); > static int zfcp_qdio_sbals_from_segment > (struct zfcp_fsf_req *, unsigned long, void *, unsigned long); > -static int zfcp_qdio_sbals_from_buffer > - (struct zfcp_fsf_req *, unsigned long, void *, unsigned long, int); > > static qdio_handler_t zfcp_qdio_request_handler; > static qdio_handler_t zfcp_qdio_response_handler; > @@ -632,28 +630,6 @@ out: > > > /** > - * zfcp_qdio_sbals_from_buffer - fill SBALs from buffer > - * @fsf_req: request to be processed > - * @sbtype: SBALE flags > - * @buffer: data buffer > - * @length: length of buffer > - * @max_sbals: upper bound for number of SBALs to be used > - */ > -static int > -zfcp_qdio_sbals_from_buffer(struct zfcp_fsf_req *fsf_req, unsigned long sbtype, > - void *buffer, unsigned long length, int max_sbals) > -{ > - struct scatterlist sg_segment; > - > - zfcp_address_to_sg(buffer, &sg_segment); > - sg_segment.length = length; > - > - return zfcp_qdio_sbals_from_sg(fsf_req, sbtype, &sg_segment, 1, > - max_sbals); > -} > - > - > -/** > * zfcp_qdio_sbals_from_scsicmnd - fill SBALs from scsi command > * @fsf_req: request to be processed > * @sbtype: SBALE flags > @@ -664,18 +640,13 @@ int > zfcp_qdio_sbals_from_scsicmnd(struct zfcp_fsf_req *fsf_req, > unsigned long sbtype, struct scsi_cmnd *scsi_cmnd) > { > - if (scsi_cmnd->use_sg) { > + if (scsi_sg_count(scsi_cmnd)) > return zfcp_qdio_sbals_from_sg(fsf_req, sbtype, > - (struct scatterlist *) > - scsi_cmnd->request_buffer, > - scsi_cmnd->use_sg, > - ZFCP_MAX_SBALS_PER_REQ); > - } else { > - return zfcp_qdio_sbals_from_buffer(fsf_req, sbtype, > - scsi_cmnd->request_buffer, > - scsi_cmnd->request_bufflen, > - ZFCP_MAX_SBALS_PER_REQ); > - } > + scsi_sglist(scsi_cmnd), > + scsi_sg_count(scsi_cmnd), > + ZFCP_MAX_SBALS_PER_REQ); > + else > + return 0; > } > > /** - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html