aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bnx2fc
diff options
context:
space:
mode:
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>2011-08-04 20:38:43 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-08-27 10:35:36 -0400
commitcd703ae790a07ece30e51a8583ea2490d14efb7c (patch)
tree6d3408b03388d53c91f21fac4eaa13db4c1a9ff2 /drivers/scsi/bnx2fc
parentabc49a937b23adc7d9748709ca82ee32464ae089 (diff)
[SCSI] bnx2fc: Clear DESTROY_CMPL flag after firmware destroy
Since this flag was never cleared, the driver does not wait for firmware destroy completions, causing missed KCQEs. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bnx2fc')
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index dccabafc3bb5..ca2e20690b93 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -771,8 +771,8 @@ static void bnx2fc_destroy_timer(unsigned long data)
771{ 771{
772 struct bnx2fc_hba *hba = (struct bnx2fc_hba *)data; 772 struct bnx2fc_hba *hba = (struct bnx2fc_hba *)data;
773 773
774 BNX2FC_MISC_DBG("ERROR:bnx2fc_destroy_timer - " 774 printk(KERN_ERR PFX "ERROR:bnx2fc_destroy_timer - "
775 "Destroy compl not received!!\n"); 775 "Destroy compl not received!!\n");
776 set_bit(BNX2FC_FLAG_DESTROY_CMPL, &hba->flags); 776 set_bit(BNX2FC_FLAG_DESTROY_CMPL, &hba->flags);
777 wake_up_interruptible(&hba->destroy_wait); 777 wake_up_interruptible(&hba->destroy_wait);
778} 778}
@@ -1701,6 +1701,7 @@ static void bnx2fc_fw_destroy(struct bnx2fc_hba *hba)
1701 wait_event_interruptible(hba->destroy_wait, 1701 wait_event_interruptible(hba->destroy_wait,
1702 test_bit(BNX2FC_FLAG_DESTROY_CMPL, 1702 test_bit(BNX2FC_FLAG_DESTROY_CMPL,
1703 &hba->flags)); 1703 &hba->flags));
1704 clear_bit(BNX2FC_FLAG_DESTROY_CMPL, &hba->flags);
1704 /* This should never happen */ 1705 /* This should never happen */
1705 if (signal_pending(current)) 1706 if (signal_pending(current))
1706 flush_signals(current); 1707 flush_signals(current);