From fc6c12bcc19bdff6b4bcb02f5bd6d9fa59a7e1af Mon Sep 17 00:00:00 2001 From: James Smart Date: Tue, 7 Mar 2006 15:04:19 -0500 Subject: [SCSI] lpfc 8.1.4 : Two misc fixes Two misc fixes: - Fix deadlock caused by return with host_lock held in lpfc_findnode_did - Initialize all fields of the allocated mail box structure to zero. Was causing some sysfs mailbox commands to fail immediately after load. Signed-off-by: James Smart Signed-off-by: James Bottomley --- drivers/scsi/lpfc/lpfc_attr.c | 2 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 2558156f064d..b62a72dfab29 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c @@ -856,7 +856,7 @@ sysfs_mbox_write(struct kobject *kobj, char *buf, loff_t off, size_t count) mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); if (!mbox) return -ENOMEM; - + memset(mbox, 0, sizeof (LPFC_MBOXQ_t)); } spin_lock_irq(host->host_lock); diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index f54089fe4732..6721e679df62 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -1760,6 +1760,7 @@ lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did) phba->brd_no, ndlp, ndlp->nlp_DID, ndlp->nlp_flag, data1); + spin_unlock_irq(phba->host->host_lock); return ndlp; } } @@ -1805,6 +1806,7 @@ lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did) phba->brd_no, ndlp, ndlp->nlp_DID, ndlp->nlp_flag, data1); + spin_unlock_irq(phba->host->host_lock); return ndlp; } } -- cgit v1.2.3