diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-08-14 12:44:00 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-09-17 13:34:30 -0400 |
commit | 1f427e8055b1ab408395d6da421d93783120484c (patch) | |
tree | 5d9ed71fc260589a6186ab5f04a91cac5b49afd1 /drivers/ieee1394/sbp2.c | |
parent | 09ee67abe997ee95cd3f6cc552fa9532bc722d83 (diff) |
ieee1394: sbp2: safer agent reset in error handlers
The scsi_host_template's eh_abort_handler and eh_device_reset_handler
are allowed to sleep. Use this to run sbp2_agent_reset in the more
reliable mode which returns _after_ its write transaction was finished.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394/sbp2.c')
-rw-r--r-- | drivers/ieee1394/sbp2.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index c4d30a7b8b1e..b5bcca36d43c 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c | |||
@@ -2578,7 +2578,7 @@ static int sbp2scsi_abort(struct scsi_cmnd *SCpnt) | |||
2578 | /* | 2578 | /* |
2579 | * Initiate a fetch agent reset. | 2579 | * Initiate a fetch agent reset. |
2580 | */ | 2580 | */ |
2581 | sbp2_agent_reset(scsi_id, 0); | 2581 | sbp2_agent_reset(scsi_id, 1); |
2582 | sbp2scsi_complete_all_commands(scsi_id, DID_BUS_BUSY); | 2582 | sbp2scsi_complete_all_commands(scsi_id, DID_BUS_BUSY); |
2583 | } | 2583 | } |
2584 | 2584 | ||
@@ -2597,7 +2597,7 @@ static int sbp2scsi_reset(struct scsi_cmnd *SCpnt) | |||
2597 | 2597 | ||
2598 | if (sbp2util_node_is_available(scsi_id)) { | 2598 | if (sbp2util_node_is_available(scsi_id)) { |
2599 | SBP2_ERR("Generating sbp2 fetch agent reset"); | 2599 | SBP2_ERR("Generating sbp2 fetch agent reset"); |
2600 | sbp2_agent_reset(scsi_id, 0); | 2600 | sbp2_agent_reset(scsi_id, 1); |
2601 | } | 2601 | } |
2602 | 2602 | ||
2603 | return SUCCESS; | 2603 | return SUCCESS; |