This patch adds some helper functions, which are used by some later patches, in our quest to make all the sub-drivers scatter-gather-safe.
Greg, please apply. Matt ----- Forwarded message from Alan Stern <[EMAIL PROTECTED]> ----- Date: Mon, 24 Nov 2003 16:25:27 -0500 (EST) From: Alan Stern <[EMAIL PROTECTED]> Subject: PATCH: (as145) Another utility scatter-gather routine To: Matthew Dharm <[EMAIL PROTECTED]> cc: USB Storage List <[EMAIL PROTECTED]> X-Spam-Status: No, hits=-4.0 required=5.0 tests=UNIFIED_PATCH,RCVD_IN_ORBZ version=2.11 Matt: This patch adds a small utility routine for storing data in a transfer buffer. The next patch uses this routine quite a bit in the isd200 driver. Alan Stern --- a/drivers/usb/storage/protocol.h Mon Nov 24 14:03:08 2003 +++ b/drivers/usb/storage/protocol.h Mon Nov 24 14:03:45 2003 @@ -72,4 +72,6 @@ unsigned int buflen, Scsi_Cmnd *srb, unsigned int *index, unsigned int *offset, enum xfer_buf_dir dir); +extern void usb_stor_set_xfer_buf(unsigned char *buffer, + unsigned int buflen, Scsi_Cmnd *srb); #endif --- a/drivers/usb/storage/protocol.c Mon Nov 24 14:03:01 2003 +++ b/drivers/usb/storage/protocol.c Mon Nov 24 14:07:16 2003 @@ -295,3 +295,16 @@ } return cnt; } + +/* Store the contents of buffer into srb's transfer buffer and set the + * residue. */ +void usb_stor_set_xfer_buf(unsigned char *buffer, + unsigned int buflen, Scsi_Cmnd *srb) +{ + unsigned int index = 0, offset = 0; + + usb_stor_access_xfer_buf(buffer, buflen, srb, &index, &offset, + TO_XFER_BUF); + if (buflen < srb->request_bufflen) + srb->resid = srb->request_bufflen - buflen; +} --- a/drivers/usb/storage/usb.c Mon Nov 24 14:02:55 2003 +++ b/drivers/usb/storage/usb.c Mon Nov 24 14:07:20 2003 @@ -236,8 +236,6 @@ void fill_inquiry_response(struct us_data *us, unsigned char *data, unsigned int data_len) { - unsigned int index, offset; - if (data_len<36) // You lose. return; @@ -264,11 +262,7 @@ data[35] = 0x30 + ((us->pusb_dev->descriptor.bcdDevice) & 0x0F); } - index = offset = 0; - usb_stor_access_xfer_buf(data, data_len, us->srb, - &index, &offset, TO_XFER_BUF); - if (data_len < us->srb->request_bufflen) - us->srb->resid = us->srb->request_bufflen - data_len; + usb_stor_set_xfer_buf(data, data_len, us->srb); } static int usb_stor_control_thread(void * __us) ----- End forwarded message ----- -- Matthew Dharm Home: [EMAIL PROTECTED] Maintainer, Linux USB Mass Storage Driver E: You run this ship with Windows?! YOU IDIOT! L: Give me a break, it came bundled with the computer! -- ESR and Lan Solaris User Friendly, 12/8/1998
pgp00000.pgp
Description: PGP signature