aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJames.Smart@Emulex.Com <James.Smart@Emulex.Com>2005-08-10 15:02:50 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-08-12 13:08:30 -0400
commit8cbdc5fffa15d5c573e2531c6f533822d08b6b0f (patch)
tree3bd3c4f60e0cbb5c316dad3789abaf4fc1facbd0 /drivers/scsi
parent483f05f0134e60b724bc3678507c1def860c56d5 (diff)
[SCSI] lpfc driver 8.0.30 : fix lip/cablepull panic
Fix panic on lip and cable pull Symptoms: Panic on lip or cable pull Cause: Use after free of nlp in lpfc_nlp_remove() Fix: Do not make FC transport calls after a node is removed. Transport calls are disabled by ignoring the initial delete transition. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 233901e9dfde..2e44824a3bd5 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1135,6 +1135,8 @@ lpfc_nlp_list(struct lpfc_hba * phba, struct lpfc_nodelist * nlp, int list)
1135 switch(list) { 1135 switch(list) {
1136 case NLP_NO_LIST: /* No list, just remove it */ 1136 case NLP_NO_LIST: /* No list, just remove it */
1137 lpfc_nlp_remove(phba, nlp); 1137 lpfc_nlp_remove(phba, nlp);
1138 /* as node removed - stop further transport calls */
1139 rport_del = none;
1138 break; 1140 break;
1139 case NLP_UNUSED_LIST: 1141 case NLP_UNUSED_LIST:
1140 spin_lock_irq(phba->host->host_lock); 1142 spin_lock_irq(phba->host->host_lock);