summary refs log tree commit diff
path: root/drivers/target/tcm_fc
diff options
context:
space:
mode:
authorDenis Efremov <yefremov.denis@gmail.com>2012-08-18 16:10:31 +0400
committerNicholas Bellinger <nab@linux-iscsi.org>2012-08-20 14:52:15 -0700
commit08a16208c8cb2ce1f79fea24f21dd7a8df4f12b6 (patch)
tree8df3946aff29d4dcbdbddb42296388a3486c1b6e /drivers/target/tcm_fc
parent6de7145ca3db231a84b7516a6cb25878da6ebb19 (diff)
downloadlinux-08a16208c8cb2ce1f79fea24f21dd7a8df4f12b6.tar.gz
tcm_fc: rcu_deref outside rcu lock/unlock section
Use rcu_dereference_protected in order to prevent lockdep
complaint. Sequel of the patch 863555be

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Denis Efremov <yefremov.denis@gmail.com>
Acked-by: Mark D. Rustad <mark.d.rustad@intel.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/tcm_fc')
-rw-r--r--drivers/target/tcm_fc/tfc_sess.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c
index 87901fa74dd7..3c9e5b57caab 100644
--- a/drivers/target/tcm_fc/tfc_sess.c
+++ b/drivers/target/tcm_fc/tfc_sess.c
@@ -456,7 +456,9 @@ static void ft_prlo(struct fc_rport_priv *rdata)
 	struct ft_tport *tport;
 
 	mutex_lock(&ft_lport_lock);
-	tport = rcu_dereference(rdata->local_port->prov[FC_TYPE_FCP]);
+	tport = rcu_dereference_protected(rdata->local_port->prov[FC_TYPE_FCP],
+					  lockdep_is_held(&ft_lport_lock));
+
 	if (!tport) {
 		mutex_unlock(&ft_lport_lock);
 		return;