* [PATCH V2 07/15] usb: image: microtek: use sg helper to operate sgl
[not found] <20190613071335.5679-1-ming.lei@redhat.com>
@ 2019-06-13 7:13 ` Ming Lei
2019-06-13 11:48 ` Greg Kroah-Hartman
0 siblings, 1 reply; 2+ messages in thread
From: Ming Lei @ 2019-06-13 7:13 UTC (permalink / raw)
To: linux-scsi, Martin K . Petersen
Cc: James Bottomley, Bart Van Assche, Hannes Reinecke,
Christoph Hellwig, Jim Gill, Cathy Avery, Ewan D . Milne,
Brian King, James Smart, Juergen E . Fischer, Michael Schmitz,
Finn Thain, Ming Lei, Oliver Neukum, Greg Kroah-Hartman,
linux-usb
The current way isn't safe for chained sgl, so use sg helper to
operate sgl.
Cc: Oliver Neukum <oliver@neukum.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
drivers/usb/image/microtek.c | 20 ++++++++------------
drivers/usb/image/microtek.h | 2 +-
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
index 607be1f4fe27..0a57c2cc8e5a 100644
--- a/drivers/usb/image/microtek.c
+++ b/drivers/usb/image/microtek.c
@@ -488,7 +488,6 @@ static void mts_command_done( struct urb *transfer )
static void mts_do_sg (struct urb* transfer)
{
- struct scatterlist * sg;
int status = transfer->status;
MTS_INT_INIT();
@@ -500,13 +499,12 @@ static void mts_do_sg (struct urb* transfer)
mts_transfer_cleanup(transfer);
}
- sg = scsi_sglist(context->srb);
- context->fragment++;
+ context->curr_sg = sg_next(context->curr_sg);
mts_int_submit_urb(transfer,
context->data_pipe,
- sg_virt(&sg[context->fragment]),
- sg[context->fragment].length,
- context->fragment + 1 == scsi_sg_count(context->srb) ?
+ sg_virt(context->curr_sg),
+ context->curr_sg->length,
+ sg_is_last(context->curr_sg) ?
mts_data_done : mts_do_sg);
}
@@ -526,22 +524,20 @@ static void
mts_build_transfer_context(struct scsi_cmnd *srb, struct mts_desc* desc)
{
int pipe;
- struct scatterlist * sg;
-
+
MTS_DEBUG_GOT_HERE();
desc->context.instance = desc;
desc->context.srb = srb;
- desc->context.fragment = 0;
if (!scsi_bufflen(srb)) {
desc->context.data = NULL;
desc->context.data_length = 0;
return;
} else {
- sg = scsi_sglist(srb);
- desc->context.data = sg_virt(&sg[0]);
- desc->context.data_length = sg[0].length;
+ desc->context.curr_sg = scsi_sglist(srb);
+ desc->context.data = sg_virt(desc->context.curr_sg);
+ desc->context.data_length = desc->context.curr_sg->length;
}
diff --git a/drivers/usb/image/microtek.h b/drivers/usb/image/microtek.h
index 66685e59241a..7bd5f4639c4a 100644
--- a/drivers/usb/image/microtek.h
+++ b/drivers/usb/image/microtek.h
@@ -21,7 +21,7 @@ struct mts_transfer_context
void *data;
unsigned data_length;
int data_pipe;
- int fragment;
+ struct scatterlist *curr_sg;
u8 *scsi_status; /* status returned from ep_response after command completion */
};
--
2.20.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH V2 07/15] usb: image: microtek: use sg helper to operate sgl
2019-06-13 7:13 ` [PATCH V2 07/15] usb: image: microtek: use sg helper to operate sgl Ming Lei
@ 2019-06-13 11:48 ` Greg Kroah-Hartman
0 siblings, 0 replies; 2+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-13 11:48 UTC (permalink / raw)
To: Ming Lei
Cc: linux-scsi, Martin K . Petersen, James Bottomley,
Bart Van Assche, Hannes Reinecke, Christoph Hellwig, Jim Gill,
Cathy Avery, Ewan D . Milne, Brian King, James Smart,
Juergen E . Fischer, Michael Schmitz, Finn Thain, Oliver Neukum,
linux-usb
On Thu, Jun 13, 2019 at 03:13:27PM +0800, Ming Lei wrote:
> The current way isn't safe for chained sgl, so use sg helper to
> operate sgl.
Same changelog comment problem as I mentioned on the other patch, please
fix up and resend.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-13 16:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20190613071335.5679-1-ming.lei@redhat.com>
2019-06-13 7:13 ` [PATCH V2 07/15] usb: image: microtek: use sg helper to operate sgl Ming Lei
2019-06-13 11:48 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).