Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91f32d01 authored by James Smart's avatar James Smart Committed by James Bottomley
Browse files

[SCSI] lpfc 8.3.40: Fix inconsistent list removal causes crash.

parent 61f35bff
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -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.