diff options
author | James Smart <james.smart@emulex.com> | 2013-03-01 16:37:44 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-04-09 15:20:29 -0700 |
commit | 38c206736612550ab946889e1522fc71bc2eed4a (patch) | |
tree | 25390e99f5a816329ef671dcda7fe52fe842b31c /drivers/scsi/lpfc/lpfc_init.c | |
parent | 9466150489c53b4425dde7f4634fe2b0cfcb61a5 (diff) | |
download | blackbird-op-linux-38c206736612550ab946889e1522fc71bc2eed4a.tar.gz blackbird-op-linux-38c206736612550ab946889e1522fc71bc2eed4a.zip |
[SCSI] lpfc 8.3.38: Fixed circular locking dependency and inconsistent lock state issues
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 057c7c18b7e3..5da297290262 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -2914,9 +2914,9 @@ lpfc_sli4_xri_sgl_update(struct lpfc_hba *phba) sglq_entry->state = SGL_FREED; list_add_tail(&sglq_entry->list, &els_sgl_list); } - spin_lock(&phba->hbalock); + spin_lock_irq(&phba->hbalock); list_splice_init(&els_sgl_list, &phba->sli4_hba.lpfc_sgl_list); - spin_unlock(&phba->hbalock); + spin_unlock_irq(&phba->hbalock); } else if (els_xri_cnt < phba->sli4_hba.els_xri_cnt) { /* els xri-sgl shrinked */ xri_cnt = phba->sli4_hba.els_xri_cnt - els_xri_cnt; @@ -3014,9 +3014,9 @@ lpfc_sli4_xri_sgl_update(struct lpfc_hba *phba) psb->cur_iocbq.sli4_lxritag = lxri; psb->cur_iocbq.sli4_xritag = phba->sli4_hba.xri_ids[lxri]; } - spin_lock(&phba->scsi_buf_list_lock); + spin_lock_irq(&phba->scsi_buf_list_lock); list_splice_init(&scsi_sgl_list, &phba->lpfc_scsi_buf_list); - spin_unlock(&phba->scsi_buf_list_lock); + spin_unlock_irq(&phba->scsi_buf_list_lock); return 0; |