|
Takashi Iwai |
b841b8 |
From 3630901933afba1d16c462b04d569b7576339223 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
b841b8 |
From: Ricardo Ribalda <ribalda@chromium.org>
|
|
Takashi Iwai |
b841b8 |
Date: Mon, 15 Mar 2021 13:34:05 +0100
|
|
Takashi Iwai |
b841b8 |
Subject: [PATCH] media: staging/intel-ipu3: Fix memory leak in imu_fmt
|
|
Takashi Iwai |
b841b8 |
Git-commit: 3630901933afba1d16c462b04d569b7576339223
|
|
Takashi Iwai |
b841b8 |
Patch-mainline: v5.13-rc1
|
|
Takashi Iwai |
b841b8 |
References: git-fixes
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
We are losing the reference to an allocated memory if try. Change the
|
|
Takashi Iwai |
b841b8 |
order of the check to avoid that.
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
Cc: stable@vger.kernel.org
|
|
Takashi Iwai |
b841b8 |
Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
|
|
Takashi Iwai |
b841b8 |
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
|
|
Takashi Iwai |
b841b8 |
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
|
|
Takashi Iwai |
b841b8 |
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
Takashi Iwai |
b841b8 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
---
|
|
Takashi Iwai |
b841b8 |
drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
|
|
Takashi Iwai |
b841b8 |
1 file changed, 7 insertions(+), 4 deletions(-)
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
|
|
Takashi Iwai |
b841b8 |
index e8944e489c56..9e8980b34547 100644
|
|
Takashi Iwai |
b841b8 |
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
|
|
Takashi Iwai |
b841b8 |
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
|
|
Takashi Iwai |
b841b8 |
@@ -694,6 +694,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
|
|
Takashi Iwai |
b841b8 |
if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
|
|
Takashi Iwai |
b841b8 |
continue;
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
+ /* CSS expects some format on OUT queue */
|
|
Takashi Iwai |
b841b8 |
+ if (i != IPU3_CSS_QUEUE_OUT &&
|
|
Takashi Iwai |
b841b8 |
+ !imgu_pipe->nodes[inode].enabled) {
|
|
Takashi Iwai |
b841b8 |
+ fmts[i] = NULL;
|
|
Takashi Iwai |
b841b8 |
+ continue;
|
|
Takashi Iwai |
b841b8 |
+ }
|
|
Takashi Iwai |
b841b8 |
+
|
|
Takashi Iwai |
b841b8 |
if (try) {
|
|
Takashi Iwai |
b841b8 |
fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
|
|
Takashi Iwai |
b841b8 |
sizeof(struct v4l2_pix_format_mplane),
|
|
Takashi Iwai |
b841b8 |
@@ -706,10 +713,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
|
|
Takashi Iwai |
b841b8 |
fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
|
|
Takashi Iwai |
b841b8 |
}
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
- /* CSS expects some format on OUT queue */
|
|
Takashi Iwai |
b841b8 |
- if (i != IPU3_CSS_QUEUE_OUT &&
|
|
Takashi Iwai |
b841b8 |
- !imgu_pipe->nodes[inode].enabled)
|
|
Takashi Iwai |
b841b8 |
- fmts[i] = NULL;
|
|
Takashi Iwai |
b841b8 |
}
|
|
Takashi Iwai |
b841b8 |
|
|
Takashi Iwai |
b841b8 |
if (!try) {
|
|
Takashi Iwai |
b841b8 |
--
|
|
Takashi Iwai |
b841b8 |
2.26.2
|
|
Takashi Iwai |
b841b8 |
|