Commit 772a5c3f3bbc7749971a3dd4ff35cd77a9e12201
Committed by
James Bottomley
1 parent
03cde46b6b
Exists in
master
and in
4 other branches
[SCSI] sym53c416: convert to use the data buffer accessors
- remove the unnecessary map_single path. - convert to use the new accessors for the sg lists and the parameters. Jens Axboe <jens.axboe@oracle.com> did the for_each_sg cleanup. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Showing 1 changed file with 18 additions and 26 deletions Side-by-side Diff
drivers/scsi/sym53c416.c
... | ... | @@ -332,8 +332,7 @@ |
332 | 332 | int i; |
333 | 333 | unsigned long flags = 0; |
334 | 334 | unsigned char status_reg, pio_int_reg, int_reg; |
335 | - struct scatterlist *sglist; | |
336 | - unsigned int sgcount; | |
335 | + struct scatterlist *sg; | |
337 | 336 | unsigned int tot_trans = 0; |
338 | 337 | |
339 | 338 | /* We search the base address of the host adapter which caused the interrupt */ |
340 | 339 | |
... | ... | @@ -429,19 +428,15 @@ |
429 | 428 | { |
430 | 429 | current_command->SCp.phase = data_out; |
431 | 430 | outb(FLUSH_FIFO, base + COMMAND_REG); |
432 | - sym53c416_set_transfer_counter(base, current_command->request_bufflen); | |
431 | + sym53c416_set_transfer_counter(base, | |
432 | + scsi_bufflen(current_command)); | |
433 | 433 | outb(TRANSFER_INFORMATION | PIO_MODE, base + COMMAND_REG); |
434 | - if(!current_command->use_sg) | |
435 | - tot_trans = sym53c416_write(base, current_command->request_buffer, current_command->request_bufflen); | |
436 | - else | |
437 | - { | |
438 | - sgcount = current_command->use_sg; | |
439 | - sglist = current_command->request_buffer; | |
440 | - while(sgcount--) | |
441 | - { | |
442 | - tot_trans += sym53c416_write(base, SG_ADDRESS(sglist), sglist->length); | |
443 | - sglist++; | |
444 | - } | |
434 | + | |
435 | + scsi_for_each_sg(current_command, | |
436 | + sg, scsi_sg_count(current_command), i) { | |
437 | + tot_trans += sym53c416_write(base, | |
438 | + SG_ADDRESS(sg), | |
439 | + sg->length); | |
445 | 440 | } |
446 | 441 | if(tot_trans < current_command->underflow) |
447 | 442 | printk(KERN_WARNING "sym53c416: Underflow, wrote %d bytes, request for %d bytes.\n", tot_trans, current_command->underflow); |
448 | 443 | |
... | ... | @@ -455,19 +450,16 @@ |
455 | 450 | { |
456 | 451 | current_command->SCp.phase = data_in; |
457 | 452 | outb(FLUSH_FIFO, base + COMMAND_REG); |
458 | - sym53c416_set_transfer_counter(base, current_command->request_bufflen); | |
453 | + sym53c416_set_transfer_counter(base, | |
454 | + scsi_bufflen(current_command)); | |
455 | + | |
459 | 456 | outb(TRANSFER_INFORMATION | PIO_MODE, base + COMMAND_REG); |
460 | - if(!current_command->use_sg) | |
461 | - tot_trans = sym53c416_read(base, current_command->request_buffer, current_command->request_bufflen); | |
462 | - else | |
463 | - { | |
464 | - sgcount = current_command->use_sg; | |
465 | - sglist = current_command->request_buffer; | |
466 | - while(sgcount--) | |
467 | - { | |
468 | - tot_trans += sym53c416_read(base, SG_ADDRESS(sglist), sglist->length); | |
469 | - sglist++; | |
470 | - } | |
457 | + | |
458 | + scsi_for_each_sg(current_command, | |
459 | + sg, scsi_sg_count(current_command), i) { | |
460 | + tot_trans += sym53c416_read(base, | |
461 | + SG_ADDRESS(sg), | |
462 | + sg->length); | |
471 | 463 | } |
472 | 464 | if(tot_trans < current_command->underflow) |
473 | 465 | printk(KERN_WARNING "sym53c416: Underflow, read %d bytes, request for %d bytes.\n", tot_trans, current_command->underflow); |