Before probe for function was completed, iSCSI Daemon had initiated login
 to target while OS was coming up. The targets which had node.startup=automatic,
 login process was initiated.Since function specific initialization was still in
 progress this lead to kernel panic.
 Fixed the issue by moving iscsi_host_add() call after adapter initialization
 is done.
Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
        pci_set_drvdata(pcidev, phba);
        phba->interface_handle = 0xFFFFFFFF;
 
-       if (iscsi_host_add(shost, &phba->pcidev->dev))
-               goto free_devices;
-
        return phba;
-
-free_devices:
-       pci_dev_put(phba->pcidev);
-       iscsi_host_free(phba->shost);
-       return NULL;
 }
 
 static void beiscsi_unmap_pci_function(struct beiscsi_hba *phba)
        }
        hwi_enable_intr(phba);
 
+       if (iscsi_host_add(phba->shost, &phba->pcidev->dev))
+               goto free_blkenbld;
+
        if (beiscsi_setup_boot_info(phba))
                /*
                 * log error but continue, because we may not be using