This allows us to control the allocation size of the structure.

Reviewed-by: Stefano Garzarella <sgarz...@redhat.com>
Acked-by: Eugenio PĂ©rez <epere...@redhat.com>
Signed-off-by: Jason Wang <jasow...@redhat.com>
---
 drivers/vdpa/vdpa_sim/vdpa_sim.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index cb88891b44a8..118dbc8e5d67 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -249,6 +249,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr 
*dev_attr,
                               const struct vdpa_dev_set_config *config)
 {
        const struct vdpa_config_ops *ops;
+       struct vdpa_device *vdpa;
        struct vdpasim *vdpasim;
        struct device *dev;
        int i, ret = -ENOMEM;
@@ -266,14 +267,16 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr 
*dev_attr,
        else
                ops = &vdpasim_config_ops;
 
-       vdpasim = vdpa_alloc_device(struct vdpasim, vdpa, NULL, ops,
-                                   dev_attr->ngroups, dev_attr->nas,
-                                   dev_attr->name, false);
-       if (IS_ERR(vdpasim)) {
-               ret = PTR_ERR(vdpasim);
+       vdpa = __vdpa_alloc_device(NULL, ops,
+                                  dev_attr->ngroups, dev_attr->nas,
+                                  sizeof(struct vdpasim),
+                                  dev_attr->name, false);
+       if (IS_ERR(vdpa)) {
+               ret = PTR_ERR(vdpa);
                goto err_alloc;
        }
 
+       vdpasim = vdpa_to_sim(vdpa);
        vdpasim->dev_attr = *dev_attr;
        INIT_WORK(&vdpasim->work, dev_attr->work_fn);
        spin_lock_init(&vdpasim->lock);
-- 
2.25.1

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to