* [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls
@ 2026-04-19 7:17 Gyeyoung Baek
2026-04-19 7:17 ` [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() Gyeyoung Baek
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Gyeyoung Baek @ 2026-04-19 7:17 UTC (permalink / raw)
To: Tomeu Vizoso, Boris Brezillon, Rob Herring, Steven Price,
Adrián Larumbe
Cc: Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, dri-devel, linux-kernel,
Gyeyoung Baek
dma_resv_wait_timeout() returns a positive 'long' (remaining jiffies)
on success, which is truncated to 'int`.
So userspace interpret that as an error.
Each patch explicitly sets `ret` to 0 on the
success path.
Gyeyoung Baek (2):
accel/rocket: Fix prep_bo ioctl leaking positive return from
dma_resv_wait_timeout()
drm/panfrost: Fix wait_bo ioctl leaking positive return from
dma_resv_wait_timeout()
drivers/accel/rocket/rocket_gem.c | 2 ++
drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++
2 files changed, 4 insertions(+)
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Gyeyoung Baek @ 2026-04-19 7:17 ` Gyeyoung Baek 2026-04-20 14:12 ` Tomeu Vizoso 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek 2026-05-07 14:00 ` [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Steven Price 2 siblings, 1 reply; 8+ messages in thread From: Gyeyoung Baek @ 2026-04-19 7:17 UTC (permalink / raw) To: Tomeu Vizoso, Boris Brezillon, Rob Herring, Steven Price, Adrián Larumbe Cc: Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, Gyeyoung Baek, stable dma_resv_wait_timeout() returns a positive 'remaining jiffies' value on success, 0 on timeout, and -errno on failure. rocket_ioctl_prep_bo() returns this 'long' result from an int-typed ioctl handler, so positive values reach userspace as bogus errors. Explicitly set ret to 0 on the success path. Fixes: 525ad89dd904 ("accel/rocket: Add IOCTLs for synchronizing memory accesses") Cc: stable@vger.kernel.org Signed-off-by: Gyeyoung Baek <gye976@gmail.com> --- drivers/accel/rocket/rocket_gem.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/accel/rocket/rocket_gem.c b/drivers/accel/rocket/rocket_gem.c index b6a385d2e..c80847192 100644 --- a/drivers/accel/rocket/rocket_gem.c +++ b/drivers/accel/rocket/rocket_gem.c @@ -145,6 +145,8 @@ int rocket_ioctl_prep_bo(struct drm_device *dev, void *data, struct drm_file *fi ret = dma_resv_wait_timeout(gem_obj->resv, DMA_RESV_USAGE_WRITE, true, timeout); if (!ret) ret = timeout ? -ETIMEDOUT : -EBUSY; + else if (ret > 0) + ret = 0; shmem_obj = &to_rocket_bo(gem_obj)->base; -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 ` [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() Gyeyoung Baek @ 2026-04-20 14:12 ` Tomeu Vizoso 0 siblings, 0 replies; 8+ messages in thread From: Tomeu Vizoso @ 2026-04-20 14:12 UTC (permalink / raw) To: Gyeyoung Baek Cc: Boris Brezillon, Rob Herring, Steven Price, Adrián Larumbe, Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, stable On Sun, Apr 19, 2026 at 9:19 AM Gyeyoung Baek <gye976@gmail.com> wrote: > > dma_resv_wait_timeout() returns a positive 'remaining jiffies' value > on success, 0 on timeout, and -errno on failure. > > rocket_ioctl_prep_bo() returns this 'long' result from an int-typed > ioctl handler, so positive values reach userspace as bogus errors. > Explicitly set ret to 0 on the success path. > > Fixes: 525ad89dd904 ("accel/rocket: Add IOCTLs for synchronizing memory accesses") > Cc: stable@vger.kernel.org > Signed-off-by: Gyeyoung Baek <gye976@gmail.com> Reviewed-by: Tomeu Vizoso <tomeu@tomeuvizoso.net> Thanks! Tomeu > --- > drivers/accel/rocket/rocket_gem.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/accel/rocket/rocket_gem.c b/drivers/accel/rocket/rocket_gem.c > index b6a385d2e..c80847192 100644 > --- a/drivers/accel/rocket/rocket_gem.c > +++ b/drivers/accel/rocket/rocket_gem.c > @@ -145,6 +145,8 @@ int rocket_ioctl_prep_bo(struct drm_device *dev, void *data, struct drm_file *fi > ret = dma_resv_wait_timeout(gem_obj->resv, DMA_RESV_USAGE_WRITE, true, timeout); > if (!ret) > ret = timeout ? -ETIMEDOUT : -EBUSY; > + else if (ret > 0) > + ret = 0; > > shmem_obj = &to_rocket_bo(gem_obj)->base; > > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v1 2/2] drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Gyeyoung Baek 2026-04-19 7:17 ` [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() Gyeyoung Baek @ 2026-04-19 7:17 ` Gyeyoung Baek 2026-04-20 8:08 ` Boris Brezillon ` (2 more replies) 2026-05-07 14:00 ` [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Steven Price 2 siblings, 3 replies; 8+ messages in thread From: Gyeyoung Baek @ 2026-04-19 7:17 UTC (permalink / raw) To: Tomeu Vizoso, Boris Brezillon, Rob Herring, Steven Price, Adrián Larumbe Cc: Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, Gyeyoung Baek, stable dma_resv_wait_timeout() returns a positive 'remaining jiffies' value on success, 0 on timeout, and -errno on failure. panfrost_ioctl_wait_bo() returns this 'long' result from an int-typed ioctl handler, so positive values reach userspace as bogus errors. Explicitly set ret to 0 on the success path. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Cc: stable@vger.kernel.org Signed-off-by: Gyeyoung Baek <gye976@gmail.com> --- drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c index 3d0bdba2a..784e36d72 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -390,6 +390,8 @@ panfrost_ioctl_wait_bo(struct drm_device *dev, void *data, true, timeout); if (!ret) ret = timeout ? -ETIMEDOUT : -EBUSY; + else if (ret > 0) + ret = 0; drm_gem_object_put(gem_obj); -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek @ 2026-04-20 8:08 ` Boris Brezillon 2026-04-20 11:18 ` Steven Price 2026-04-21 20:38 ` Adrián Larumbe 2 siblings, 0 replies; 8+ messages in thread From: Boris Brezillon @ 2026-04-20 8:08 UTC (permalink / raw) To: Gyeyoung Baek Cc: Tomeu Vizoso, Rob Herring, Steven Price, Adrián Larumbe, Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, stable On Sun, 19 Apr 2026 16:17:16 +0900 Gyeyoung Baek <gye976@gmail.com> wrote: > dma_resv_wait_timeout() returns a positive 'remaining jiffies' value > on success, 0 on timeout, and -errno on failure. > > panfrost_ioctl_wait_bo() returns this 'long' result from an int-typed > ioctl handler, so positive values reach userspace as bogus errors. > Explicitly set ret to 0 on the success path. > > Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") > Cc: stable@vger.kernel.org > Signed-off-by: Gyeyoung Baek <gye976@gmail.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > --- > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c > index 3d0bdba2a..784e36d72 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c > @@ -390,6 +390,8 @@ panfrost_ioctl_wait_bo(struct drm_device *dev, void *data, > true, timeout); > if (!ret) > ret = timeout ? -ETIMEDOUT : -EBUSY; > + else if (ret > 0) > + ret = 0; > > drm_gem_object_put(gem_obj); > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek 2026-04-20 8:08 ` Boris Brezillon @ 2026-04-20 11:18 ` Steven Price 2026-04-21 20:38 ` Adrián Larumbe 2 siblings, 0 replies; 8+ messages in thread From: Steven Price @ 2026-04-20 11:18 UTC (permalink / raw) To: Gyeyoung Baek, Tomeu Vizoso, Boris Brezillon, Rob Herring, Adrián Larumbe Cc: Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, stable On 19/04/2026 08:17, Gyeyoung Baek wrote: > dma_resv_wait_timeout() returns a positive 'remaining jiffies' value > on success, 0 on timeout, and -errno on failure. > > panfrost_ioctl_wait_bo() returns this 'long' result from an int-typed > ioctl handler, so positive values reach userspace as bogus errors. > Explicitly set ret to 0 on the success path. > > Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") > Cc: stable@vger.kernel.org > Signed-off-by: Gyeyoung Baek <gye976@gmail.com> Reviewed-by: Steven Price <steven.price@arm.com> > --- > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c > index 3d0bdba2a..784e36d72 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c > @@ -390,6 +390,8 @@ panfrost_ioctl_wait_bo(struct drm_device *dev, void *data, > true, timeout); > if (!ret) > ret = timeout ? -ETIMEDOUT : -EBUSY; > + else if (ret > 0) > + ret = 0; > > drm_gem_object_put(gem_obj); > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout() 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek 2026-04-20 8:08 ` Boris Brezillon 2026-04-20 11:18 ` Steven Price @ 2026-04-21 20:38 ` Adrián Larumbe 2 siblings, 0 replies; 8+ messages in thread From: Adrián Larumbe @ 2026-04-21 20:38 UTC (permalink / raw) To: Gyeyoung Baek Cc: Tomeu Vizoso, Boris Brezillon, Rob Herring, Steven Price, Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel, stable Reviewed-by: Adrián Larumbe <adrian.larumbe@collabora.com> On 19.04.2026 16:17, Gyeyoung Baek wrote: > dma_resv_wait_timeout() returns a positive 'remaining jiffies' value > on success, 0 on timeout, and -errno on failure. > > panfrost_ioctl_wait_bo() returns this 'long' result from an int-typed > ioctl handler, so positive values reach userspace as bogus errors. > Explicitly set ret to 0 on the success path. > > Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") > Cc: stable@vger.kernel.org > Signed-off-by: Gyeyoung Baek <gye976@gmail.com> > --- > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c > index 3d0bdba2a..784e36d72 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c > @@ -390,6 +390,8 @@ panfrost_ioctl_wait_bo(struct drm_device *dev, void *data, > true, timeout); > if (!ret) > ret = timeout ? -ETIMEDOUT : -EBUSY; > + else if (ret > 0) > + ret = 0; > > drm_gem_object_put(gem_obj); > > -- > 2.43.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls 2026-04-19 7:17 [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Gyeyoung Baek 2026-04-19 7:17 ` [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() Gyeyoung Baek 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek @ 2026-05-07 14:00 ` Steven Price 2 siblings, 0 replies; 8+ messages in thread From: Steven Price @ 2026-05-07 14:00 UTC (permalink / raw) To: Gyeyoung Baek, Tomeu Vizoso, Boris Brezillon, Rob Herring, Adrián Larumbe Cc: Oded Gabbay, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel, linux-kernel On 19/04/2026 08:17, Gyeyoung Baek wrote: > dma_resv_wait_timeout() returns a positive 'long' (remaining jiffies) > on success, which is truncated to 'int`. > So userspace interpret that as an error. > > Each patch explicitly sets `ret` to 0 on the > success path. > > Gyeyoung Baek (2): > accel/rocket: Fix prep_bo ioctl leaking positive return from > dma_resv_wait_timeout() > drm/panfrost: Fix wait_bo ioctl leaking positive return from > dma_resv_wait_timeout() > > drivers/accel/rocket/rocket_gem.c | 2 ++ > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ > 2 files changed, 4 insertions(+) > Both patches pushed to drm-misc-fixes. Thanks, Steve ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-07 14:00 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-19 7:17 [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Gyeyoung Baek 2026-04-19 7:17 ` [PATCH v1 1/2] accel/rocket: Fix prep_bo ioctl leaking positive return from dma_resv_wait_timeout() Gyeyoung Baek 2026-04-20 14:12 ` Tomeu Vizoso 2026-04-19 7:17 ` [PATCH v1 2/2] drm/panfrost: Fix wait_bo " Gyeyoung Baek 2026-04-20 8:08 ` Boris Brezillon 2026-04-20 11:18 ` Steven Price 2026-04-21 20:38 ` Adrián Larumbe 2026-05-07 14:00 ` [PATCH v1 0/2] Fix dma_resv_wait_timeout() return handling in rocket/panfrost ioctls Steven Price
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.