diff options
| author | Christoph Hellwig <hch@lst.de> | 2006-06-03 07:21:13 -0400 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-06-06 11:07:25 -0400 |
| commit | 5d5ff44fe6775ccb922fd1f7d478b2ba9ca95068 (patch) | |
| tree | d8569caefe1cb5ecced30929ef98d3e1fe642425 | |
| parent | e4a082c7c1f9a7b11fece6918e7ee5519b39ac46 (diff) | |
[SCSI] fix up request buffer reference in various scsi drivers
Various scsi drivers use scsi_cmnd.buffer and scsi_cmnd.bufflen in their
queuecommand functions. Those fields are internal storage for the
midlayer only and are used to restore the original payload after
request_buffer and request_bufflen have been overwritten for EH. Using
the buffer and bufflen fields means they do very broken things in error
handling.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| -rw-r--r-- | drivers/block/cciss_scsi.c | 6 | ||||
| -rw-r--r-- | drivers/scsi/3w-9xxx.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/3w-xxxx.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/NCR5380.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/aacraid/aachba.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/atp870u.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/gdth.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/in2000.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/ips.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/libata-scsi.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/megaraid.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/ncr53c8xx.c | 6 | ||||
| -rw-r--r-- | drivers/scsi/nsp32.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/sd.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/sr.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/sym53c8xx_2/sym_glue.c | 6 | ||||
| -rw-r--r-- | drivers/usb/image/microtek.c | 10 |
17 files changed, 30 insertions, 30 deletions
diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c index 597c007fe81b..afdff32f6724 100644 --- a/drivers/block/cciss_scsi.c +++ b/drivers/block/cciss_scsi.c | |||
| @@ -578,7 +578,7 @@ complete_scsi_command( CommandList_struct *cp, int timeout, __u32 tag) | |||
| 578 | 578 | ||
| 579 | if (cmd->use_sg) { | 579 | if (cmd->use_sg) { |
| 580 | pci_unmap_sg(ctlr->pdev, | 580 | pci_unmap_sg(ctlr->pdev, |
| 581 | cmd->buffer, cmd->use_sg, | 581 | cmd->request_buffer, cmd->use_sg, |
| 582 | cmd->sc_data_direction); | 582 | cmd->sc_data_direction); |
| 583 | } | 583 | } |
| 584 | else if (cmd->request_bufflen) { | 584 | else if (cmd->request_bufflen) { |
| @@ -1210,7 +1210,7 @@ cciss_scatter_gather(struct pci_dev *pdev, | |||
| 1210 | struct scsi_cmnd *cmd) | 1210 | struct scsi_cmnd *cmd) |
| 1211 | { | 1211 | { |
| 1212 | unsigned int use_sg, nsegs=0, len; | 1212 | unsigned int use_sg, nsegs=0, len; |
| 1213 | struct scatterlist *scatter = (struct scatterlist *) cmd->buffer; | 1213 | struct scatterlist *scatter = (struct scatterlist *) cmd->request_buffer; |
| 1214 | __u64 addr64; | 1214 | __u64 addr64; |
| 1215 | 1215 | ||
| 1216 | /* is it just one virtual address? */ | 1216 | /* is it just one virtual address? */ |
| @@ -1232,7 +1232,7 @@ cciss_scatter_gather(struct pci_dev *pdev, | |||
| 1232 | } /* else, must be a list of virtual addresses.... */ | 1232 | } /* else, must be a list of virtual addresses.... */ |
| 1233 | else if (cmd->use_sg <= MAXSGENTRIES) { /* not too many addrs? */ | 1233 | else if (cmd->use_sg <= MAXSGENTRIES) { /* not too many addrs? */ |
| 1234 | 1234 | ||
| 1235 | use_sg = pci_map_sg(pdev, cmd->buffer, cmd->use_sg, | 1235 | use_sg = pci_map_sg(pdev, cmd->request_buffer, cmd->use_sg, |
| 1236 | cmd->sc_data_direction); | 1236 | cmd->sc_data_direction); |
| 1237 | 1237 | ||
| 1238 | for (nsegs=0; nsegs < use_sg; nsegs++) { | 1238 | for (nsegs=0; nsegs < use_sg; nsegs++) { |
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index caeb6d246e57..b003baf8d404 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c | |||
| @@ -1388,7 +1388,7 @@ static int twa_map_scsi_sg_data(TW_Device_Extension *tw_dev, int request_id) | |||
| 1388 | if (cmd->use_sg == 0) | 1388 | if (cmd->use_sg == 0) |
| 1389 | goto out; | 1389 | goto out; |
| 1390 | 1390 | ||
| 1391 | use_sg = pci_map_sg(pdev, cmd->buffer, cmd->use_sg, DMA_BIDIRECTIONAL); | 1391 | use_sg = pci_map_sg(pdev, cmd->request_buffer, cmd->use_sg, DMA_BIDIRECTIONAL); |
| 1392 | 1392 | ||
| 1393 | if (use_sg == 0) { | 1393 | if (use_sg == 0) { |
| 1394 | TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to map scatter gather list"); | 1394 | TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to map scatter gather list"); |
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index e8e41e6eb42a..37a58c6dad29 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c | |||
| @@ -1286,7 +1286,7 @@ static int tw_map_scsi_sg_data(struct pci_dev *pdev, struct scsi_cmnd *cmd) | |||
| 1286 | if (cmd->use_sg == 0) | 1286 | if (cmd->use_sg == 0) |
| 1287 | return 0; | 1287 | return 0; |
| 1288 | 1288 | ||
| 1289 | use_sg = pci_map_sg(pdev, cmd->buffer, cmd->use_sg, DMA_BIDIRECTIONAL); | 1289 | use_sg = pci_map_sg(pdev, cmd->request_buffer, cmd->use_sg, DMA_BIDIRECTIONAL); |
| 1290 | 1290 | ||
| 1291 | if (use_sg == 0) { | 1291 | if (use_sg == 0) { |
| 1292 | printk(KERN_WARNING "3w-xxxx: tw_map_scsi_sg_data(): pci_map_sg() failed.\n"); | 1292 | printk(KERN_WARNING "3w-xxxx: tw_map_scsi_sg_data(): pci_map_sg() failed.\n"); |
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c index 9f0ddbe6dc76..fa57e0b4a5fd 100644 --- a/drivers/scsi/NCR5380.c +++ b/drivers/scsi/NCR5380.c | |||
| @@ -296,7 +296,7 @@ static __inline__ void initialize_SCp(Scsi_Cmnd * cmd) | |||
| 296 | */ | 296 | */ |
| 297 | 297 | ||
| 298 | if (cmd->use_sg) { | 298 | if (cmd->use_sg) { |
| 299 | cmd->SCp.buffer = (struct scatterlist *) cmd->buffer; | 299 | cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer; |
| 300 | cmd->SCp.buffers_residual = cmd->use_sg - 1; | 300 | cmd->SCp.buffers_residual = cmd->use_sg - 1; |
| 301 | cmd->SCp.ptr = page_address(cmd->SCp.buffer->page)+ | 301 | cmd->SCp.ptr = page_address(cmd->SCp.buffer->page)+ |
| 302 | cmd->SCp.buffer->offset; | 302 | cmd->SCp.buffer->offset; |
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c index be8dde4c0f0c..e4b38f896cbd 100644 --- a/drivers/scsi/aacraid/aachba.c +++ b/drivers/scsi/aacraid/aachba.c | |||
| @@ -961,7 +961,7 @@ static void io_callback(void *context, struct fib * fibptr) | |||
| 961 | 961 | ||
| 962 | if(scsicmd->use_sg) | 962 | if(scsicmd->use_sg) |
| 963 | pci_unmap_sg(dev->pdev, | 963 | pci_unmap_sg(dev->pdev, |
| 964 | (struct scatterlist *)scsicmd->buffer, | 964 | (struct scatterlist *)scsicmd->request_buffer, |
| 965 | scsicmd->use_sg, | 965 | scsicmd->use_sg, |
| 966 | scsicmd->sc_data_direction); | 966 | scsicmd->sc_data_direction); |
| 967 | else if(scsicmd->request_bufflen) | 967 | else if(scsicmd->request_bufflen) |
| @@ -1919,7 +1919,7 @@ static void aac_srb_callback(void *context, struct fib * fibptr) | |||
| 1919 | 1919 | ||
| 1920 | if(scsicmd->use_sg) | 1920 | if(scsicmd->use_sg) |
| 1921 | pci_unmap_sg(dev->pdev, | 1921 | pci_unmap_sg(dev->pdev, |
| 1922 | (struct scatterlist *)scsicmd->buffer, | 1922 | (struct scatterlist *)scsicmd->request_buffer, |
| 1923 | scsicmd->use_sg, | 1923 | scsicmd->use_sg, |
| 1924 | scsicmd->sc_data_direction); | 1924 | scsicmd->sc_data_direction); |
| 1925 | else if(scsicmd->request_bufflen) | 1925 | else if(scsicmd->request_bufflen) |
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c index 58d7e34807aa..3ee4d4d3f445 100644 --- a/drivers/scsi/atp870u.c +++ b/drivers/scsi/atp870u.c | |||
| @@ -473,7 +473,7 @@ go_42: | |||
| 473 | */ | 473 | */ |
| 474 | if (workreq->use_sg) { | 474 | if (workreq->use_sg) { |
| 475 | pci_unmap_sg(dev->pdev, | 475 | pci_unmap_sg(dev->pdev, |
| 476 | (struct scatterlist *)workreq->buffer, | 476 | (struct scatterlist *)workreq->request_buffer, |
| 477 | workreq->use_sg, | 477 | workreq->use_sg, |
| 478 | workreq->sc_data_direction); | 478 | workreq->sc_data_direction); |
| 479 | } else if (workreq->request_bufflen && | 479 | } else if (workreq->request_bufflen && |
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index d5740bbdef3e..9b918fd43bf5 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c | |||
| @@ -2542,7 +2542,7 @@ static void gdth_copy_internal_data(int hanum,Scsi_Cmnd *scp, | |||
| 2542 | gdth_ha_str *ha; | 2542 | gdth_ha_str *ha; |
| 2543 | char *address; | 2543 | char *address; |
| 2544 | 2544 | ||
| 2545 | cpcount = count<=(ushort)scp->bufflen ? count:(ushort)scp->bufflen; | 2545 | cpcount = count<=(ushort)scp->request_bufflen ? count:(ushort)scp->request_bufflen; |
| 2546 | ha = HADATA(gdth_ctr_tab[hanum]); | 2546 | ha = HADATA(gdth_ctr_tab[hanum]); |
| 2547 | 2547 | ||
| 2548 | if (scp->use_sg) { | 2548 | if (scp->use_sg) { |
diff --git a/drivers/scsi/in2000.c b/drivers/scsi/in2000.c index 9c519876f8a0..89a57a62e8ca 100644 --- a/drivers/scsi/in2000.c +++ b/drivers/scsi/in2000.c | |||
| @@ -370,7 +370,7 @@ static int in2000_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)) | |||
| 370 | */ | 370 | */ |
| 371 | 371 | ||
| 372 | if (cmd->use_sg) { | 372 | if (cmd->use_sg) { |
| 373 | cmd->SCp.buffer = (struct scatterlist *) cmd->buffer; | 373 | cmd->SCp.buffer = (struct scatterlist *) cmd->request_buffer; |
| 374 | cmd->SCp.buffers_residual = cmd->use_sg - 1; | 374 | cmd->SCp.buffers_residual = cmd->use_sg - 1; |
| 375 | cmd->SCp.ptr = (char *) page_address(cmd->SCp.buffer->page) + cmd->SCp.buffer->offset; | 375 | cmd->SCp.ptr = (char *) page_address(cmd->SCp.buffer->page) + cmd->SCp.buffer->offset; |
| 376 | cmd->SCp.this_residual = cmd->SCp.buffer->length; | 376 | cmd->SCp.this_residual = cmd->SCp.buffer->length; |
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index a4c0b04cfdbd..350c08c60887 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c | |||
| @@ -4364,7 +4364,7 @@ ips_rdcap(ips_ha_t * ha, ips_scb_t * scb) | |||
| 4364 | 4364 | ||
| 4365 | METHOD_TRACE("ips_rdcap", 1); | 4365 | METHOD_TRACE("ips_rdcap", 1); |
| 4366 | 4366 | ||
| 4367 | if (scb->scsi_cmd->bufflen < 8) | 4367 | if (scb->scsi_cmd->request_bufflen < 8) |
| 4368 | return (0); | 4368 | return (0); |
| 4369 | 4369 | ||
| 4370 | cap.lba = | 4370 | cap.lba = |
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index a0289ec3e283..994015726ec8 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
| @@ -2310,7 +2310,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc, const u8 *scsicmd) | |||
| 2310 | #endif | 2310 | #endif |
| 2311 | } | 2311 | } |
| 2312 | 2312 | ||
| 2313 | qc->nbytes = cmd->bufflen; | 2313 | qc->nbytes = cmd->request_bufflen; |
| 2314 | 2314 | ||
| 2315 | return 0; | 2315 | return 0; |
| 2316 | } | 2316 | } |
| @@ -2500,7 +2500,7 @@ ata_scsi_pass_thru(struct ata_queued_cmd *qc, const u8 *scsicmd) | |||
| 2500 | * TODO: find out if we need to do more here to | 2500 | * TODO: find out if we need to do more here to |
| 2501 | * cover scatter/gather case. | 2501 | * cover scatter/gather case. |
| 2502 | */ | 2502 | */ |
| 2503 | qc->nsect = cmd->bufflen / ATA_SECT_SIZE; | 2503 | qc->nsect = cmd->request_bufflen / ATA_SECT_SIZE; |
| 2504 | 2504 | ||
| 2505 | return 0; | 2505 | return 0; |
| 2506 | 2506 | ||
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 80b68a2481b3..d245717fee65 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
| @@ -524,7 +524,7 @@ mega_build_cmd(adapter_t *adapter, Scsi_Cmnd *cmd, int *busy) | |||
| 524 | * filter the internal and ioctl commands | 524 | * filter the internal and ioctl commands |
| 525 | */ | 525 | */ |
| 526 | if((cmd->cmnd[0] == MEGA_INTERNAL_CMD)) { | 526 | if((cmd->cmnd[0] == MEGA_INTERNAL_CMD)) { |
| 527 | return cmd->buffer; | 527 | return cmd->request_buffer; |
| 528 | } | 528 | } |
| 529 | 529 | ||
| 530 | 530 | ||
| @@ -4493,7 +4493,7 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru) | |||
| 4493 | scmd->device = sdev; | 4493 | scmd->device = sdev; |
| 4494 | 4494 | ||
| 4495 | scmd->device->host = adapter->host; | 4495 | scmd->device->host = adapter->host; |
| 4496 | scmd->buffer = (void *)scb; | 4496 | scmd->request_buffer = (void *)scb; |
| 4497 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; | 4497 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; |
| 4498 | 4498 | ||
| 4499 | scb->state |= SCB_ACTIVE; | 4499 | scb->state |= SCB_ACTIVE; |
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c index 22f913127f08..6ab035590ee6 100644 --- a/drivers/scsi/ncr53c8xx.c +++ b/drivers/scsi/ncr53c8xx.c | |||
| @@ -529,7 +529,7 @@ static void __unmap_scsi_data(struct device *dev, struct scsi_cmnd *cmd) | |||
| 529 | { | 529 | { |
| 530 | switch(cmd->__data_mapped) { | 530 | switch(cmd->__data_mapped) { |
| 531 | case 2: | 531 | case 2: |
| 532 | dma_unmap_sg(dev, cmd->buffer, cmd->use_sg, | 532 | dma_unmap_sg(dev, cmd->request_buffer, cmd->use_sg, |
| 533 | cmd->sc_data_direction); | 533 | cmd->sc_data_direction); |
| 534 | break; | 534 | break; |
| 535 | case 1: | 535 | case 1: |
| @@ -564,7 +564,7 @@ static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd) | |||
| 564 | if (cmd->use_sg == 0) | 564 | if (cmd->use_sg == 0) |
| 565 | return 0; | 565 | return 0; |
| 566 | 566 | ||
| 567 | use_sg = dma_map_sg(dev, cmd->buffer, cmd->use_sg, | 567 | use_sg = dma_map_sg(dev, cmd->request_buffer, cmd->use_sg, |
| 568 | cmd->sc_data_direction); | 568 | cmd->sc_data_direction); |
| 569 | cmd->__data_mapped = 2; | 569 | cmd->__data_mapped = 2; |
| 570 | cmd->__data_mapping = use_sg; | 570 | cmd->__data_mapping = use_sg; |
| @@ -7697,7 +7697,7 @@ static int ncr_scatter(struct ncb *np, struct ccb *cp, struct scsi_cmnd *cmd) | |||
| 7697 | if (!use_sg) | 7697 | if (!use_sg) |
| 7698 | segment = ncr_scatter_no_sglist(np, cp, cmd); | 7698 | segment = ncr_scatter_no_sglist(np, cp, cmd); |
| 7699 | else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) { | 7699 | else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) { |
| 7700 | struct scatterlist *scatter = (struct scatterlist *)cmd->buffer; | 7700 | struct scatterlist *scatter = (struct scatterlist *)cmd->request_buffer; |
| 7701 | struct scr_tblmove *data; | 7701 | struct scr_tblmove *data; |
| 7702 | 7702 | ||
| 7703 | if (use_sg > MAX_SCATTER) { | 7703 | if (use_sg > MAX_SCATTER) { |
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c index 30ee0ef4b459..5c55e152e718 100644 --- a/drivers/scsi/nsp32.c +++ b/drivers/scsi/nsp32.c | |||
| @@ -1636,7 +1636,7 @@ static void nsp32_scsi_done(struct scsi_cmnd *SCpnt) | |||
| 1636 | 1636 | ||
| 1637 | if (SCpnt->use_sg) { | 1637 | if (SCpnt->use_sg) { |
| 1638 | pci_unmap_sg(data->Pci, | 1638 | pci_unmap_sg(data->Pci, |
| 1639 | (struct scatterlist *)SCpnt->buffer, | 1639 | (struct scatterlist *)SCpnt->request_buffer, |
| 1640 | SCpnt->use_sg, SCpnt->sc_data_direction); | 1640 | SCpnt->use_sg, SCpnt->sc_data_direction); |
| 1641 | } else { | 1641 | } else { |
| 1642 | pci_unmap_single(data->Pci, | 1642 | pci_unmap_single(data->Pci, |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index c647d85d97d1..a112e49e946f 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
| @@ -891,7 +891,7 @@ static struct block_device_operations sd_fops = { | |||
| 891 | static void sd_rw_intr(struct scsi_cmnd * SCpnt) | 891 | static void sd_rw_intr(struct scsi_cmnd * SCpnt) |
| 892 | { | 892 | { |
| 893 | int result = SCpnt->result; | 893 | int result = SCpnt->result; |
| 894 | int this_count = SCpnt->bufflen; | 894 | int this_count = SCpnt->request_bufflen; |
| 895 | int good_bytes = (result == 0 ? this_count : 0); | 895 | int good_bytes = (result == 0 ? this_count : 0); |
| 896 | sector_t block_sectors = 1; | 896 | sector_t block_sectors = 1; |
| 897 | u64 first_err_block; | 897 | u64 first_err_block; |
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 7c80711e18ed..ebf6579ed698 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
| @@ -217,7 +217,7 @@ int sr_media_change(struct cdrom_device_info *cdi, int slot) | |||
| 217 | static void rw_intr(struct scsi_cmnd * SCpnt) | 217 | static void rw_intr(struct scsi_cmnd * SCpnt) |
| 218 | { | 218 | { |
| 219 | int result = SCpnt->result; | 219 | int result = SCpnt->result; |
| 220 | int this_count = SCpnt->bufflen; | 220 | int this_count = SCpnt->request_bufflen; |
| 221 | int good_bytes = (result == 0 ? this_count : 0); | 221 | int good_bytes = (result == 0 ? this_count : 0); |
| 222 | int block_sectors = 0; | 222 | int block_sectors = 0; |
| 223 | long error_sector; | 223 | long error_sector; |
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c index 9c83b4d39a26..ee081320e1f1 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.c +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c | |||
| @@ -156,7 +156,7 @@ static void __unmap_scsi_data(struct pci_dev *pdev, struct scsi_cmnd *cmd) | |||
| 156 | 156 | ||
| 157 | switch(SYM_UCMD_PTR(cmd)->data_mapped) { | 157 | switch(SYM_UCMD_PTR(cmd)->data_mapped) { |
| 158 | case 2: | 158 | case 2: |
| 159 | pci_unmap_sg(pdev, cmd->buffer, cmd->use_sg, dma_dir); | 159 | pci_unmap_sg(pdev, cmd->request_buffer, cmd->use_sg, dma_dir); |
| 160 | break; | 160 | break; |
| 161 | case 1: | 161 | case 1: |
| 162 | pci_unmap_single(pdev, SYM_UCMD_PTR(cmd)->data_mapping, | 162 | pci_unmap_single(pdev, SYM_UCMD_PTR(cmd)->data_mapping, |
| @@ -186,7 +186,7 @@ static int __map_scsi_sg_data(struct pci_dev *pdev, struct scsi_cmnd *cmd) | |||
| 186 | int use_sg; | 186 | int use_sg; |
| 187 | int dma_dir = cmd->sc_data_direction; | 187 | int dma_dir = cmd->sc_data_direction; |
| 188 | 188 | ||
| 189 | use_sg = pci_map_sg(pdev, cmd->buffer, cmd->use_sg, dma_dir); | 189 | use_sg = pci_map_sg(pdev, cmd->request_buffer, cmd->use_sg, dma_dir); |
| 190 | if (use_sg > 0) { | 190 | if (use_sg > 0) { |
| 191 | SYM_UCMD_PTR(cmd)->data_mapped = 2; | 191 | SYM_UCMD_PTR(cmd)->data_mapped = 2; |
| 192 | SYM_UCMD_PTR(cmd)->data_mapping = use_sg; | 192 | SYM_UCMD_PTR(cmd)->data_mapping = use_sg; |
| @@ -376,7 +376,7 @@ static int sym_scatter(struct sym_hcb *np, struct sym_ccb *cp, struct scsi_cmnd | |||
| 376 | if (!use_sg) | 376 | if (!use_sg) |
| 377 | segment = sym_scatter_no_sglist(np, cp, cmd); | 377 | segment = sym_scatter_no_sglist(np, cp, cmd); |
| 378 | else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) { | 378 | else if ((use_sg = map_scsi_sg_data(np, cmd)) > 0) { |
| 379 | struct scatterlist *scatter = (struct scatterlist *)cmd->buffer; | 379 | struct scatterlist *scatter = (struct scatterlist *)cmd->request_buffer; |
| 380 | struct sym_tcb *tp = &np->target[cp->target]; | 380 | struct sym_tcb *tp = &np->target[cp->target]; |
| 381 | struct sym_tblmove *data; | 381 | struct sym_tblmove *data; |
| 382 | 382 | ||
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c index 2a0e18a48748..b2bafc37c414 100644 --- a/drivers/usb/image/microtek.c +++ b/drivers/usb/image/microtek.c | |||
| @@ -513,7 +513,7 @@ static void mts_do_sg (struct urb* transfer, struct pt_regs *regs) | |||
| 513 | mts_transfer_cleanup(transfer); | 513 | mts_transfer_cleanup(transfer); |
| 514 | } | 514 | } |
| 515 | 515 | ||
| 516 | sg = context->srb->buffer; | 516 | sg = context->srb->request_buffer; |
| 517 | context->fragment++; | 517 | context->fragment++; |
| 518 | mts_int_submit_urb(transfer, | 518 | mts_int_submit_urb(transfer, |
| 519 | context->data_pipe, | 519 | context->data_pipe, |
| @@ -549,19 +549,19 @@ mts_build_transfer_context( Scsi_Cmnd *srb, struct mts_desc* desc ) | |||
| 549 | desc->context.fragment = 0; | 549 | desc->context.fragment = 0; |
| 550 | 550 | ||
| 551 | if (!srb->use_sg) { | 551 | if (!srb->use_sg) { |
| 552 | if ( !srb->bufflen ){ | 552 | if ( !srb->request_bufflen ){ |
| 553 | desc->context.data = NULL; | 553 | desc->context.data = NULL; |
| 554 | desc->context.data_length = 0; | 554 | desc->context.data_length = 0; |
| 555 | return; | 555 | return; |
| 556 | } else { | 556 | } else { |
| 557 | desc->context.data = srb->buffer; | 557 | desc->context.data = srb->request_buffer; |
| 558 | desc->context.data_length = srb->bufflen; | 558 | desc->context.data_length = srb->request_bufflen; |
| 559 | MTS_DEBUG("length = %d or %d\n", | 559 | MTS_DEBUG("length = %d or %d\n", |
| 560 | srb->request_bufflen, srb->bufflen); | 560 | srb->request_bufflen, srb->bufflen); |
| 561 | } | 561 | } |
| 562 | } else { | 562 | } else { |
| 563 | MTS_DEBUG("Using scatter/gather\n"); | 563 | MTS_DEBUG("Using scatter/gather\n"); |
| 564 | sg = srb->buffer; | 564 | sg = srb->request_buffer; |
| 565 | desc->context.data = page_address(sg[0].page) + sg[0].offset; | 565 | desc->context.data = page_address(sg[0].page) + sg[0].offset; |
| 566 | desc->context.data_length = sg[0].length; | 566 | desc->context.data_length = sg[0].length; |
| 567 | } | 567 | } |
