[SCSI] libfc: don't do discovery before callback is set
It's possible to "restart" discovery before it was started if
an RSCN is received early enough. We were jumping to 0
due to the disc_callback function pointer not getting set.
Don't restart discovery if disc_callback is NULL.
Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
index 4284218..1a699f4 100644
--- a/drivers/scsi/libfc/fc_disc.c
+++ b/drivers/scsi/libfc/fc_disc.c
@@ -219,6 +219,9 @@
*/
static void fc_disc_restart(struct fc_disc *disc)
{
+ if (!disc->disc_callback)
+ return;
+
FC_DISC_DBG(disc, "Restarting discovery\n");
disc->requested = 1;