Commit 772a5c3f3bbc7749971a3dd4ff35cd77a9e12201

Authored by FUJITA Tomonori
Committed by James Bottomley
1 parent 03cde46b6b

[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);