vdpasim: customize allocation size
Allow individual simulator to customize the allocation size. Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Acked-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Message-Id: <20221223055548.27810-3-jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
0497f23e73
commit
bb105d514a
@ -256,6 +256,9 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr,
|
||||
struct device *dev;
|
||||
int i, ret = -ENOMEM;
|
||||
|
||||
if (!dev_attr->alloc_size)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
if (config->mask & BIT_ULL(VDPA_ATTR_DEV_FEATURES)) {
|
||||
if (config->device_features &
|
||||
~dev_attr->supported_features)
|
||||
@ -271,7 +274,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr,
|
||||
|
||||
vdpa = __vdpa_alloc_device(NULL, ops,
|
||||
dev_attr->ngroups, dev_attr->nas,
|
||||
sizeof(struct vdpasim),
|
||||
dev_attr->alloc_size,
|
||||
dev_attr->name, false);
|
||||
if (IS_ERR(vdpa)) {
|
||||
ret = PTR_ERR(vdpa);
|
||||
|
@ -37,6 +37,7 @@ struct vdpasim_dev_attr {
|
||||
struct vdpa_mgmt_dev *mgmt_dev;
|
||||
const char *name;
|
||||
u64 supported_features;
|
||||
size_t alloc_size;
|
||||
size_t config_size;
|
||||
size_t buffer_size;
|
||||
int nvqs;
|
||||
|
@ -378,6 +378,7 @@ static int vdpasim_blk_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
|
||||
dev_attr.nvqs = VDPASIM_BLK_VQ_NUM;
|
||||
dev_attr.ngroups = VDPASIM_BLK_GROUP_NUM;
|
||||
dev_attr.nas = VDPASIM_BLK_AS_NUM;
|
||||
dev_attr.alloc_size = sizeof(struct vdpasim);
|
||||
dev_attr.config_size = sizeof(struct virtio_blk_config);
|
||||
dev_attr.get_config = vdpasim_blk_get_config;
|
||||
dev_attr.work_fn = vdpasim_blk_work;
|
||||
|
@ -253,6 +253,7 @@ static int vdpasim_net_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
|
||||
dev_attr.nvqs = VDPASIM_NET_VQ_NUM;
|
||||
dev_attr.ngroups = VDPASIM_NET_GROUP_NUM;
|
||||
dev_attr.nas = VDPASIM_NET_AS_NUM;
|
||||
dev_attr.alloc_size = sizeof(struct vdpasim);
|
||||
dev_attr.config_size = sizeof(struct virtio_net_config);
|
||||
dev_attr.get_config = vdpasim_net_get_config;
|
||||
dev_attr.work_fn = vdpasim_net_work;
|
||||
|
Loading…
Reference in New Issue
Block a user