]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/target/target_core_fabric_configfs.c
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[karo-tx-linux.git] / drivers / target / target_core_fabric_configfs.c
index 816347c3439201a867e2b9e522e068d6c02fb9b0..810263dfa4a1d9d272e16a492c5fb44365967a6c 100644 (file)
@@ -70,6 +70,12 @@ static int target_fabric_mappedlun_link(
        struct se_portal_group *se_tpg;
        struct config_item *nacl_ci, *tpg_ci, *tpg_ci_s, *wwn_ci, *wwn_ci_s;
        int ret = 0, lun_access;
+
+       if (lun->lun_link_magic != SE_LUN_LINK_MAGIC) {
+               pr_err("Bad lun->lun_link_magic, not a valid lun_ci pointer:"
+                       " %p to struct lun: %p\n", lun_ci, lun);
+               return -EFAULT;
+       }
        /*
         * Ensure that the source port exists
         */
@@ -357,7 +363,7 @@ static struct config_group *target_fabric_make_mappedlun(
        }
 
        lacl_cg = &lacl->se_lun_group;
-       lacl_cg->default_groups = kzalloc(sizeof(struct config_group) * 2,
+       lacl_cg->default_groups = kmalloc(sizeof(struct config_group *) * 2,
                                GFP_KERNEL);
        if (!lacl_cg->default_groups) {
                pr_err("Unable to allocate lacl_cg->default_groups\n");
@@ -373,7 +379,7 @@ static struct config_group *target_fabric_make_mappedlun(
        lacl_cg->default_groups[1] = NULL;
 
        ml_stat_grp = &lacl->ml_stat_grps.stat_group;
-       ml_stat_grp->default_groups = kzalloc(sizeof(struct config_group) * 3,
+       ml_stat_grp->default_groups = kmalloc(sizeof(struct config_group *) * 3,
                                GFP_KERNEL);
        if (!ml_stat_grp->default_groups) {
                pr_err("Unable to allocate ml_stat_grp->default_groups\n");
@@ -742,6 +748,12 @@ 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);
@@ -858,7 +870,7 @@ static struct config_group *target_fabric_make_lun(
                return ERR_PTR(-EINVAL);
 
        lun_cg = &lun->lun_group;
-       lun_cg->default_groups = kzalloc(sizeof(struct config_group) * 2,
+       lun_cg->default_groups = kmalloc(sizeof(struct config_group *) * 2,
                                GFP_KERNEL);
        if (!lun_cg->default_groups) {
                pr_err("Unable to allocate lun_cg->default_groups\n");