diff options
| author | James Smart <James.Smart@Emulex.Com> | 2006-03-07 15:04:19 -0500 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-03-12 09:57:13 -0500 |
| commit | fc6c12bcc19bdff6b4bcb02f5bd6d9fa59a7e1af (patch) | |
| tree | 52a69666dcd29c20975ec2ae218f87f2ab3024f1 | |
| parent | 9290831f00879d4a66d3bffb609949d5ea5576fb (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.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 2 |
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 | } |
