From 1f0e792e849fe388eb1964d7a6f67dd5697ec6df Mon Sep 17 00:00:00 2001 From: Wangqiang Guo Date: Thu, 29 Aug 2024 11:28:33 +0800 Subject: [PATCH] media: rockchip: hdmirx: fix put_user fail on kernel-6.1. Type: Fix Redmine ID: #500594 Associated modifications: gerrit links Test: echo 1 > /sys/module/rockchip_hdmirx/parameters/low_latency and preview hdmiin. Change-Id: Idd9fc6613b2fc547674ecaed8c5c940dee8526e6 Signed-off-by: Wangqiang Guo --- drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c index 7217eddf83d4..5df2e28d862b 100644 --- a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c +++ b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c @@ -3050,9 +3050,10 @@ static void hdmirx_add_fence_to_vb_done(struct hdmirx_stream *stream, if (vb_fence) { /* pass the fence_fd to userspace through timecode.userbits */ - if (put_user(vb_fence->fence_fd, vb_done->timecode.userbits)) - v4l2_err(v4l2_dev, "%s: failed to trans fence fd!\n", __func__); - + vb_done->timecode.userbits[0] = vb_fence->fence_fd & 0xff; + vb_done->timecode.userbits[1] = (vb_fence->fence_fd & 0xff00) >> 8; + vb_done->timecode.userbits[2] = (vb_fence->fence_fd & 0xff0000) >> 16; + vb_done->timecode.userbits[3] = (vb_fence->fence_fd & 0xff000000) >> 24; v4l2_dbg(3, debug, v4l2_dev, "%s: fence:%p, fence_fd:%d\n", __func__, vb_fence->fence, vb_fence->fence_fd); } else {