diff options
-rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_els.c | 26 | ||||
-rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_hwi.c | 6 |
2 files changed, 18 insertions, 14 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_els.c b/drivers/scsi/bnx2fc/bnx2fc_els.c index d66dcbd0df1..fd382fe33f6 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_els.c +++ b/drivers/scsi/bnx2fc/bnx2fc_els.c | |||
@@ -391,18 +391,6 @@ void bnx2fc_rec_compl(struct bnx2fc_els_cb_arg *cb_arg) | |||
391 | BNX2FC_IO_DBG(rec_req, "rec_compl: orig xid = 0x%x", orig_io_req->xid); | 391 | BNX2FC_IO_DBG(rec_req, "rec_compl: orig xid = 0x%x", orig_io_req->xid); |
392 | tgt = orig_io_req->tgt; | 392 | tgt = orig_io_req->tgt; |
393 | 393 | ||
394 | if (test_bit(BNX2FC_FLAG_IO_COMPL, &orig_io_req->req_flags)) { | ||
395 | BNX2FC_IO_DBG(rec_req, "completed" | ||
396 | "orig_io - 0x%x\n", | ||
397 | orig_io_req->xid); | ||
398 | goto rec_compl_done; | ||
399 | } | ||
400 | if (test_bit(BNX2FC_FLAG_ISSUE_ABTS, &orig_io_req->req_flags)) { | ||
401 | BNX2FC_IO_DBG(rec_req, "abts in prog " | ||
402 | "orig_io - 0x%x\n", | ||
403 | orig_io_req->xid); | ||
404 | goto rec_compl_done; | ||
405 | } | ||
406 | /* Handle REC timeout case */ | 394 | /* Handle REC timeout case */ |
407 | if (test_and_clear_bit(BNX2FC_FLAG_ELS_TIMEOUT, &rec_req->req_flags)) { | 395 | if (test_and_clear_bit(BNX2FC_FLAG_ELS_TIMEOUT, &rec_req->req_flags)) { |
408 | BNX2FC_IO_DBG(rec_req, "timed out, abort " | 396 | BNX2FC_IO_DBG(rec_req, "timed out, abort " |
@@ -433,6 +421,20 @@ void bnx2fc_rec_compl(struct bnx2fc_els_cb_arg *cb_arg) | |||
433 | } | 421 | } |
434 | goto rec_compl_done; | 422 | goto rec_compl_done; |
435 | } | 423 | } |
424 | |||
425 | if (test_bit(BNX2FC_FLAG_IO_COMPL, &orig_io_req->req_flags)) { | ||
426 | BNX2FC_IO_DBG(rec_req, "completed" | ||
427 | "orig_io - 0x%x\n", | ||
428 | orig_io_req->xid); | ||
429 | goto rec_compl_done; | ||
430 | } | ||
431 | if (test_bit(BNX2FC_FLAG_ISSUE_ABTS, &orig_io_req->req_flags)) { | ||
432 | BNX2FC_IO_DBG(rec_req, "abts in prog " | ||
433 | "orig_io - 0x%x\n", | ||
434 | orig_io_req->xid); | ||
435 | goto rec_compl_done; | ||
436 | } | ||
437 | |||
436 | mp_req = &(rec_req->mp_req); | 438 | mp_req = &(rec_req->mp_req); |
437 | fc_hdr = &(mp_req->resp_fc_hdr); | 439 | fc_hdr = &(mp_req->resp_fc_hdr); |
438 | resp_len = mp_req->resp_len; | 440 | resp_len = mp_req->resp_len; |
diff --git a/drivers/scsi/bnx2fc/bnx2fc_hwi.c b/drivers/scsi/bnx2fc/bnx2fc_hwi.c index b241f3d3336..1923a25cb6a 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_hwi.c +++ b/drivers/scsi/bnx2fc/bnx2fc_hwi.c | |||
@@ -1743,11 +1743,13 @@ void bnx2fc_init_task(struct bnx2fc_cmd *io_req, | |||
1743 | /* Init state to NORMAL */ | 1743 | /* Init state to NORMAL */ |
1744 | task->txwr_rxrd.const_ctx.init_flags |= task_type << | 1744 | task->txwr_rxrd.const_ctx.init_flags |= task_type << |
1745 | FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT; | 1745 | FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT; |
1746 | if (dev_type == TYPE_TAPE) | 1746 | if (dev_type == TYPE_TAPE) { |
1747 | task->txwr_rxrd.const_ctx.init_flags |= | 1747 | task->txwr_rxrd.const_ctx.init_flags |= |
1748 | FCOE_TASK_DEV_TYPE_TAPE << | 1748 | FCOE_TASK_DEV_TYPE_TAPE << |
1749 | FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT; | 1749 | FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT; |
1750 | else | 1750 | io_req->rec_retry = 0; |
1751 | io_req->rec_retry = 0; | ||
1752 | } else | ||
1751 | task->txwr_rxrd.const_ctx.init_flags |= | 1753 | task->txwr_rxrd.const_ctx.init_flags |= |
1752 | FCOE_TASK_DEV_TYPE_DISK << | 1754 | FCOE_TASK_DEV_TYPE_DISK << |
1753 | FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT; | 1755 | FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT; |