summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/drivers/block/srp.c17
-rw-r--r--src/include/gpxe/srp.h6
2 files changed, 5 insertions, 18 deletions
diff --git a/src/drivers/block/srp.c b/src/drivers/block/srp.c
index f50f194b..1d0799ab 100644
--- a/src/drivers/block/srp.c
+++ b/src/drivers/block/srp.c
@@ -80,19 +80,16 @@ static void srp_fail ( struct srp_device *srp, int rc ) {
/* Clear session state */
srp->state = 0;
- /* Increment retry count */
- srp->retry_count++;
-
- /* If we have reached the retry limit, permanently abort the
- * session.
- */
+ /* If we have reached the retry limit, report the failure */
if ( srp->retry_count >= SRP_MAX_RETRIES ) {
- srp->instant_rc = rc;
srp_scsi_done ( srp, rc );
return;
}
- /* Otherwise, try to reopen the connection */
+ /* Otherwise, increment the retry count and try to reopen the
+ * connection
+ */
+ srp->retry_count++;
srp_login ( srp );
}
@@ -445,10 +442,6 @@ static int srp_command ( struct scsi_device *scsi,
struct srp_device *srp =
container_of ( scsi->backend, struct srp_device, refcnt );
- /* Return instant failure, if we have already aborted the session */
- if ( srp->instant_rc )
- return srp->instant_rc;
-
/* Store SCSI command */
if ( srp->command ) {
DBGC ( srp, "SRP %p cannot handle concurrent SCSI commands\n",
diff --git a/src/include/gpxe/srp.h b/src/include/gpxe/srp.h
index 75ec7b83..85f39b93 100644
--- a/src/include/gpxe/srp.h
+++ b/src/include/gpxe/srp.h
@@ -828,12 +828,6 @@ struct srp_device {
unsigned int state;
/** Retry counter */
unsigned int retry_count;
- /** Instant return status code
- *
- * Used to avoid retrying the connection on every new SCSI
- * command after the retry count has been exceeded.
- */
- int instant_rc;
/** Current SCSI command */
struct scsi_command *command;