Lines Matching defs:config
111 void *config;
698 memcpy(buf, dev->config + offset, len);
1173 struct vduse_config_data config;
1178 if (copy_from_user(&config, argp, size))
1182 if (config.offset > dev->config_size ||
1183 config.length == 0 ||
1184 config.length > dev->config_size - config.offset)
1188 if (copy_from_user(dev->config + config.offset, argp + size,
1189 config.length))
1199 struct vduse_vq_config config;
1203 if (copy_from_user(&config, argp, sizeof(config)))
1207 if (config.index >= dev->vq_num)
1210 if (!is_mem_zero((const char *)config.reserved,
1211 sizeof(config.reserved)))
1214 index = array_index_nospec(config.index, dev->vq_num);
1215 dev->vqs[index]->num_max = config.max_size;
1643 kvfree(dev->config);
1677 static bool vduse_validate_config(struct vduse_dev_config *config)
1679 if (!is_mem_zero((const char *)config->reserved,
1680 sizeof(config->reserved)))
1683 if (config->vq_align > PAGE_SIZE)
1686 if (config->config_size > PAGE_SIZE)
1689 if (config->vq_num > 0xffff)
1692 if (!config->name[0])
1695 if (!device_is_allowed(config->device_id))
1698 if (!features_is_valid(config->features))
1775 static int vduse_create_dev(struct vduse_dev_config *config,
1782 if (vduse_find_dev(config->name))
1791 dev->device_features = config->features;
1792 dev->device_id = config->device_id;
1793 dev->vendor_id = config->vendor_id;
1794 dev->name = kstrdup(config->name, GFP_KERNEL);
1799 dev->config = config_buf;
1800 dev->config_size = config->config_size;
1810 dev, vduse_dev_groups, "%s", config->name);
1816 ret = vduse_dev_init_vqs(dev, config->vq_align, config->vq_num);
1863 struct vduse_dev_config config;
1864 unsigned long size = offsetof(struct vduse_dev_config, config);
1868 if (copy_from_user(&config, argp, size))
1872 if (vduse_validate_config(&config) == false)
1875 buf = vmemdup_user(argp + size, config.config_size);
1880 config.name[VDUSE_NAME_MAX - 1] = '\0';
1881 ret = vduse_create_dev(&config, buf, control->api_version);
1978 const struct vdpa_dev_set_config *config)