]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
[SCSI] bnx2fc: Clear DESTROY_CMPL flag after firmware destroy
authorBhanu Prakash Gollapudi <bprakash@broadcom.com>
Fri, 5 Aug 2011 00:38:43 +0000 (17:38 -0700)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 01:08:49 +0000 (09:08 +0800)
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>
(cherry picked from commit cd703ae790a07ece30e51a8583ea2490d14efb7c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/scsi/bnx2fc/bnx2fc_fcoe.c

index c461992c38b83d6b93b104539f680f87a311502c..e0636473e2e954b86923000497c5c16e487e5b8e 100644 (file)
@@ -772,8 +772,8 @@ static void bnx2fc_destroy_timer(unsigned long data)
 {
        struct bnx2fc_hba *hba = (struct bnx2fc_hba *)data;
 
-       BNX2FC_MISC_DBG("ERROR:bnx2fc_destroy_timer - "
-                  "Destroy compl not received!!\n");
+       printk(KERN_ERR PFX "ERROR:bnx2fc_destroy_timer - "
+              "Destroy compl not received!!\n");
        set_bit(BNX2FC_FLAG_DESTROY_CMPL, &hba->flags);
        wake_up_interruptible(&hba->destroy_wait);
 }
@@ -1702,6 +1702,7 @@ static void bnx2fc_fw_destroy(struct bnx2fc_hba *hba)
                        wait_event_interruptible(hba->destroy_wait,
                                        test_bit(BNX2FC_FLAG_DESTROY_CMPL,
                                                 &hba->flags));
+                       clear_bit(BNX2FC_FLAG_DESTROY_CMPL, &hba->flags);
                        /* This should never happen */
                        if (signal_pending(current))
                                flush_signals(current);