aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Miller (OS Dev) <mikem@beardog.cca.cpqcorp.net>2007-05-08 03:29:29 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:09 -0400
commitd38ae168bfde9195466b9d45cb1126a657c10942 (patch)
treef9f62fafa4b545b3da6687d927e7ed2221d3195b
parent09f0892ec7f8068ba1d1fcef4d1fca23ec96e0dd (diff)
cciss: reformat error handling
Reformat some error handling code to reduce line lengths a bit. Signed-off-by: Stephen M. Cameron <steve.cameron@hp.com> Signed-off-by: Mike Miller <mike.miller@hp.com> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/block/cciss.c174
1 files changed, 89 insertions, 85 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 65a725cd3422..b00be1427c3f 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -2349,95 +2349,99 @@ static inline void complete_command(ctlr_info_t *h, CommandList_struct *cmd,
2349 if (timeout) 2349 if (timeout)
2350 status = 0; 2350 status = 0;
2351 2351
2352 if (cmd->err_info->CommandStatus != 0) { /* an error has occurred */ 2352 if (cmd->err_info->CommandStatus == 0) /* no error has occurred */
2353 switch (cmd->err_info->CommandStatus) { 2353 goto after_error_processing;
2354 unsigned char sense_key;
2355 case CMD_TARGET_STATUS:
2356 status = 0;
2357 2354
2358 if (cmd->err_info->ScsiStatus == 0x02) { 2355 switch (cmd->err_info->CommandStatus) {
2359 printk(KERN_WARNING "cciss: cmd %p " 2356 unsigned char sense_key;
2360 "has CHECK CONDITION " 2357 case CMD_TARGET_STATUS:
2361 " byte 2 = 0x%x\n", cmd, 2358 status = 0;
2362 cmd->err_info->SenseInfo[2] 2359
2363 ); 2360 if (cmd->err_info->ScsiStatus == 0x02) {
2364 /* check the sense key */ 2361 printk(KERN_WARNING "cciss: cmd %p "
2365 sense_key = 0xf & cmd->err_info->SenseInfo[2]; 2362 "has CHECK CONDITION "
2366 /* no status or recovered error */ 2363 " byte 2 = 0x%x\n", cmd,
2367 if ((sense_key == 0x0) || (sense_key == 0x1)) { 2364 cmd->err_info->SenseInfo[2]
2368 status = 1; 2365 );
2369 } 2366 /* check the sense key */
2370 } else { 2367 sense_key = 0xf & cmd->err_info->SenseInfo[2];
2371 printk(KERN_WARNING "cciss: cmd %p " 2368 /* no status or recovered error */
2372 "has SCSI Status 0x%x\n", 2369 if ((sense_key == 0x0) || (sense_key == 0x1)) {
2373 cmd, cmd->err_info->ScsiStatus); 2370 status = 1;
2374 } 2371 }
2375 break; 2372 } else {
2376 case CMD_DATA_UNDERRUN: 2373 printk(KERN_WARNING "cciss: cmd %p "
2377 printk(KERN_WARNING "cciss: cmd %p has" 2374 "has SCSI Status 0x%x\n",
2378 " completed with data underrun " 2375 cmd, cmd->err_info->ScsiStatus);
2379 "reported\n", cmd);
2380 break;
2381 case CMD_DATA_OVERRUN:
2382 printk(KERN_WARNING "cciss: cmd %p has"
2383 " completed with data overrun "
2384 "reported\n", cmd);
2385 break;
2386 case CMD_INVALID:
2387 printk(KERN_WARNING "cciss: cmd %p is "
2388 "reported invalid\n", cmd);
2389 status = 0;
2390 break;
2391 case CMD_PROTOCOL_ERR:
2392 printk(KERN_WARNING "cciss: cmd %p has "
2393 "protocol error \n", cmd);
2394 status = 0;
2395 break;
2396 case CMD_HARDWARE_ERR:
2397 printk(KERN_WARNING "cciss: cmd %p had "
2398 " hardware error\n", cmd);
2399 status = 0;
2400 break;
2401 case CMD_CONNECTION_LOST:
2402 printk(KERN_WARNING "cciss: cmd %p had "
2403 "connection lost\n", cmd);
2404 status = 0;
2405 break;
2406 case CMD_ABORTED:
2407 printk(KERN_WARNING "cciss: cmd %p was "
2408 "aborted\n", cmd);
2409 status = 0;
2410 break;
2411 case CMD_ABORT_FAILED:
2412 printk(KERN_WARNING "cciss: cmd %p reports "
2413 "abort failed\n", cmd);
2414 status = 0;
2415 break;
2416 case CMD_UNSOLICITED_ABORT:
2417 printk(KERN_WARNING "cciss%d: unsolicited "
2418 "abort %p\n", h->ctlr, cmd);
2419 if (cmd->retry_count < MAX_CMD_RETRIES) {
2420 retry_cmd = 1;
2421 printk(KERN_WARNING
2422 "cciss%d: retrying %p\n", h->ctlr, cmd);
2423 cmd->retry_count++;
2424 } else
2425 printk(KERN_WARNING
2426 "cciss%d: %p retried too "
2427 "many times\n", h->ctlr, cmd);
2428 status = 0;
2429 break;
2430 case CMD_TIMEOUT:
2431 printk(KERN_WARNING "cciss: cmd %p timedout\n", cmd);
2432 status = 0;
2433 break;
2434 default:
2435 printk(KERN_WARNING "cciss: cmd %p returned "
2436 "unknown status %x\n", cmd,
2437 cmd->err_info->CommandStatus);
2438 status = 0;
2439 } 2376 }
2377 break;
2378 case CMD_DATA_UNDERRUN:
2379 printk(KERN_WARNING "cciss: cmd %p has"
2380 " completed with data underrun "
2381 "reported\n", cmd);
2382 break;
2383 case CMD_DATA_OVERRUN:
2384 printk(KERN_WARNING "cciss: cmd %p has"
2385 " completed with data overrun "
2386 "reported\n", cmd);
2387 break;
2388 case CMD_INVALID:
2389 printk(KERN_WARNING "cciss: cmd %p is "
2390 "reported invalid\n", cmd);
2391 status = 0;
2392 break;
2393 case CMD_PROTOCOL_ERR:
2394 printk(KERN_WARNING "cciss: cmd %p has "
2395 "protocol error \n", cmd);
2396 status = 0;
2397 break;
2398 case CMD_HARDWARE_ERR:
2399 printk(KERN_WARNING "cciss: cmd %p had "
2400 " hardware error\n", cmd);
2401 status = 0;
2402 break;
2403 case CMD_CONNECTION_LOST:
2404 printk(KERN_WARNING "cciss: cmd %p had "
2405 "connection lost\n", cmd);
2406 status = 0;
2407 break;
2408 case CMD_ABORTED:
2409 printk(KERN_WARNING "cciss: cmd %p was "
2410 "aborted\n", cmd);
2411 status = 0;
2412 break;
2413 case CMD_ABORT_FAILED:
2414 printk(KERN_WARNING "cciss: cmd %p reports "
2415 "abort failed\n", cmd);
2416 status = 0;
2417 break;
2418 case CMD_UNSOLICITED_ABORT:
2419 printk(KERN_WARNING "cciss%d: unsolicited "
2420 "abort %p\n", h->ctlr, cmd);
2421 if (cmd->retry_count < MAX_CMD_RETRIES) {
2422 retry_cmd = 1;
2423 printk(KERN_WARNING
2424 "cciss%d: retrying %p\n", h->ctlr, cmd);
2425 cmd->retry_count++;
2426 } else
2427 printk(KERN_WARNING
2428 "cciss%d: %p retried too "
2429 "many times\n", h->ctlr, cmd);
2430 status = 0;
2431 break;
2432 case CMD_TIMEOUT:
2433 printk(KERN_WARNING "cciss: cmd %p timedout\n", cmd);
2434 status = 0;
2435 break;
2436 default:
2437 printk(KERN_WARNING "cciss: cmd %p returned "
2438 "unknown status %x\n", cmd,
2439 cmd->err_info->CommandStatus);
2440 status = 0;
2440 } 2441 }
2442
2443after_error_processing:
2444
2441 /* We need to return this command */ 2445 /* We need to return this command */
2442 if (retry_cmd) { 2446 if (retry_cmd) {
2443 resend_cciss_cmd(h, cmd); 2447 resend_cciss_cmd(h, cmd);