*port_str = '\0'; /* Terminate string for IP */
                port_str++; /* Skip over ":" */
 
-               ret = strict_strtoul(port_str, 0, &port);
+               ret = kstrtoul(port_str, 0, &port);
                if (ret < 0) {
-                       pr_err("strict_strtoul() failed for port_str: %d\n", ret);
+                       pr_err("kstrtoul() failed for port_str: %d\n", ret);
                        return ERR_PTR(ret);
                }
                sock_in6 = (struct sockaddr_in6 *)&sockaddr;
                *port_str = '\0'; /* Terminate string for IP */
                port_str++; /* Skip over ":" */
 
-               ret = strict_strtoul(port_str, 0, &port);
+               ret = kstrtoul(port_str, 0, &port);
                if (ret < 0) {
-                       pr_err("strict_strtoul() failed for port_str: %d\n", ret);
+                       pr_err("kstrtoul() failed for port_str: %d\n", ret);
                        return ERR_PTR(ret);
                }
                sock_in = (struct sockaddr_in *)&sockaddr;
 
                                ISCSI_LOGIN_STATUS_NO_RESOURCES);
                        return -1;
                }
-               rc = strict_strtoul(param->value, 0, &mrdsl);
+               rc = kstrtoul(param->value, 0, &mrdsl);
                if (rc < 0) {
                        iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
                                ISCSI_LOGIN_STATUS_NO_RESOURCES);
 
                        unsigned long long tmp;
                        int rc;
 
