* [PATCH 0/2] drm/msm: Defer fd_install()
@ 2025-07-23 20:28 Rob Clark
2025-07-23 20:28 ` [PATCH 1/2] drm/msm: Defer fd_install in SUBMIT ioctl Rob Clark
2025-07-23 20:28 ` [PATCH 2/2] drm/msm: Defer fd_install in VM_BIND ioctl Rob Clark
0 siblings, 2 replies; 3+ messages in thread
From: Rob Clark @ 2025-07-23 20:28 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Dan Carpenter, Rob Clark,
Abhinav Kumar, David Airlie, Dmitry Baryshkov, Jessica Zhang,
open list, Marijn Suijten, Sean Paul, Simona Vetter
The first patch fixes an issue that Dan Carpenter reported in
https://lore.kernel.org/all/55953f27-0762-4ef2-8dda-3208b34a5c75@sabinyo.mountain/
and the second fixes the same issue in the more recently introduced
VM_BIND ioctl.
Rob Clark (2):
drm/msm: Defer fd_install in SUBMIT ioctl
drm/msm: Defer fd_install in VM_BIND ioctl
drivers/gpu/drm/msm/msm_gem_submit.c | 14 +++++++-------
drivers/gpu/drm/msm/msm_gem_vma.c | 14 +++++++-------
2 files changed, 14 insertions(+), 14 deletions(-)
--
2.50.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] drm/msm: Defer fd_install in SUBMIT ioctl
2025-07-23 20:28 [PATCH 0/2] drm/msm: Defer fd_install() Rob Clark
@ 2025-07-23 20:28 ` Rob Clark
2025-07-23 20:28 ` [PATCH 2/2] drm/msm: Defer fd_install in VM_BIND ioctl Rob Clark
1 sibling, 0 replies; 3+ messages in thread
From: Rob Clark @ 2025-07-23 20:28 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Dan Carpenter, Rob Clark,
Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, open list
Avoid fd_install() until there are no more potential error paths, to
avoid put_unused_fd() after the fd is made visible to userspace.
Fixes: 68dc6c2d5eec ("drm/msm: Fix submit error-path leaks")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_gem_submit.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
index 0ac4c199ec93..bfea19baf6d9 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -770,12 +770,8 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
if (ret == 0 && args->flags & MSM_SUBMIT_FENCE_FD_OUT) {
sync_file = sync_file_create(submit->user_fence);
- if (!sync_file) {
+ if (!sync_file)
ret = -ENOMEM;
- } else {
- fd_install(out_fence_fd, sync_file->file);
- args->fence_fd = out_fence_fd;
- }
}
if (ret)
@@ -813,10 +809,14 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
out_unlock:
mutex_unlock(&queue->lock);
out_post_unlock:
- if (ret && (out_fence_fd >= 0)) {
- put_unused_fd(out_fence_fd);
+ if (ret) {
+ if (out_fence_fd >= 0)
+ put_unused_fd(out_fence_fd);
if (sync_file)
fput(sync_file->file);
+ } else if (sync_file) {
+ fd_install(out_fence_fd, sync_file->file);
+ args->fence_fd = out_fence_fd;
}
if (!IS_ERR_OR_NULL(submit)) {
--
2.50.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] drm/msm: Defer fd_install in VM_BIND ioctl
2025-07-23 20:28 [PATCH 0/2] drm/msm: Defer fd_install() Rob Clark
2025-07-23 20:28 ` [PATCH 1/2] drm/msm: Defer fd_install in SUBMIT ioctl Rob Clark
@ 2025-07-23 20:28 ` Rob Clark
1 sibling, 0 replies; 3+ messages in thread
From: Rob Clark @ 2025-07-23 20:28 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Dan Carpenter, Rob Clark,
Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, open list
Avoid fd_install() until there are no more potential error paths, to
avoid put_unused_fd() after the fd is made visible to userspace.
Fixes: 03b6becb03c8 ("Merge tag 'drm-msm-next-2025-07-05' into HEAD")
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_gem_vma.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
index e5162db436a6..d4b1cfb3aa03 100644
--- a/drivers/gpu/drm/msm/msm_gem_vma.c
+++ b/drivers/gpu/drm/msm/msm_gem_vma.c
@@ -1473,12 +1473,8 @@ msm_ioctl_vm_bind(struct drm_device *dev, void *data, struct drm_file *file)
if (args->flags & MSM_VM_BIND_FENCE_FD_OUT) {
sync_file = sync_file_create(job->fence);
- if (!sync_file) {
+ if (!sync_file)
ret = -ENOMEM;
- } else {
- fd_install(out_fence_fd, sync_file->file);
- args->fence_fd = out_fence_fd;
- }
}
if (ret)
@@ -1507,10 +1503,14 @@ msm_ioctl_vm_bind(struct drm_device *dev, void *data, struct drm_file *file)
out_unlock:
mutex_unlock(&queue->lock);
out_post_unlock:
- if (ret && (out_fence_fd >= 0)) {
- put_unused_fd(out_fence_fd);
+ if (ret) {
+ if (out_fence_fd >= 0)
+ put_unused_fd(out_fence_fd);
if (sync_file)
fput(sync_file->file);
+ } else if (sync_file) {
+ fd_install(out_fence_fd, sync_file->file);
+ args->fence_fd = out_fence_fd;
}
if (!IS_ERR_OR_NULL(job)) {
--
2.50.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-07-23 20:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-23 20:28 [PATCH 0/2] drm/msm: Defer fd_install() Rob Clark
2025-07-23 20:28 ` [PATCH 1/2] drm/msm: Defer fd_install in SUBMIT ioctl Rob Clark
2025-07-23 20:28 ` [PATCH 2/2] drm/msm: Defer fd_install in VM_BIND ioctl Rob Clark
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®