static void set_ucode_filename(struct otx_cpt_ucode *ucode,
                               const char *filename)
 {
-       strlcpy(ucode->filename, filename, OTX_CPT_UCODE_NAME_LENGTH);
+       strscpy(ucode->filename, filename, OTX_CPT_UCODE_NAME_LENGTH);
 }
 
 static char *get_eng_type_str(int eng_type)
        u32 i, val = 0;
        u8 nn;
 
-       strlcpy(tmp_ver_str, ucode_hdr->ver_str, OTX_CPT_UCODE_VER_STR_SZ);
+       strscpy(tmp_ver_str, ucode_hdr->ver_str, OTX_CPT_UCODE_VER_STR_SZ);
        for (i = 0; i < strlen(tmp_ver_str); i++)
                tmp_ver_str[i] = tolower(tmp_ver_str[i]);
 
 
        eng_grps = container_of(attr, struct otx_cpt_eng_grps, ucode_load_attr);
        err_msg = "Invalid engine group format";
-       strlcpy(tmp_buf, buf, OTX_CPT_UCODE_NAME_LENGTH);
+       strscpy(tmp_buf, buf, OTX_CPT_UCODE_NAME_LENGTH);
        start = tmp_buf;
 
        has_se = has_ie = has_ae = false;
 
 static void set_ucode_filename(struct otx2_cpt_ucode *ucode,
                               const char *filename)
 {
-       strlcpy(ucode->filename, filename, OTX2_CPT_NAME_LENGTH);
+       strscpy(ucode->filename, filename, OTX2_CPT_NAME_LENGTH);
 }
 
 static char *get_eng_type_str(int eng_type)
        int i, val = 0;
        u8 nn;
 
-       strlcpy(tmp_ver_str, ucode_hdr->ver_str, OTX2_CPT_UCODE_VER_STR_SZ);
+       strscpy(tmp_ver_str, ucode_hdr->ver_str, OTX2_CPT_UCODE_VER_STR_SZ);
        for (i = 0; i < strlen(tmp_ver_str); i++)
                tmp_ver_str[i] = tolower(tmp_ver_str[i]);
 
 
                return -ENOMEM;
 
        INIT_LIST_HEAD(&key_val->list);
-       strlcpy(key_val->key, key, sizeof(key_val->key));
+       strscpy(key_val->key, key, sizeof(key_val->key));
 
        if (type == ADF_DEC) {
                snprintf(key_val->val, ADF_CFG_MAX_VAL_LEN_IN_BYTES,
                         "%ld", (*((long *)val)));
        } else if (type == ADF_STR) {
-               strlcpy(key_val->val, (char *)val, sizeof(key_val->val));
+               strscpy(key_val->val, (char *)val, sizeof(key_val->val));
        } else if (type == ADF_HEX) {
                snprintf(key_val->val, ADF_CFG_MAX_VAL_LEN_IN_BYTES,
                         "0x%lx", (unsigned long)val);
        if (!sec)
                return -ENOMEM;
 
-       strlcpy(sec->name, name, sizeof(sec->name));
+       strscpy(sec->name, name, sizeof(sec->name));
        INIT_LIST_HEAD(&sec->param_head);
        down_write(&cfg->lock);
        list_add_tail(&sec->list, &cfg->sec_list);
 
        dev_info.num_logical_accel = hw_data->num_logical_accel;
        dev_info.banks_per_accel = hw_data->num_banks
                                        / hw_data->num_logical_accel;
-       strlcpy(dev_info.name, hw_data->dev_class->name, sizeof(dev_info.name));
+       strscpy(dev_info.name, hw_data->dev_class->name, sizeof(dev_info.name));
        dev_info.instance_id = hw_data->instance_id;
        dev_info.type = hw_data->dev_class->type;
        dev_info.bus = accel_to_pci_dev(accel_dev)->bus->number;
 
        if (!ring_debug)
                return -ENOMEM;
 
-       strlcpy(ring_debug->ring_name, name, sizeof(ring_debug->ring_name));
+       strscpy(ring_debug->ring_name, name, sizeof(ring_debug->ring_name));
        snprintf(entry_name, sizeof(entry_name), "ring_%02d",
                 ring->ring_number);