aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/sbp2.c
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2006-03-28 20:03:45 -0500
committerJody McIntyre <scjody@modernduck.com>2006-03-28 20:03:45 -0500
commit8f0525ff1901f4fafe6d02d5d373ca38103ff5a7 (patch)
tree1a68c033d4cac80a412063eb7a201c9104e87672 /drivers/ieee1394/sbp2.c
parent23e93f1742372bc938e53151bdbf88d284ee9561 (diff)
sbp2: proper treatment of DID_OK
Sbp2 relied on DID_OK to be defined as 0. Always shift DID_OK into the right position anyway, and explicitly return DID_OK together with CHECK_CONDITION. Also comment on some #if 0 code. The patch does not change current behaviour. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
Diffstat (limited to 'drivers/ieee1394/sbp2.c')
-rw-r--r--drivers/ieee1394/sbp2.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index ce3b43dd229b..eb7106b8fd0a 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -2410,7 +2410,7 @@ static void sbp2scsi_complete_command(struct scsi_id_instance_data *scsi_id,
2410 */ 2410 */
2411 switch (scsi_status) { 2411 switch (scsi_status) {
2412 case SBP2_SCSI_STATUS_GOOD: 2412 case SBP2_SCSI_STATUS_GOOD:
2413 SCpnt->result = DID_OK; 2413 SCpnt->result = DID_OK << 16;
2414 break; 2414 break;
2415 2415
2416 case SBP2_SCSI_STATUS_BUSY: 2416 case SBP2_SCSI_STATUS_BUSY:
@@ -2420,7 +2420,7 @@ static void sbp2scsi_complete_command(struct scsi_id_instance_data *scsi_id,
2420 2420
2421 case SBP2_SCSI_STATUS_CHECK_CONDITION: 2421 case SBP2_SCSI_STATUS_CHECK_CONDITION:
2422 SBP2_DEBUG("SBP2_SCSI_STATUS_CHECK_CONDITION"); 2422 SBP2_DEBUG("SBP2_SCSI_STATUS_CHECK_CONDITION");
2423 SCpnt->result = CHECK_CONDITION << 1; 2423 SCpnt->result = CHECK_CONDITION << 1 | DID_OK << 16;
2424 2424
2425 /* 2425 /*
2426 * Debug stuff 2426 * Debug stuff
@@ -2454,7 +2454,7 @@ static void sbp2scsi_complete_command(struct scsi_id_instance_data *scsi_id,
2454 /* 2454 /*
2455 * Take care of any sbp2 response data mucking here (RBC stuff, etc.) 2455 * Take care of any sbp2 response data mucking here (RBC stuff, etc.)
2456 */ 2456 */
2457 if (SCpnt->result == DID_OK) { 2457 if (SCpnt->result == DID_OK << 16) {
2458 sbp2_check_sbp2_response(scsi_id, SCpnt); 2458 sbp2_check_sbp2_response(scsi_id, SCpnt);
2459 } 2459 }
2460 2460
@@ -2472,6 +2472,8 @@ static void sbp2scsi_complete_command(struct scsi_id_instance_data *scsi_id,
2472 * If a unit attention occurs, return busy status so it gets 2472 * If a unit attention occurs, return busy status so it gets
2473 * retried... it could have happened because of a 1394 bus reset 2473 * retried... it could have happened because of a 1394 bus reset
2474 * or hot-plug... 2474 * or hot-plug...
2475 * XXX DID_BUS_BUSY is actually a bad idea because it will defy
2476 * the scsi layer's retry logic.
2475 */ 2477 */
2476#if 0 2478#if 0
2477 if ((scsi_status == SBP2_SCSI_STATUS_CHECK_CONDITION) && 2479 if ((scsi_status == SBP2_SCSI_STATUS_CHECK_CONDITION) &&