Hi Nick,
I just booted into a 3.7.4 kernel and found myself unable to start any
of my targets up:
[ 1237.490697] BUG: unable to handle kernel NULL pointer dereference
at (null)
[ 1237.499827] IP: [<ffffffffa062c997>] target_fabric_port_link+0x8/0xd2
[target_core_mod]
[snip]
(gdb) list *target_fabric_port_link+0x8
0x6997 is in target_fabric_port_link
(drivers/target/target_core_fabric_configfs.c:754).
751 struct target_fabric_configfs *tf;
752 int ret;
753
754 if (dev->dev_link_magic != SE_DEV_LINK_MAGIC) {
755 pr_err("Bad dev->dev_link_magic, not a valid
se_dev_ci pointer:"
756 " %p to struct se_device: %p\n",
se_dev_ci, dev);
757 return -EFAULT;
It seems that "target: Add link_magic for fabric allow_link destination
target_items" is to blame for this one:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=fdf9d862969f1be18814273b03fb9497ec2dbdae
In 3.7.4 at least, 'dev' isn't initialised until much further below, so
the patch adds an access to uninitialised memory and causes a NULL
pointer dereference. It looks as though the initialisation order of
struct se_device *dev has changed due to the removal of struct
se_subsystem_dev.
I think the fix is to simply move the dev_link_magic check to further
below...
HTH,
Chris
--
Chris Boot
bootc@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html