Commit 459d7552 authored by Gyeyoung Baek's avatar Gyeyoung Baek Committed by Steven Price
Browse files

drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout()



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: f3ba9122 ("drm/panfrost: Add initial panfrost driver")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarGyeyoung Baek <gye976@gmail.com>
Reviewed-by: default avatarAdrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: default avatarSteven Price <steven.price@arm.com>
Link: https://patch.msgid.link/fe33f82fded7be1c18e2e0eb2db451d5a738cf39.1776581974.git.gye976@gmail.com


Signed-off-by: default avatarSteven Price <steven.price@arm.com>
parent 74570e12
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);