mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 17:01:57 +07:00
scsi: lpfc: Fix lockdep errors in sli_ringtx_put
Fix lockdep error in __lpfc_sli_ringtx_put(): The hbalock is valid for sli3, but not for sli4. Change lockdep to look at ring lock if sli4. Also update comment in __lpfc_sli_issue_iocb_s4() to reflect proper lock. Note: lockdep check is already correct. Link: https://lore.kernel.org/r/20191018211832.7917-4-jsmart2021@gmail.com Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
0a5ce73197
commit
27f3efd637
@ -9004,7 +9004,8 @@ lpfc_mbox_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp)
|
|||||||
* @pring: Pointer to driver SLI ring object.
|
* @pring: Pointer to driver SLI ring object.
|
||||||
* @piocb: Pointer to address of newly added command iocb.
|
* @piocb: Pointer to address of newly added command iocb.
|
||||||
*
|
*
|
||||||
* This function is called with hbalock held to add a command
|
* This function is called with hbalock held for SLI3 ports or
|
||||||
|
* the ring lock held for SLI4 ports to add a command
|
||||||
* iocb to the txq when SLI layer cannot submit the command iocb
|
* iocb to the txq when SLI layer cannot submit the command iocb
|
||||||
* to the ring.
|
* to the ring.
|
||||||
**/
|
**/
|
||||||
@ -9012,7 +9013,10 @@ void
|
|||||||
__lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
|
__lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
|
||||||
struct lpfc_iocbq *piocb)
|
struct lpfc_iocbq *piocb)
|
||||||
{
|
{
|
||||||
lockdep_assert_held(&phba->hbalock);
|
if (phba->sli_rev == LPFC_SLI_REV4)
|
||||||
|
lockdep_assert_held(&pring->ring_lock);
|
||||||
|
else
|
||||||
|
lockdep_assert_held(&phba->hbalock);
|
||||||
/* Insert the caller's iocb in the txq tail for later processing. */
|
/* Insert the caller's iocb in the txq tail for later processing. */
|
||||||
list_add_tail(&piocb->list, &pring->txq);
|
list_add_tail(&piocb->list, &pring->txq);
|
||||||
}
|
}
|
||||||
@ -9903,7 +9907,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq,
|
|||||||
* __lpfc_sli_issue_iocb_s4 is used by other functions in the driver to issue
|
* __lpfc_sli_issue_iocb_s4 is used by other functions in the driver to issue
|
||||||
* an iocb command to an HBA with SLI-4 interface spec.
|
* an iocb command to an HBA with SLI-4 interface spec.
|
||||||
*
|
*
|
||||||
* This function is called with hbalock held. The function will return success
|
* This function is called with ringlock held. The function will return success
|
||||||
* after it successfully submit the iocb to firmware or after adding to the
|
* after it successfully submit the iocb to firmware or after adding to the
|
||||||
* txq.
|
* txq.
|
||||||
**/
|
**/
|
||||||
|
Loading…
Reference in New Issue
Block a user