diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2007-05-11 06:33:09 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2007-10-16 05:20:59 -0400 |
commit | 1f6f31a03e3aed0854a6aa3ab763c3d3b2ff42ff (patch) | |
tree | bdb94c08e0bce7c17f686aabc274a7554718407b /drivers/usb/storage/jumpshot.c | |
parent | 53d412fce05e73dd0b25b0ebfa83c7ee94f16451 (diff) |
USB storage: sg chaining support
[PATCH] USB storage: sg chaining support
Modify usb_stor_access_xfer_buf() to take a pointer to an sg
entry pointer, so we can keep track of that instead of passing
around an integer index (which we can't use when dealing with
multiple scatterlist arrays).
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/usb/storage/jumpshot.c')
-rw-r--r-- | drivers/usb/storage/jumpshot.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c index 003fcf545888..61097cbb1585 100644 --- a/drivers/usb/storage/jumpshot.c +++ b/drivers/usb/storage/jumpshot.c | |||
@@ -119,7 +119,8 @@ static int jumpshot_read_data(struct us_data *us, | |||
119 | unsigned char thistime; | 119 | unsigned char thistime; |
120 | unsigned int totallen, alloclen; | 120 | unsigned int totallen, alloclen; |
121 | int len, result; | 121 | int len, result; |
122 | unsigned int sg_idx = 0, sg_offset = 0; | 122 | unsigned int sg_offset = 0; |
123 | struct scatterlist *sg = NULL; | ||
123 | 124 | ||
124 | // we're working in LBA mode. according to the ATA spec, | 125 | // we're working in LBA mode. according to the ATA spec, |
125 | // we can support up to 28-bit addressing. I don't know if Jumpshot | 126 | // we can support up to 28-bit addressing. I don't know if Jumpshot |
@@ -170,7 +171,7 @@ static int jumpshot_read_data(struct us_data *us, | |||
170 | 171 | ||
171 | // Store the data in the transfer buffer | 172 | // Store the data in the transfer buffer |
172 | usb_stor_access_xfer_buf(buffer, len, us->srb, | 173 | usb_stor_access_xfer_buf(buffer, len, us->srb, |
173 | &sg_idx, &sg_offset, TO_XFER_BUF); | 174 | &sg, &sg_offset, TO_XFER_BUF); |
174 | 175 | ||
175 | sector += thistime; | 176 | sector += thistime; |
176 | totallen -= len; | 177 | totallen -= len; |
@@ -195,7 +196,8 @@ static int jumpshot_write_data(struct us_data *us, | |||
195 | unsigned char thistime; | 196 | unsigned char thistime; |
196 | unsigned int totallen, alloclen; | 197 | unsigned int totallen, alloclen; |
197 | int len, result, waitcount; | 198 | int len, result, waitcount; |
198 | unsigned int sg_idx = 0, sg_offset = 0; | 199 | unsigned int sg_offset = 0; |
200 | struct scatterlist *sg = NULL; | ||
199 | 201 | ||
200 | // we're working in LBA mode. according to the ATA spec, | 202 | // we're working in LBA mode. according to the ATA spec, |
201 | // we can support up to 28-bit addressing. I don't know if Jumpshot | 203 | // we can support up to 28-bit addressing. I don't know if Jumpshot |
@@ -225,7 +227,7 @@ static int jumpshot_write_data(struct us_data *us, | |||
225 | 227 | ||
226 | // Get the data from the transfer buffer | 228 | // Get the data from the transfer buffer |
227 | usb_stor_access_xfer_buf(buffer, len, us->srb, | 229 | usb_stor_access_xfer_buf(buffer, len, us->srb, |
228 | &sg_idx, &sg_offset, FROM_XFER_BUF); | 230 | &sg, &sg_offset, FROM_XFER_BUF); |
229 | 231 | ||
230 | command[0] = 0; | 232 | command[0] = 0; |
231 | command[1] = thistime; | 233 | command[1] = thistime; |