[SCSI] lpfc 8.3.40: Fix inconsistent list removal causes crash.
authorJames Smart <james.smart@emulex.com>
Fri, 31 May 2013 21:04:01 +0000 (17:04 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 26 Jun 2013 17:48:43 +0000 (10:48 -0700)
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_sli.c

index bd185e1bdf03e2a280cc079073d915f5fbfbb083..2e86ac0d5433a04f2717fc0580b1bc47971287ce 100644 (file)
@@ -1011,17 +1011,6 @@ __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
        else
                sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag);
 
-       /*
-       ** This should have been removed from the txcmplq before calling
-       ** iocbq_release. The normal completion
-       ** path should have already done the list_del_init.
-       */
-       if (unlikely(!list_empty(&iocbq->list))) {
-               if (iocbq->iocb_flag & LPFC_IO_ON_TXCMPLQ)
-                       iocbq->iocb_flag &= ~LPFC_IO_ON_TXCMPLQ;
-               list_del_init(&iocbq->list);
-       }
-
 
        if (sglq)  {
                if ((iocbq->iocb_flag & LPFC_EXCHANGE_BUSY) &&
@@ -1070,13 +1059,6 @@ __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
 {
        size_t start_clean = offsetof(struct lpfc_iocbq, iocb);
 
-       /*
-       ** This should have been removed from the txcmplq before calling
-       ** iocbq_release. The normal completion
-       ** path should have already done the list_del_init.
-       */
-       if (unlikely(!list_empty(&iocbq->list)))
-               list_del_init(&iocbq->list);
 
        /*
         * Clean all volatile data fields, preserve iotag and node struct.