提交 e1eaf460 编写于 作者: F FUJITA Tomonori 提交者: James Bottomley

[SCSI] fdomain: 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.
Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
上级 9482ef85
...@@ -1345,16 +1345,15 @@ static irqreturn_t do_fdomain_16x0_intr(int irq, void *dev_id) ...@@ -1345,16 +1345,15 @@ static irqreturn_t do_fdomain_16x0_intr(int irq, void *dev_id)
#if ERRORS_ONLY #if ERRORS_ONLY
if (current_SC->cmnd[0] == REQUEST_SENSE && !current_SC->SCp.Status) { if (current_SC->cmnd[0] == REQUEST_SENSE && !current_SC->SCp.Status) {
if ((unsigned char)(*((char *)current_SC->request_buffer+2)) & 0x0f) { char *buf = scsi_sglist(current_SC);
if ((unsigned char)(*(buf + 2)) & 0x0f) {
unsigned char key; unsigned char key;
unsigned char code; unsigned char code;
unsigned char qualifier; unsigned char qualifier;
key = (unsigned char)(*((char *)current_SC->request_buffer + 2)) key = (unsigned char)(*(buf + 2)) & 0x0f;
& 0x0f; code = (unsigned char)(*(buf + 12));
code = (unsigned char)(*((char *)current_SC->request_buffer + 12)); qualifier = (unsigned char)(*(buf + 13));
qualifier = (unsigned char)(*((char *)current_SC->request_buffer
+ 13));
if (key != UNIT_ATTENTION if (key != UNIT_ATTENTION
&& !(key == NOT_READY && !(key == NOT_READY
...@@ -1405,8 +1404,8 @@ static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt, ...@@ -1405,8 +1404,8 @@ static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt,
printk( "queue: target = %d cmnd = 0x%02x pieces = %d size = %u\n", printk( "queue: target = %d cmnd = 0x%02x pieces = %d size = %u\n",
SCpnt->target, SCpnt->target,
*(unsigned char *)SCpnt->cmnd, *(unsigned char *)SCpnt->cmnd,
SCpnt->use_sg, scsi_sg_count(SCpnt),
SCpnt->request_bufflen ); scsi_bufflen(SCpnt));
#endif #endif
fdomain_make_bus_idle(); fdomain_make_bus_idle();
...@@ -1416,20 +1415,19 @@ static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt, ...@@ -1416,20 +1415,19 @@ static int fdomain_16x0_queue(struct scsi_cmnd *SCpnt,
/* Initialize static data */ /* Initialize static data */
if (current_SC->use_sg) { if (scsi_sg_count(current_SC)) {
current_SC->SCp.buffer = current_SC->SCp.buffer = scsi_sglist(current_SC);
(struct scatterlist *)current_SC->request_buffer; current_SC->SCp.ptr = page_address(current_SC->SCp.buffer->page)
current_SC->SCp.ptr = page_address(current_SC->SCp.buffer->page) + current_SC->SCp.buffer->offset; + current_SC->SCp.buffer->offset;
current_SC->SCp.this_residual = current_SC->SCp.buffer->length; current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
current_SC->SCp.buffers_residual = current_SC->use_sg - 1; current_SC->SCp.buffers_residual = scsi_sg_count(current_SC) - 1;
} else { } else {
current_SC->SCp.ptr = (char *)current_SC->request_buffer; current_SC->SCp.ptr = 0;
current_SC->SCp.this_residual = current_SC->request_bufflen; current_SC->SCp.this_residual = 0;
current_SC->SCp.buffer = NULL; current_SC->SCp.buffer = NULL;
current_SC->SCp.buffers_residual = 0; current_SC->SCp.buffers_residual = 0;
} }
current_SC->SCp.Status = 0; current_SC->SCp.Status = 0;
current_SC->SCp.Message = 0; current_SC->SCp.Message = 0;
current_SC->SCp.have_data_in = 0; current_SC->SCp.have_data_in = 0;
...@@ -1472,8 +1470,8 @@ static void print_info(struct scsi_cmnd *SCpnt) ...@@ -1472,8 +1470,8 @@ static void print_info(struct scsi_cmnd *SCpnt)
SCpnt->SCp.phase, SCpnt->SCp.phase,
SCpnt->device->id, SCpnt->device->id,
*(unsigned char *)SCpnt->cmnd, *(unsigned char *)SCpnt->cmnd,
SCpnt->use_sg, scsi_sg_count(SCpnt),
SCpnt->request_bufflen ); scsi_bufflen(SCpnt));
printk( "sent_command = %d, have_data_in = %d, timeout = %d\n", printk( "sent_command = %d, have_data_in = %d, timeout = %d\n",
SCpnt->SCp.sent_command, SCpnt->SCp.sent_command,
SCpnt->SCp.have_data_in, SCpnt->SCp.have_data_in,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册