From: James.Smart@Emulex.Com Date: Wed, 10 Aug 2005 19:02:50 +0000 (-0400) Subject: [SCSI] lpfc driver 8.0.30 : fix lip/cablepull panic X-Git-Tag: v2.6.14-rc1~522^2~12^2~20 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=8cbdc5fffa15d5c573e2531c6f533822d08b6b0f;p=linux-2.6-omap-h63xx.git [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 Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 233901e9dfd..2e44824a3bd 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) switch(list) { case NLP_NO_LIST: /* No list, just remove it */ lpfc_nlp_remove(phba, nlp); + /* as node removed - stop further transport calls */ + rport_del = none; break; case NLP_UNUSED_LIST: spin_lock_irq(phba->host->host_lock);