-                       rc = strict_strtoull(param->value, 0, &tmp);
+                       rc = kstrtoull(param->value, 0, &tmp);
                        if (rc < 0)
                                return -1;
 
 
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract alua_access_type\n");
-               return -EINVAL;
+               return ret;
        }
        if ((tmp != 0) && (tmp != 1) && (tmp != 2) && (tmp != 3)) {
                pr_err("Illegal value for alua_access_type:"
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract nonop_delay_msecs\n");
-               return -EINVAL;
+               return ret;
        }
        if (tmp > ALUA_MAX_NONOP_DELAY_MSECS) {
                pr_err("Passed nonop_delay_msecs: %lu, exceeds"
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract trans_delay_msecs\n");
-               return -EINVAL;
+               return ret;
        }
        if (tmp > ALUA_MAX_TRANS_DELAY_MSECS) {
                pr_err("Passed trans_delay_msecs: %lu, exceeds"
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract implict_trans_secs\n");
-               return -EINVAL;
+               return ret;
        }
        if (tmp > ALUA_MAX_IMPLICT_TRANS_SECS) {
                pr_err("Passed implict_trans_secs: %lu, exceeds"
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract preferred ALUA value\n");
-               return -EINVAL;
+               return ret;
        }
        if ((tmp != 0) && (tmp != 1)) {
                pr_err("Illegal value for preferred ALUA: %lu\n", tmp);
        if (!lun->lun_sep)
                return -ENODEV;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract alua_tg_pt_offline value\n");
-               return -EINVAL;
+               return ret;
        }
        if ((tmp != 0) && (tmp != 1)) {
                pr_err("Illegal value for alua_tg_pt_offline: %lu\n",
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract alua_tg_pt_status\n");
-               return -EINVAL;
+               return ret;
        }
        if ((tmp != ALUA_STATUS_NONE) &&
            (tmp != ALUA_STATUS_ALTERED_BY_EXPLICT_STPG) &&
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract alua_tg_pt_write_md\n");
-               return -EINVAL;
+               return ret;
        }
        if ((tmp != 0) && (tmp != 1)) {
                pr_err("Illegal value for alua_tg_pt_write_md:"
 
        unsigned long val;                                              \
        int ret;                                                        \
                                                                        \
-       ret = strict_strtoul(page, 0, &val);                            \
+       ret = kstrtoul(page, 0, &val);                          \
        if (ret < 0) {                                                  \
-               pr_err("strict_strtoul() failed with"           \
+               pr_err("kstrtoul() failed with"         \
                        " ret: %d\n", ret);                             \
                return -EINVAL;                                         \
        }                                                               \
                                ret = -ENOMEM;
                                goto out;
                        }
-                       ret = strict_strtoull(arg_p, 0, &tmp_ll);
+                       ret = kstrtoull(arg_p, 0, &tmp_ll);
                        if (ret < 0) {
-                               pr_err("strict_strtoull() failed for"
+                               pr_err("kstrtoull() failed for"
                                        " sa_res_key=\n");
                                goto out;
                        }
        unsigned long lu_gp_id;
        int ret;
 
-       ret = strict_strtoul(page, 0, &lu_gp_id);
+       ret = kstrtoul(page, 0, &lu_gp_id);
        if (ret < 0) {
-               pr_err("strict_strtoul() returned %d for"
+               pr_err("kstrtoul() returned %d for"
                        " lu_gp_id\n", ret);
-               return -EINVAL;
+               return ret;
        }
        if (lu_gp_id > 0x0000ffff) {
                pr_err("ALUA lu_gp_id: %lu exceeds maximum:"
                return -EINVAL;
        }
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract new ALUA access state from"
                                " %s\n", page);
-               return -EINVAL;
+               return ret;
        }
        new_state = (int)tmp;
 
                return -EINVAL;
        }
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract new ALUA access status"
                                " from %s\n", page);
-               return -EINVAL;
+               return ret;
        }
        new_status = (int)tmp;
 
        unsigned long tmp;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tmp);
+       ret = kstrtoul(page, 0, &tmp);
        if (ret < 0) {
                pr_err("Unable to extract alua_write_metadata\n");
-               return -EINVAL;
+               return ret;
        }
 
        if ((tmp != 0) && (tmp != 1)) {
        unsigned long tg_pt_gp_id;
        int ret;
 
-       ret = strict_strtoul(page, 0, &tg_pt_gp_id);
+       ret = kstrtoul(page, 0, &tg_pt_gp_id);
        if (ret < 0) {
-               pr_err("strict_strtoul() returned %d for"
+               pr_err("kstrtoul() returned %d for"
                        " tg_pt_gp_id\n", ret);
-               return -EINVAL;
+               return ret;
        }
        if (tg_pt_gp_id > 0x0000ffff) {
                pr_err("ALUA tg_pt_gp_id: %lu exceeds maximum:"
        if (transport->pmode_enable_hba == NULL)
                return -EINVAL;
 
-       ret = strict_strtoul(page, 0, &mode_flag);
+       ret = kstrtoul(page, 0, &mode_flag);
        if (ret < 0) {
                pr_err("Unable to extract hba mode flag: %d\n", ret);
-               return -EINVAL;
+               return ret;
        }
 
        if (hba->dev_count) {
                str++; /* Skip to start of plugin dependent ID */
        }
 
-       ret = strict_strtoul(str, 0, &plugin_dep_id);
+       ret = kstrtoul(str, 0, &plugin_dep_id);
        if (ret < 0) {
-               pr_err("strict_strtoul() returned %d for"
+               pr_err("kstrtoul() returned %d for"
                                " plugin_dep_id\n", ret);
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(ret);
        }
        /*
         * Load up TCM subsystem plugins if they have not already been loaded.
 
        struct se_node_acl *se_nacl = lacl->se_lun_nacl;
        struct se_portal_group *se_tpg = se_nacl->se_tpg;
        unsigned long op;
+       int ret;
 
-       if (strict_strtoul(page, 0, &op))
-               return -EINVAL;
+       ret = kstrtoul(page, 0, &op);
+       if (ret)
+               return ret;
 
        if ((op != 1) && (op != 0))
                return -EINVAL;
         * Determine the Mapped LUN value.  This is what the SCSI Initiator
         * Port will actually see.
         */
-       if (strict_strtoul(buf + 4, 0, &mapped_lun) || mapped_lun > UINT_MAX) {
+       ret = kstrtoul(buf + 4, 0, &mapped_lun);
+       if (ret)
+               goto out;
+       if (mapped_lun > UINT_MAX) {
                ret = -EINVAL;
                goto out;
        }
                                " \"lun_$LUN_NUMBER\"\n");
                return ERR_PTR(-EINVAL);
        }
-       if (strict_strtoul(name + 4, 0, &unpacked_lun) || unpacked_lun > UINT_MAX)
+       errno = kstrtoul(name + 4, 0, &unpacked_lun);
+       if (errno)
+               return ERR_PTR(errno);
+       if (unpacked_lun > UINT_MAX)
                return ERR_PTR(-EINVAL);
 
        lun = core_get_lun_from_tpg(se_tpg, unpacked_lun);
 
                                ret = -ENOMEM;
                                break;
                        }
-                       ret = strict_strtoull(arg_p, 0, &fd_dev->fd_dev_size);
+                       ret = kstrtoull(arg_p, 0, &fd_dev->fd_dev_size);
                        kfree(arg_p);
                        if (ret < 0) {
-                               pr_err("strict_strtoull() failed for"
+                               pr_err("kstrtoull() failed for"
                                                " fd_dev_size=\n");
                                goto out;
                        }
 
                                ret = -ENOMEM;
                                break;
                        }
-                       ret = strict_strtoul(arg_p, 0, &tmp_readonly);
+                       ret = kstrtoul(arg_p, 0, &tmp_readonly);
                        kfree(arg_p);
                        if (ret < 0) {
-                               pr_err("strict_strtoul() failed for"
+                               pr_err("kstrtoul() failed for"
                                                " readonly=\n");
                                goto out;
                        }
 
         */
        if (strstr(name, "tpgt_") != name)
                return NULL;
-       if (strict_strtoul(name + 5, 10, &index) || index > UINT_MAX)
+
+       ret = kstrtoul(name + 5, 10, &index);
+       if (ret)
+               return NULL;
+       if (index > UINT_MAX)
                return NULL;
 
        lacl = container_of(wwn, struct ft_lport_acl, fc_lport_wwn);