From c92f3fa91025578a8fade015a40d3eb38f76cb92 Mon Sep 17 00:00:00 2001 From: Wangqiang Guo Date: Thu, 13 Jun 2024 19:43:56 +0800 Subject: [PATCH] media: rockchip: hdmirx: fix low_latency NULL pointer err. Type: Fix Redmine ID: #483313 Associated modifications: null Test: 1.echo 1 > /sys/module/rockchip_hdmirx/parameters/low_latency 2.reboot during preview. Change-Id: Ie55efc60a9520202e63d915c71316dea27af8fae Signed-off-by: Wangqiang Guo --- drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c index 2350333aa333..7217eddf83d4 100644 --- a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c +++ b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c @@ -2195,6 +2195,7 @@ static void hdmirx_free_fence(struct rk_hdmirx_dev *hdmirx_dev) unsigned long lock_flags = 0; struct hdmirx_fence *vb_fence, *done_fence; struct v4l2_device *v4l2_dev = &hdmirx_dev->v4l2_dev; + struct files_struct *files = current->files; LIST_HEAD(local_list); spin_lock_irqsave(&hdmirx_dev->fence_lock, lock_flags); @@ -2216,7 +2217,8 @@ static void hdmirx_free_fence(struct rk_hdmirx_dev *hdmirx_dev) v4l2_dbg(2, debug, v4l2_dev, "%s: free qbuf_fence fd:%d\n", __func__, vb_fence->fence_fd); dma_fence_put(vb_fence->fence); - put_unused_fd(vb_fence->fence_fd); + if (files) + put_unused_fd(vb_fence->fence_fd); kfree(vb_fence); } @@ -2229,7 +2231,8 @@ static void hdmirx_free_fence(struct rk_hdmirx_dev *hdmirx_dev) v4l2_dbg(2, debug, v4l2_dev, "%s: free done_fence fd:%d\n", __func__, done_fence->fence_fd); dma_fence_put(done_fence->fence); - put_unused_fd(done_fence->fence_fd); + if (files) + put_unused_fd(done_fence->fence_fd); kfree(done_fence); } }