--- /dev/null
+From caiqian@redhat.com Fri Feb 1 11:39:40 2013
+From: Nicholas Bellinger <nab@linux-iscsi.org>
+Date: Thu, 24 Jan 2013 21:57:14 -0500 (EST)
+Subject: target: fix regression with dev_link_magic in target_fabric_port_link
+To: stable@vger.kernel.org
+Cc: Nicholas Bellinger <nab@linux-iscsi.org>, Chris Boot <bootc@bootc.net>
+Message-ID: <1667210120.9168305.1359082634537.JavaMail.root@redhat.com>
+
+From: Nicholas Bellinger <nab@linux-iscsi.org>
+
+This is to fix a regression that only affect the stable (not for the mainline)
+that the stable commit fdf9d86 was incorrectly placed dev->dev_link_magic check
+before the *dev assignment in target_fabric_port_link() due to fuzzy automatically
+context adjustment during the back-porting.
+
+Reported-by: Chris Boot <bootc@bootc.net>
+Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
+Signed-off-by: CAI Qian <caiqian@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/target/target_core_fabric_configfs.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+--- a/drivers/target/target_core_fabric_configfs.c
++++ b/drivers/target/target_core_fabric_configfs.c
+@@ -752,12 +752,6 @@ static int target_fabric_port_link(
+ struct target_fabric_configfs *tf;
+ int ret;
+
+- if (dev->dev_link_magic != SE_DEV_LINK_MAGIC) {
+- pr_err("Bad dev->dev_link_magic, not a valid se_dev_ci pointer:"
+- " %p to struct se_device: %p\n", se_dev_ci, dev);
+- return -EFAULT;
+- }
+-
+ tpg_ci = &lun_ci->ci_parent->ci_group->cg_item;
+ se_tpg = container_of(to_config_group(tpg_ci),
+ struct se_portal_group, tpg_group);
+@@ -775,6 +769,11 @@ static int target_fabric_port_link(
+ ret = -ENODEV;
+ goto out;
+ }
++ if (dev->dev_link_magic != SE_DEV_LINK_MAGIC) {
++ pr_err("Bad dev->dev_link_magic, not a valid se_dev_ci pointer:"
++ " %p to struct se_device: %p\n", se_dev_ci, dev);
++ return -EFAULT;
++ }
+
+ lun_p = core_dev_add_lun(se_tpg, dev->se_hba, dev,
+ lun->unpacked_lun);