aboutsummaryrefslogtreecommitdiff
path: root/drivers/accel/qaic
diff options
context:
space:
mode:
authorGravatar Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@quicinc.com> 2023-12-08 09:34:55 -0700
committerGravatar Jeffrey Hugo <quic_jhugo@quicinc.com> 2023-12-15 11:02:10 -0700
commit2f4494b34fe3f6fd810e3690a3cf66b551cef3da (patch)
treee19addebf023eda523c711c75b349b0877b30ca5 /drivers/accel/qaic
parentaccel/qaic: Drop the reference to BO in error path of create BO IOCTL (diff)
downloadlinux-2f4494b34fe3f6fd810e3690a3cf66b551cef3da.tar.gz
linux-2f4494b34fe3f6fd810e3690a3cf66b551cef3da.tar.bz2
linux-2f4494b34fe3f6fd810e3690a3cf66b551cef3da.zip
accel/qaic: Call drm_gem_create_mmap_offset() once for each BO
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
Diffstat (limited to 'drivers/accel/qaic')
-rw-r--r--drivers/accel/qaic/qaic_data.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c
index 7faa00705c1d..f88d925c8001 100644
--- a/drivers/accel/qaic/qaic_data.c
+++ b/drivers/accel/qaic/qaic_data.c
@@ -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);