diff
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -2,12 +2,15 @@
 2 lpfc_findnode_did(struct lpfc_vport *vport, uint32_t did)
 4 	struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
 5 	struct lpfc_nodelist *ndlp;
-6 	unsigned long iflags;
+6       unsigned long iflags;
 8-10 	spin_lock_irqsave(shost->host_lock, iflags);
-9 	ndlp = __lpfc_findnode_did(vport, did);
-10 	spin_unlock_irqrestore(shost->host_lock, iflags);
+        if (shost) { // Add conditional locking
+            spin_lock_irqsave(shost->host_lock, iflags);
+            ndlp = __lpfc_findnode_did(vport, did);
+            spin_unlock_irqrestore(shost->host_lock, iflags);
+        } else {
+            ndlp = NULL; // or appropriate error handling
+        }

 