diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2008-03-08 23:44:36 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-04-07 13:15:46 -0400 |
commit | e943752ecf0ce41cdf949d565140d91c7711dfd9 (patch) | |
tree | f4c3b4326578d2600a5328a127da13224be6670e /drivers/scsi | |
parent | 31fe47d4374eb29d914333aa26bcb7ca9f1545f3 (diff) |
[SCSI] 3w-xxxx: use sg buffer copy helper functions
This rewrites tw_transfer_internal with scsi_sg_copy_from/to_buffer.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Adam Radford <linuxraid@amcc.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/3w-xxxx.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index d09532162217..a2fc06022e10 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c | |||
@@ -1463,18 +1463,10 @@ static void tw_transfer_internal(TW_Device_Extension *tw_dev, int request_id, | |||
1463 | void *data, unsigned int len) | 1463 | void *data, unsigned int len) |
1464 | { | 1464 | { |
1465 | struct scsi_cmnd *cmd = tw_dev->srb[request_id]; | 1465 | struct scsi_cmnd *cmd = tw_dev->srb[request_id]; |
1466 | void *buf; | 1466 | unsigned long flags; |
1467 | unsigned int transfer_len; | ||
1468 | unsigned long flags = 0; | ||
1469 | struct scatterlist *sg = scsi_sglist(cmd); | ||
1470 | 1467 | ||
1471 | local_irq_save(flags); | 1468 | local_irq_save(flags); |
1472 | buf = kmap_atomic(sg_page(sg), KM_IRQ0) + sg->offset; | 1469 | scsi_sg_copy_from_buffer(cmd, data, len); |
1473 | transfer_len = min(sg->length, len); | ||
1474 | |||
1475 | memcpy(buf, data, transfer_len); | ||
1476 | |||
1477 | kunmap_atomic(buf - sg->offset, KM_IRQ0); | ||
1478 | local_irq_restore(flags); | 1470 | local_irq_restore(flags); |
1479 | } | 1471 | } |
1480 | 1472 | ||