diff options
author | James Smart <james.smart@emulex.com> | 2013-05-31 17:04:01 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-06-26 13:48:43 -0400 |
commit | 91f32d01d9fff7f5f15f3ad136e55dc42d02f9ff (patch) | |
tree | 144ad3e8e971e2449a740984308b365475761ffe /drivers/scsi | |
parent | 61f35bff15dd94ad4108c7deb8bf3fcf53d32958 (diff) |
[SCSI] lpfc 8.3.40: Fix inconsistent list removal causes crash.
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index bd185e1bdf03..2e86ac0d5433 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -1011,17 +1011,6 @@ __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) | |||
1011 | else | 1011 | else |
1012 | sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag); | 1012 | sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag); |
1013 | 1013 | ||
1014 | /* | ||
1015 | ** This should have been removed from the txcmplq before calling | ||
1016 | ** iocbq_release. The normal completion | ||
1017 | ** path should have already done the list_del_init. | ||
1018 | */ | ||
1019 | if (unlikely(!list_empty(&iocbq->list))) { | ||
1020 | if (iocbq->iocb_flag & LPFC_IO_ON_TXCMPLQ) | ||
1021 | iocbq->iocb_flag &= ~LPFC_IO_ON_TXCMPLQ; | ||
1022 | list_del_init(&iocbq->list); | ||
1023 | } | ||
1024 | |||
1025 | 1014 | ||
1026 | if (sglq) { | 1015 | if (sglq) { |
1027 | if ((iocbq->iocb_flag & LPFC_EXCHANGE_BUSY) && | 1016 | if ((iocbq->iocb_flag & LPFC_EXCHANGE_BUSY) && |
@@ -1070,13 +1059,6 @@ __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) | |||
1070 | { | 1059 | { |
1071 | size_t start_clean = offsetof(struct lpfc_iocbq, iocb); | 1060 | size_t start_clean = offsetof(struct lpfc_iocbq, iocb); |
1072 | 1061 | ||
1073 | /* | ||
1074 | ** This should have been removed from the txcmplq before calling | ||
1075 | ** iocbq_release. The normal completion | ||
1076 | ** path should have already done the list_del_init. | ||
1077 | */ | ||
1078 | if (unlikely(!list_empty(&iocbq->list))) | ||
1079 | list_del_init(&iocbq->list); | ||
1080 | 1062 | ||
1081 | /* | 1063 | /* |
1082 | * Clean all volatile data fields, preserve iotag and node struct. | 1064 | * Clean all volatile data fields, preserve iotag and node struct. |