From 662197f200483cd599d88a590f085f3387a59c72 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sun, 14 Nov 2010 09:32:32 +0000 Subject: [PATCH] ibmvstgt: Made sure that accessing sysfs entries during target creation is harmless. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2704 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- ibmvstgt/src/ibmvstgt.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ibmvstgt/src/ibmvstgt.c b/ibmvstgt/src/ibmvstgt.c index 066e5dd27..b5654baef 100644 --- a/ibmvstgt/src/ibmvstgt.c +++ b/ibmvstgt/src/ibmvstgt.c @@ -349,9 +349,13 @@ static int ibmvstgt_rdma(struct scst_cmd *sc, struct scatterlist *sg, int nsg, static int ibmvstgt_enable_target(struct scst_tgt *scst_tgt, bool enable) { struct srp_target *target = scst_tgt_get_tgt_priv(scst_tgt); - struct vio_port *vport = target_to_port(target); + struct vio_port *vport; unsigned long flags; + if (!target) + return -ENOENT; + + vport = target_to_port(target); TRACE_DBG("%s target %d", enable ? "Enabling" : "Disabling", vport->dma_dev->unit_address); @@ -368,10 +372,14 @@ static int ibmvstgt_enable_target(struct scst_tgt *scst_tgt, bool enable) static bool ibmvstgt_is_target_enabled(struct scst_tgt *scst_tgt) { struct srp_target *target = scst_tgt_get_tgt_priv(scst_tgt); - struct vio_port *vport = target_to_port(target); + struct vio_port *vport; unsigned long flags; bool res; + if (!target) + return false; + + vport = target_to_port(target); spin_lock_irqsave(&target->lock, flags); res = vport->enabled; spin_unlock_irqrestore(&target->lock, flags);