diff options
author | Bhanu Prakash Gollapudi <bprakash@broadcom.com> | 2011-08-04 20:38:43 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-08-27 10:35:36 -0400 |
commit | cd703ae790a07ece30e51a8583ea2490d14efb7c (patch) | |
tree | 6d3408b03388d53c91f21fac4eaa13db4c1a9ff2 /drivers/scsi/bnx2fc | |
parent | abc49a937b23adc7d9748709ca82ee32464ae089 (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.c | 5 |
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); |