]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
accel/qaic: Call drm_gem_create_mmap_offset() once for each BO
authorPranjal Ramajor Asha Kanojiya <quic_pkanojiy@quicinc.com>
Fri, 8 Dec 2023 16:34:55 +0000 (09:34 -0700)
committerJeffrey Hugo <quic_jhugo@quicinc.com>
Fri, 15 Dec 2023 18:02:10 +0000 (11:02 -0700)
Every time QAIC_MMAP_BO ioctl is called for a BO,
drm_gem_create_mmap_offset() is called. Calling
drm_gem_create_mmap_offset() more then once for a BO seems redundant.

Signed-off-by: Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@quicinc.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231208163457.1295993-6-quic_jhugo@quicinc.com
drivers/accel/qaic/qaic_data.c

index 7faa00705c1d5b1a2b39fd0f471513687c2901fe..f88d925c8001c4541bff1922a79b31c5c3d03b42 100644 (file)
@@ -718,6 +718,10 @@ int qaic_create_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *fi
        if (ret)
                goto free_bo;
 
+       ret = drm_gem_create_mmap_offset(obj);
+       if (ret)
+               goto free_bo;
+
        ret = drm_gem_handle_create(file_priv, obj, &args->handle);
        if (ret)
                goto free_bo;
@@ -745,7 +749,7 @@ int qaic_mmap_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *file
        struct drm_gem_object *obj;
        struct qaic_device *qdev;
        struct qaic_user *usr;
-       int ret;
+       int ret = 0;
 
        usr = file_priv->driver_priv;
        usr_rcu_id = srcu_read_lock(&usr->qddev_lock);
@@ -767,9 +771,7 @@ int qaic_mmap_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *file
                goto unlock_dev_srcu;
        }
 
-       ret = drm_gem_create_mmap_offset(obj);
-       if (ret == 0)
-               args->offset = drm_vma_node_offset_addr(&obj->vma_node);
+       args->offset = drm_vma_node_offset_addr(&obj->vma_node);
 
        drm_gem_object_put(obj);