aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/arm
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/arm')
-rw-r--r--drivers/scsi/arm/acornscsi.c12
-rw-r--r--drivers/scsi/arm/fas216.c39
2 files changed, 21 insertions, 30 deletions
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index d89b9b4deb3c..deaaf84989cd 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -850,13 +850,13 @@ static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp,
850 break; 850 break;
851 851
852 default: 852 default:
853 printk(KERN_ERR "scsi%d.H: incomplete data transfer detected: result=%08X command=", 853 scmd_printk(KERN_ERR, SCpnt,
854 host->host->host_no, SCpnt->result); 854 "incomplete data transfer detected: "
855 __scsi_print_command(SCpnt->cmnd); 855 "result=%08X", SCpnt->result);
856 scsi_print_command(SCpnt);
856 acornscsi_dumpdma(host, "done"); 857 acornscsi_dumpdma(host, "done");
857 acornscsi_dumplog(host, SCpnt->device->id); 858 acornscsi_dumplog(host, SCpnt->device->id);
858 SCpnt->result &= 0xffff; 859 set_host_byte(SCpnt, DID_ERROR);
859 SCpnt->result |= DID_ERROR << 16;
860 } 860 }
861 } 861 }
862 } 862 }
diff --git a/drivers/scsi/arm/fas216.c b/drivers/scsi/arm/fas216.c
index 71cfb1e504c4..e64c3af7c1a0 100644
--- a/drivers/scsi/arm/fas216.c
+++ b/drivers/scsi/arm/fas216.c
@@ -308,8 +308,7 @@ static void fas216_log_command(FAS216_Info *info, int level,
308 fas216_do_log(info, '0' + SCpnt->device->id, fmt, args); 308 fas216_do_log(info, '0' + SCpnt->device->id, fmt, args);
309 va_end(args); 309 va_end(args);
310 310
311 printk(" CDB: "); 311 scsi_print_command(SCpnt);
312 __scsi_print_command(SCpnt->cmnd);
313} 312}
314 313
315static void 314static void
@@ -2079,14 +2078,12 @@ fas216_std_done(FAS216_Info *info, struct scsi_cmnd *SCpnt, unsigned int result)
2079 break; 2078 break;
2080 2079
2081 default: 2080 default:
2082 printk(KERN_ERR "scsi%d.%c: incomplete data transfer " 2081 scmd_printk(KERN_ERR, SCpnt,
2083 "detected: res=%08X ptr=%p len=%X CDB: ", 2082 "incomplete data transfer detected: res=%08X ptr=%p len=%X\n",
2084 info->host->host_no, '0' + SCpnt->device->id, 2083 SCpnt->result, info->scsi.SCp.ptr,
2085 SCpnt->result, info->scsi.SCp.ptr, 2084 info->scsi.SCp.this_residual);
2086 info->scsi.SCp.this_residual); 2085 scsi_print_command(SCpnt);
2087 __scsi_print_command(SCpnt->cmnd); 2086 set_host_byte(SCpnt, DID_ERROR);
2088 SCpnt->result &= ~(255 << 16);
2089 SCpnt->result |= DID_BAD_TARGET << 16;
2090 goto request_sense; 2087 goto request_sense;
2091 } 2088 }
2092 } 2089 }
@@ -2158,12 +2155,11 @@ static void fas216_done(FAS216_Info *info, unsigned int result)
2158 * to transfer, we should not have a valid pointer. 2155 * to transfer, we should not have a valid pointer.
2159 */ 2156 */
2160 if (info->scsi.SCp.ptr && info->scsi.SCp.this_residual == 0) { 2157 if (info->scsi.SCp.ptr && info->scsi.SCp.this_residual == 0) {
2161 printk("scsi%d.%c: zero bytes left to transfer, but " 2158 scmd_printk(KERN_INFO, SCpnt,
2162 "buffer pointer still valid: ptr=%p len=%08x CDB: ", 2159 "zero bytes left to transfer, but buffer pointer still valid: ptr=%p len=%08x\n",
2163 info->host->host_no, '0' + SCpnt->device->id, 2160 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
2164 info->scsi.SCp.ptr, info->scsi.SCp.this_residual);
2165 info->scsi.SCp.ptr = NULL; 2161 info->scsi.SCp.ptr = NULL;
2166 __scsi_print_command(SCpnt->cmnd); 2162 scsi_print_command(SCpnt);
2167 } 2163 }
2168 2164
2169 /* 2165 /*
@@ -2427,14 +2423,11 @@ int fas216_eh_abort(struct scsi_cmnd *SCpnt)
2427 2423
2428 info->stats.aborts += 1; 2424 info->stats.aborts += 1;
2429 2425
2430 printk(KERN_WARNING "scsi%d: abort command ", info->host->host_no); 2426 scmd_printk(KERN_WARNING, SCpnt, "abort command\n");
2431 __scsi_print_command(SCpnt->cmnd);
2432 2427
2433 print_debug_list(); 2428 print_debug_list();
2434 fas216_dumpstate(info); 2429 fas216_dumpstate(info);
2435 2430
2436 printk(KERN_WARNING "scsi%d: abort %p ", info->host->host_no, SCpnt);
2437
2438 switch (fas216_find_command(info, SCpnt)) { 2431 switch (fas216_find_command(info, SCpnt)) {
2439 /* 2432 /*
2440 * We found the command, and cleared it out. Either 2433 * We found the command, and cleared it out. Either
@@ -2442,7 +2435,7 @@ int fas216_eh_abort(struct scsi_cmnd *SCpnt)
2442 * target, or the busylun bit is not set. 2435 * target, or the busylun bit is not set.
2443 */ 2436 */
2444 case res_success: 2437 case res_success:
2445 printk("success\n"); 2438 scmd_printk(KERN_WARNING, SCpnt, "abort %p success\n", SCpnt);
2446 result = SUCCESS; 2439 result = SUCCESS;
2447 break; 2440 break;
2448 2441
@@ -2452,14 +2445,13 @@ int fas216_eh_abort(struct scsi_cmnd *SCpnt)
2452 * if the bus is free. 2445 * if the bus is free.
2453 */ 2446 */
2454 case res_hw_abort: 2447 case res_hw_abort:
2455
2456 2448
2457 /* 2449 /*
2458 * We are unable to abort the command for some reason. 2450 * We are unable to abort the command for some reason.
2459 */ 2451 */
2460 default: 2452 default:
2461 case res_failed: 2453 case res_failed:
2462 printk("failed\n"); 2454 scmd_printk(KERN_WARNING, SCpnt, "abort %p failed\n", SCpnt);
2463 break; 2455 break;
2464 } 2456 }
2465 2457
@@ -2664,8 +2656,7 @@ int fas216_eh_host_reset(struct scsi_cmnd *SCpnt)
2664 2656
2665 fas216_checkmagic(info); 2657 fas216_checkmagic(info);
2666 2658
2667 printk("scsi%d.%c: %s: resetting host\n", 2659 fas216_log(info, LOG_ERROR, "resetting host");
2668 info->host->host_no, '0' + SCpnt->device->id, __func__);
2669 2660
2670 /* 2661 /*
2671 * Reset the SCSI chip. 2662 * Reset the SCSI chip.