diff options
Diffstat (limited to 'drivers/scsi/bnx2fc/bnx2fc_io.c')
-rw-r--r-- | drivers/scsi/bnx2fc/bnx2fc_io.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c index 723a9a8ba5ee..575142e92d9c 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_io.c +++ b/drivers/scsi/bnx2fc/bnx2fc_io.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* bnx2fc_io.c: Broadcom NetXtreme II Linux FCoE offload driver. | 1 | /* bnx2fc_io.c: Broadcom NetXtreme II Linux FCoE offload driver. |
2 | * IO manager and SCSI IO processing. | 2 | * IO manager and SCSI IO processing. |
3 | * | 3 | * |
4 | * Copyright (c) 2008 - 2011 Broadcom Corporation | 4 | * Copyright (c) 2008 - 2013 Broadcom Corporation |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License as published by | 7 | * it under the terms of the GNU General Public License as published by |
@@ -1270,8 +1270,11 @@ int bnx2fc_eh_abort(struct scsi_cmnd *sc_cmd) | |||
1270 | 1270 | ||
1271 | spin_lock_bh(&tgt->tgt_lock); | 1271 | spin_lock_bh(&tgt->tgt_lock); |
1272 | io_req->wait_for_comp = 0; | 1272 | io_req->wait_for_comp = 0; |
1273 | if (!(test_and_set_bit(BNX2FC_FLAG_ABTS_DONE, | 1273 | if (test_bit(BNX2FC_FLAG_IO_COMPL, &io_req->req_flags)) { |
1274 | &io_req->req_flags))) { | 1274 | BNX2FC_IO_DBG(io_req, "IO completed in a different context\n"); |
1275 | rc = SUCCESS; | ||
1276 | } else if (!(test_and_set_bit(BNX2FC_FLAG_ABTS_DONE, | ||
1277 | &io_req->req_flags))) { | ||
1275 | /* Let the scsi-ml try to recover this command */ | 1278 | /* Let the scsi-ml try to recover this command */ |
1276 | printk(KERN_ERR PFX "abort failed, xid = 0x%x\n", | 1279 | printk(KERN_ERR PFX "abort failed, xid = 0x%x\n", |
1277 | io_req->xid); | 1280 | io_req->xid); |