[ARM] ARM FAS216: don't modify scsi_cmnd request_bufflen

SCSI doesn't want drivers to modify request_bufflen, so keep a
driver-private copy of this in the scsi_pointer structure instead.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Russell King and committed by Russell King 6b4df7ee bb71f99f

+7 -4
+5 -4
drivers/scsi/arm/fas216.c
··· 633 633 634 634 BUG_ON(bytes_transferred < 0); 635 635 636 - info->SCpnt->request_bufflen -= bytes_transferred; 636 + SCp->phase -= bytes_transferred; 637 637 638 638 while (bytes_transferred != 0) { 639 639 if (SCp->this_residual > bytes_transferred) ··· 715 715 return; 716 716 717 717 if (dmatype == fasdma_real_all) 718 - total = info->SCpnt->request_bufflen; 718 + total = info->scsi.SCp.phase; 719 719 else 720 720 total = info->scsi.SCp.this_residual; 721 721 ··· 753 753 fas216_log(info, LOG_BUFFER, 754 754 "starttransfer: buffer %p length 0x%06x reqlen 0x%06x", 755 755 info->scsi.SCp.ptr, info->scsi.SCp.this_residual, 756 - info->SCpnt->request_bufflen); 756 + info->scsi.SCp.phase); 757 757 758 758 if (!info->scsi.SCp.ptr) { 759 759 fas216_log(info, LOG_ERROR, "null buffer passed to " ··· 784 784 info->dma.transfer_type = dmatype; 785 785 786 786 if (dmatype == fasdma_real_all) 787 - fas216_set_stc(info, info->SCpnt->request_bufflen); 787 + fas216_set_stc(info, info->scsi.SCp.phase); 788 788 else 789 789 fas216_set_stc(info, info->scsi.SCp.this_residual); 790 790 ··· 2114 2114 SCpnt->SCp.buffers_residual = 0; 2115 2115 SCpnt->SCp.ptr = (char *)SCpnt->sense_buffer; 2116 2116 SCpnt->SCp.this_residual = sizeof(SCpnt->sense_buffer); 2117 + SCpnt->SCp.phase = sizeof(SCpnt->sense_buffer); 2117 2118 SCpnt->SCp.Message = 0; 2118 2119 SCpnt->SCp.Status = 0; 2119 2120 SCpnt->request_bufflen = sizeof(SCpnt->sense_buffer);
+2
drivers/scsi/arm/scsi.h
··· 80 80 (page_address(SCpnt->SCp.buffer->page) + 81 81 SCpnt->SCp.buffer->offset); 82 82 SCpnt->SCp.this_residual = SCpnt->SCp.buffer->length; 83 + SCpnt->SCp.phase = SCpnt->request_bufflen; 83 84 84 85 #ifdef BELT_AND_BRACES 85 86 /* ··· 99 98 } else { 100 99 SCpnt->SCp.ptr = (unsigned char *)SCpnt->request_buffer; 101 100 SCpnt->SCp.this_residual = SCpnt->request_bufflen; 101 + SCpnt->SCp.phase = SCpnt->request_bufflen; 102 102 } 103 103 104 104 /*