aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2006-03-07 15:04:19 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-12 09:57:13 -0500
commitfc6c12bcc19bdff6b4bcb02f5bd6d9fa59a7e1af (patch)
tree52a69666dcd29c20975ec2ae218f87f2ab3024f1
parent9290831f00879d4a66d3bffb609949d5ea5576fb (diff)
[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 <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c2
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c2
2 files changed, 3 insertions, 1 deletions
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)
856 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); 856 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
857 if (!mbox) 857 if (!mbox)
858 return -ENOMEM; 858 return -ENOMEM;
859 859 memset(mbox, 0, sizeof (LPFC_MBOXQ_t));
860 } 860 }
861 861
862 spin_lock_irq(host->host_lock); 862 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)
1760 phba->brd_no, 1760 phba->brd_no,
1761 ndlp, ndlp->nlp_DID, 1761 ndlp, ndlp->nlp_DID,
1762 ndlp->nlp_flag, data1); 1762 ndlp->nlp_flag, data1);
1763 spin_unlock_irq(phba->host->host_lock);
1763 return ndlp; 1764 return ndlp;
1764 } 1765 }
1765 } 1766 }
@@ -1805,6 +1806,7 @@ lpfc_findnode_did(struct lpfc_hba * phba, uint32_t order, uint32_t did)
1805 phba->brd_no, 1806 phba->brd_no,
1806 ndlp, ndlp->nlp_DID, 1807 ndlp, ndlp->nlp_DID,
1807 ndlp->nlp_flag, data1); 1808 ndlp->nlp_flag, data1);
1809 spin_unlock_irq(phba->host->host_lock);
1808 return ndlp; 1810 return ndlp;
1809 } 1811 }
1810 } 1812 }