* [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-03-15 12:34 ` Ricardo Ribalda
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-15 12:34 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, linux-media, devel,
linux-kernel
Cc: Ricardo Ribalda, stable
We are losing the reference to an allocated memory if try. Change the
order of the check to avoid that.
Cc: stable@vger.kernel.org
Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
index 60aa02eb7d2a..35a74d99322f 100644
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
@@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
continue;
+ /* CSS expects some format on OUT queue */
+ if (i != IPU3_CSS_QUEUE_OUT &&
+ !imgu_pipe->nodes[inode].enabled) {
+ fmts[i] = NULL;
+ continue;
+ }
+
if (try) {
fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
sizeof(struct v4l2_pix_format_mplane),
@@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
}
- /* CSS expects some format on OUT queue */
- if (i != IPU3_CSS_QUEUE_OUT &&
- !imgu_pipe->nodes[inode].enabled)
- fmts[i] = NULL;
}
if (!try) {
--
2.31.0.rc2.261.g7f71774620-goog
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-03-15 12:34 ` Ricardo Ribalda
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-15 12:34 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, linux-media, devel,
linux-kernel
Cc: stable, Ricardo Ribalda
We are losing the reference to an allocated memory if try. Change the
order of the check to avoid that.
Cc: stable@vger.kernel.org
Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
index 60aa02eb7d2a..35a74d99322f 100644
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
@@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
continue;
+ /* CSS expects some format on OUT queue */
+ if (i != IPU3_CSS_QUEUE_OUT &&
+ !imgu_pipe->nodes[inode].enabled) {
+ fmts[i] = NULL;
+ continue;
+ }
+
if (try) {
fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
sizeof(struct v4l2_pix_format_mplane),
@@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
}
- /* CSS expects some format on OUT queue */
- if (i != IPU3_CSS_QUEUE_OUT &&
- !imgu_pipe->nodes[inode].enabled)
- fmts[i] = NULL;
}
if (!try) {
--
2.31.0.rc2.261.g7f71774620-goog
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] media: staging/intel-ipu3: Fix set_fmt error handling
2021-03-15 12:34 ` Ricardo Ribalda
@ 2021-03-15 12:34 ` Ricardo Ribalda
-1 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-15 12:34 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, linux-media, devel,
linux-kernel
Cc: Ricardo Ribalda, stable
If there in an error during a set_fmt, do not overwrite the previous
sizes with the invalid config.
[ 38.662975] ipu3-imgu 0000:00:05.0: swiotlb buffer is full (sz: 4096 bytes)
[ 38.662980] DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:00:05.0
[ 38.663010] general protection fault: 0000 [#1] PREEMPT SMP
Cc: stable@vger.kernel.org
Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/staging/media/ipu3/ipu3-v4l2.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
index 35a74d99322f..6d9c49b39531 100644
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
@@ -686,6 +686,7 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
dev_dbg(dev, "IPU3 pipe %u pipe_id = %u", pipe, css_pipe->pipe_id);
+ css_q = imgu_node_to_queue(node);
for (i = 0; i < IPU3_CSS_QUEUES; i++) {
unsigned int inode = imgu_map_node(imgu, i);
@@ -700,6 +701,11 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
continue;
}
+ if (i == css_q) {
+ fmts[i] = &f->fmt.pix_mp;
+ continue;
+ }
+
if (try) {
fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
sizeof(struct v4l2_pix_format_mplane),
@@ -728,16 +734,10 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
rects[IPU3_CSS_RECT_GDC]->height = pad_fmt.height;
}
- /*
- * imgu doesn't set the node to the value given by user
- * before we return success from this function, so set it here.
- */
- css_q = imgu_node_to_queue(node);
if (!fmts[css_q]) {
ret = -EINVAL;
goto out;
}
- *fmts[css_q] = f->fmt.pix_mp;
if (try)
ret = imgu_css_fmt_try(&imgu->css, fmts, rects, pipe);
@@ -748,15 +748,18 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
if (ret < 0)
goto out;
- if (try)
- f->fmt.pix_mp = *fmts[css_q];
- else
- f->fmt = imgu_pipe->nodes[node].vdev_fmt.fmt;
+ /*
+ * imgu doesn't set the node to the value given by user
+ * before we return success from this function, so set it here.
+ */
+ if (!try)
+ imgu_pipe->nodes[node].vdev_fmt.fmt.pix_mp = f->fmt.pix_mp;
out:
if (try) {
for (i = 0; i < IPU3_CSS_QUEUES; i++)
- kfree(fmts[i]);
+ if (i != css_q)
+ kfree(fmts[i]);
}
return ret;
--
2.31.0.rc2.261.g7f71774620-goog
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] media: staging/intel-ipu3: Fix set_fmt error handling
@ 2021-03-15 12:34 ` Ricardo Ribalda
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-15 12:34 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, linux-media, devel,
linux-kernel
Cc: stable, Ricardo Ribalda
If there in an error during a set_fmt, do not overwrite the previous
sizes with the invalid config.
[ 38.662975] ipu3-imgu 0000:00:05.0: swiotlb buffer is full (sz: 4096 bytes)
[ 38.662980] DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:00:05.0
[ 38.663010] general protection fault: 0000 [#1] PREEMPT SMP
Cc: stable@vger.kernel.org
Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/staging/media/ipu3/ipu3-v4l2.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
index 35a74d99322f..6d9c49b39531 100644
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
@@ -686,6 +686,7 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
dev_dbg(dev, "IPU3 pipe %u pipe_id = %u", pipe, css_pipe->pipe_id);
+ css_q = imgu_node_to_queue(node);
for (i = 0; i < IPU3_CSS_QUEUES; i++) {
unsigned int inode = imgu_map_node(imgu, i);
@@ -700,6 +701,11 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
continue;
}
+ if (i == css_q) {
+ fmts[i] = &f->fmt.pix_mp;
+ continue;
+ }
+
if (try) {
fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
sizeof(struct v4l2_pix_format_mplane),
@@ -728,16 +734,10 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
rects[IPU3_CSS_RECT_GDC]->height = pad_fmt.height;
}
- /*
- * imgu doesn't set the node to the value given by user
- * before we return success from this function, so set it here.
- */
- css_q = imgu_node_to_queue(node);
if (!fmts[css_q]) {
ret = -EINVAL;
goto out;
}
- *fmts[css_q] = f->fmt.pix_mp;
if (try)
ret = imgu_css_fmt_try(&imgu->css, fmts, rects, pipe);
@@ -748,15 +748,18 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
if (ret < 0)
goto out;
- if (try)
- f->fmt.pix_mp = *fmts[css_q];
- else
- f->fmt = imgu_pipe->nodes[node].vdev_fmt.fmt;
+ /*
+ * imgu doesn't set the node to the value given by user
+ * before we return success from this function, so set it here.
+ */
+ if (!try)
+ imgu_pipe->nodes[node].vdev_fmt.fmt.pix_mp = f->fmt.pix_mp;
out:
if (try) {
for (i = 0; i < IPU3_CSS_QUEUES; i++)
- kfree(fmts[i]);
+ if (i != css_q)
+ kfree(fmts[i]);
}
return ret;
--
2.31.0.rc2.261.g7f71774620-goog
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
2021-03-15 12:34 ` Ricardo Ribalda
@ 2021-03-16 11:27 ` Bingbu Cao
-1 siblings, 0 replies; 14+ messages in thread
From: Bingbu Cao @ 2021-03-16 11:27 UTC (permalink / raw)
To: Ricardo Ribalda, Sakari Ailus, Bingbu Cao, Tianshu Qiu,
Mauro Carvalho Chehab, Greg Kroah-Hartman, Arnd Bergmann,
linux-media, devel, linux-kernel
Cc: stable
Hi, Ricardo
Thanks for your patch.
It looks fine for me, do you mind squash 2 patchsets into 1 commit?
On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> We are losing the reference to an allocated memory if try. Change the
> order of the check to avoid that.
>
> Cc: stable@vger.kernel.org
> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> ---
> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> index 60aa02eb7d2a..35a74d99322f 100644
> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> continue;
>
> + /* CSS expects some format on OUT queue */
> + if (i != IPU3_CSS_QUEUE_OUT &&
> + !imgu_pipe->nodes[inode].enabled) {
> + fmts[i] = NULL;
> + continue;
> + }
> +
> if (try) {
> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> sizeof(struct v4l2_pix_format_mplane),
> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> }
>
> - /* CSS expects some format on OUT queue */
> - if (i != IPU3_CSS_QUEUE_OUT &&
> - !imgu_pipe->nodes[inode].enabled)
> - fmts[i] = NULL;
> }
>
> if (!try) {
>
--
Best regards,
Bingbu Cao
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-03-16 11:27 ` Bingbu Cao
0 siblings, 0 replies; 14+ messages in thread
From: Bingbu Cao @ 2021-03-16 11:27 UTC (permalink / raw)
To: Ricardo Ribalda, Sakari Ailus, Bingbu Cao, Tianshu Qiu,
Mauro Carvalho Chehab, Greg Kroah-Hartman, Arnd Bergmann,
linux-media, devel, linux-kernel
Cc: stable
Hi, Ricardo
Thanks for your patch.
It looks fine for me, do you mind squash 2 patchsets into 1 commit?
On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> We are losing the reference to an allocated memory if try. Change the
> order of the check to avoid that.
>
> Cc: stable@vger.kernel.org
> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> ---
> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> index 60aa02eb7d2a..35a74d99322f 100644
> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> continue;
>
> + /* CSS expects some format on OUT queue */
> + if (i != IPU3_CSS_QUEUE_OUT &&
> + !imgu_pipe->nodes[inode].enabled) {
> + fmts[i] = NULL;
> + continue;
> + }
> +
> if (try) {
> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> sizeof(struct v4l2_pix_format_mplane),
> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> }
>
> - /* CSS expects some format on OUT queue */
> - if (i != IPU3_CSS_QUEUE_OUT &&
> - !imgu_pipe->nodes[inode].enabled)
> - fmts[i] = NULL;
> }
>
> if (!try) {
>
--
Best regards,
Bingbu Cao
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
2021-03-16 11:27 ` Bingbu Cao
@ 2021-03-16 17:50 ` Ricardo Ribalda
-1 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-16 17:50 UTC (permalink / raw)
To: Bingbu Cao
Cc: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, Linux Media Mailing List,
devel, Linux Kernel Mailing List, stable
Hi Bingbu
Thanks for your review
On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>
> Hi, Ricardo
>
> Thanks for your patch.
> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
Are you sure? There are two different issues that we are solving.
Best regards!
>
> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> > We are losing the reference to an allocated memory if try. Change the
> > order of the check to avoid that.
> >
> > Cc: stable@vger.kernel.org
> > Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> > ---
> > drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > index 60aa02eb7d2a..35a74d99322f 100644
> > --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> > +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> > if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> > continue;
> >
> > + /* CSS expects some format on OUT queue */
> > + if (i != IPU3_CSS_QUEUE_OUT &&
> > + !imgu_pipe->nodes[inode].enabled) {
> > + fmts[i] = NULL;
> > + continue;
> > + }
> > +
> > if (try) {
> > fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> > sizeof(struct v4l2_pix_format_mplane),
> > @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> > fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> > }
> >
> > - /* CSS expects some format on OUT queue */
> > - if (i != IPU3_CSS_QUEUE_OUT &&
> > - !imgu_pipe->nodes[inode].enabled)
> > - fmts[i] = NULL;
> > }
> >
> > if (!try) {
> >
>
> --
> Best regards,
> Bingbu Cao
--
Ricardo Ribalda
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-03-16 17:50 ` Ricardo Ribalda
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-03-16 17:50 UTC (permalink / raw)
To: Bingbu Cao
Cc: devel, Arnd Bergmann, Greg Kroah-Hartman,
Linux Kernel Mailing List, stable, Sakari Ailus, Bingbu Cao,
Mauro Carvalho Chehab, Tianshu Qiu, Linux Media Mailing List
Hi Bingbu
Thanks for your review
On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>
> Hi, Ricardo
>
> Thanks for your patch.
> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
Are you sure? There are two different issues that we are solving.
Best regards!
>
> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> > We are losing the reference to an allocated memory if try. Change the
> > order of the check to avoid that.
> >
> > Cc: stable@vger.kernel.org
> > Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> > ---
> > drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > index 60aa02eb7d2a..35a74d99322f 100644
> > --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> > +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> > @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> > if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> > continue;
> >
> > + /* CSS expects some format on OUT queue */
> > + if (i != IPU3_CSS_QUEUE_OUT &&
> > + !imgu_pipe->nodes[inode].enabled) {
> > + fmts[i] = NULL;
> > + continue;
> > + }
> > +
> > if (try) {
> > fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> > sizeof(struct v4l2_pix_format_mplane),
> > @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> > fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> > }
> >
> > - /* CSS expects some format on OUT queue */
> > - if (i != IPU3_CSS_QUEUE_OUT &&
> > - !imgu_pipe->nodes[inode].enabled)
> > - fmts[i] = NULL;
> > }
> >
> > if (!try) {
> >
>
> --
> Best regards,
> Bingbu Cao
--
Ricardo Ribalda
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
2021-03-16 17:50 ` Ricardo Ribalda
@ 2021-03-17 6:47 ` Bingbu Cao
-1 siblings, 0 replies; 14+ messages in thread
From: Bingbu Cao @ 2021-03-17 6:47 UTC (permalink / raw)
To: Ricardo Ribalda
Cc: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, Linux Media Mailing List,
devel, Linux Kernel Mailing List, stable
On 3/17/21 1:50 AM, Ricardo Ribalda wrote:
> Hi Bingbu
>
> Thanks for your review
>
> On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>>
>> Hi, Ricardo
>>
>> Thanks for your patch.
>> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
>
> Are you sure? There are two different issues that we are solving.
Oh, I see. I thought you were fixing 1 issue here.
Thanks!
>
> Best regards!
>
>>
>> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
>>> We are losing the reference to an allocated memory if try. Change the
>>> order of the check to avoid that.
>>>
>>> Cc: stable@vger.kernel.org
>>> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
>>> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
>>> ---
>>> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
>>> 1 file changed, 7 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> index 60aa02eb7d2a..35a74d99322f 100644
>>> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
>>> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
>>> continue;
>>>
>>> + /* CSS expects some format on OUT queue */
>>> + if (i != IPU3_CSS_QUEUE_OUT &&
>>> + !imgu_pipe->nodes[inode].enabled) {
>>> + fmts[i] = NULL;
>>> + continue;
>>> + }
>>> +
>>> if (try) {
>>> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
>>> sizeof(struct v4l2_pix_format_mplane),
>>> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
>>> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
>>> }
>>>
>>> - /* CSS expects some format on OUT queue */
>>> - if (i != IPU3_CSS_QUEUE_OUT &&
>>> - !imgu_pipe->nodes[inode].enabled)
>>> - fmts[i] = NULL;
>>> }
>>>
>>> if (!try) {
>>>
>>
>> --
>> Best regards,
>> Bingbu Cao
>
>
>
--
Best regards,
Bingbu Cao
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-03-17 6:47 ` Bingbu Cao
0 siblings, 0 replies; 14+ messages in thread
From: Bingbu Cao @ 2021-03-17 6:47 UTC (permalink / raw)
To: Ricardo Ribalda
Cc: devel, Arnd Bergmann, Greg Kroah-Hartman,
Linux Kernel Mailing List, stable, Sakari Ailus, Bingbu Cao,
Mauro Carvalho Chehab, Tianshu Qiu, Linux Media Mailing List
On 3/17/21 1:50 AM, Ricardo Ribalda wrote:
> Hi Bingbu
>
> Thanks for your review
>
> On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>>
>> Hi, Ricardo
>>
>> Thanks for your patch.
>> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
>
> Are you sure? There are two different issues that we are solving.
Oh, I see. I thought you were fixing 1 issue here.
Thanks!
>
> Best regards!
>
>>
>> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
>>> We are losing the reference to an allocated memory if try. Change the
>>> order of the check to avoid that.
>>>
>>> Cc: stable@vger.kernel.org
>>> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
>>> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
>>> ---
>>> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
>>> 1 file changed, 7 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> index 60aa02eb7d2a..35a74d99322f 100644
>>> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
>>> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
>>> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
>>> continue;
>>>
>>> + /* CSS expects some format on OUT queue */
>>> + if (i != IPU3_CSS_QUEUE_OUT &&
>>> + !imgu_pipe->nodes[inode].enabled) {
>>> + fmts[i] = NULL;
>>> + continue;
>>> + }
>>> +
>>> if (try) {
>>> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
>>> sizeof(struct v4l2_pix_format_mplane),
>>> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
>>> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
>>> }
>>>
>>> - /* CSS expects some format on OUT queue */
>>> - if (i != IPU3_CSS_QUEUE_OUT &&
>>> - !imgu_pipe->nodes[inode].enabled)
>>> - fmts[i] = NULL;
>>> }
>>>
>>> if (!try) {
>>>
>>
>> --
>> Best regards,
>> Bingbu Cao
>
>
>
--
Best regards,
Bingbu Cao
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
2021-03-17 6:47 ` Bingbu Cao
@ 2021-04-06 13:29 ` Ricardo Ribalda
-1 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-04-06 13:29 UTC (permalink / raw)
To: Bingbu Cao
Cc: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, Linux Media Mailing List,
devel, Linux Kernel Mailing List, stable
Hi Bingbu
Maybe you want to add your Reviewed-by ? ;)
Thanks!
On Wed, Mar 17, 2021 at 7:48 AM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>
>
> On 3/17/21 1:50 AM, Ricardo Ribalda wrote:
> > Hi Bingbu
> >
> > Thanks for your review
> >
> > On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
> >>
> >> Hi, Ricardo
> >>
> >> Thanks for your patch.
> >> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
> >
> > Are you sure? There are two different issues that we are solving.
>
> Oh, I see. I thought you were fixing 1 issue here.
> Thanks!
>
> >
> > Best regards!
> >
> >>
> >> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> >>> We are losing the reference to an allocated memory if try. Change the
> >>> order of the check to avoid that.
> >>>
> >>> Cc: stable@vger.kernel.org
> >>> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> >>> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> >>> ---
> >>> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> >>> 1 file changed, 7 insertions(+), 4 deletions(-)
> >>>
> >>> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> index 60aa02eb7d2a..35a74d99322f 100644
> >>> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> >>> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> >>> continue;
> >>>
> >>> + /* CSS expects some format on OUT queue */
> >>> + if (i != IPU3_CSS_QUEUE_OUT &&
> >>> + !imgu_pipe->nodes[inode].enabled) {
> >>> + fmts[i] = NULL;
> >>> + continue;
> >>> + }
> >>> +
> >>> if (try) {
> >>> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> >>> sizeof(struct v4l2_pix_format_mplane),
> >>> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> >>> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> >>> }
> >>>
> >>> - /* CSS expects some format on OUT queue */
> >>> - if (i != IPU3_CSS_QUEUE_OUT &&
> >>> - !imgu_pipe->nodes[inode].enabled)
> >>> - fmts[i] = NULL;
> >>> }
> >>>
> >>> if (!try) {
> >>>
> >>
> >> --
> >> Best regards,
> >> Bingbu Cao
> >
> >
> >
>
> --
> Best regards,
> Bingbu Cao
--
Ricardo Ribalda
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt
@ 2021-04-06 13:29 ` Ricardo Ribalda
0 siblings, 0 replies; 14+ messages in thread
From: Ricardo Ribalda @ 2021-04-06 13:29 UTC (permalink / raw)
To: Bingbu Cao
Cc: devel, Arnd Bergmann, Greg Kroah-Hartman,
Linux Kernel Mailing List, stable, Sakari Ailus, Bingbu Cao,
Mauro Carvalho Chehab, Tianshu Qiu, Linux Media Mailing List
Hi Bingbu
Maybe you want to add your Reviewed-by ? ;)
Thanks!
On Wed, Mar 17, 2021 at 7:48 AM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
>
>
> On 3/17/21 1:50 AM, Ricardo Ribalda wrote:
> > Hi Bingbu
> >
> > Thanks for your review
> >
> > On Tue, Mar 16, 2021 at 12:29 PM Bingbu Cao <bingbu.cao@linux.intel.com> wrote:
> >>
> >> Hi, Ricardo
> >>
> >> Thanks for your patch.
> >> It looks fine for me, do you mind squash 2 patchsets into 1 commit?
> >
> > Are you sure? There are two different issues that we are solving.
>
> Oh, I see. I thought you were fixing 1 issue here.
> Thanks!
>
> >
> > Best regards!
> >
> >>
> >> On 3/15/21 8:34 PM, Ricardo Ribalda wrote:
> >>> We are losing the reference to an allocated memory if try. Change the
> >>> order of the check to avoid that.
> >>>
> >>> Cc: stable@vger.kernel.org
> >>> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> >>> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> >>> ---
> >>> drivers/staging/media/ipu3/ipu3-v4l2.c | 11 +++++++----
> >>> 1 file changed, 7 insertions(+), 4 deletions(-)
> >>>
> >>> diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> index 60aa02eb7d2a..35a74d99322f 100644
> >>> --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
> >>> @@ -693,6 +693,13 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> >>> if (inode == IMGU_NODE_STAT_3A || inode == IMGU_NODE_PARAMS)
> >>> continue;
> >>>
> >>> + /* CSS expects some format on OUT queue */
> >>> + if (i != IPU3_CSS_QUEUE_OUT &&
> >>> + !imgu_pipe->nodes[inode].enabled) {
> >>> + fmts[i] = NULL;
> >>> + continue;
> >>> + }
> >>> +
> >>> if (try) {
> >>> fmts[i] = kmemdup(&imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp,
> >>> sizeof(struct v4l2_pix_format_mplane),
> >>> @@ -705,10 +712,6 @@ static int imgu_fmt(struct imgu_device *imgu, unsigned int pipe, int node,
> >>> fmts[i] = &imgu_pipe->nodes[inode].vdev_fmt.fmt.pix_mp;
> >>> }
> >>>
> >>> - /* CSS expects some format on OUT queue */
> >>> - if (i != IPU3_CSS_QUEUE_OUT &&
> >>> - !imgu_pipe->nodes[inode].enabled)
> >>> - fmts[i] = NULL;
> >>> }
> >>>
> >>> if (!try) {
> >>>
> >>
> >> --
> >> Best regards,
> >> Bingbu Cao
> >
> >
> >
>
> --
> Best regards,
> Bingbu Cao
--
Ricardo Ribalda
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] media: staging/intel-ipu3: Fix set_fmt error handling
2021-03-15 12:34 ` Ricardo Ribalda
@ 2021-04-09 4:16 ` Tomasz Figa
-1 siblings, 0 replies; 14+ messages in thread
From: Tomasz Figa @ 2021-04-09 4:16 UTC (permalink / raw)
To: Ricardo Ribalda
Cc: Sakari Ailus, Bingbu Cao, Tianshu Qiu, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Arnd Bergmann, linux-media, devel,
linux-kernel, stable
On Mon, Mar 15, 2021 at 01:34:06PM +0100, Ricardo Ribalda wrote:
> If there in an error during a set_fmt, do not overwrite the previous
> sizes with the invalid config.
>
> [ 38.662975] ipu3-imgu 0000:00:05.0: swiotlb buffer is full (sz: 4096 bytes)
> [ 38.662980] DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:00:05.0
> [ 38.663010] general protection fault: 0000 [#1] PREEMPT SMP
>
> Cc: stable@vger.kernel.org
> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> ---
> drivers/staging/media/ipu3/ipu3-v4l2.c | 25 ++++++++++++++-----------
> 1 file changed, 14 insertions(+), 11 deletions(-)
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] media: staging/intel-ipu3: Fix set_fmt error handling
@ 2021-04-09 4:16 ` Tomasz Figa
0 siblings, 0 replies; 14+ messages in thread
From: Tomasz Figa @ 2021-04-09 4:16 UTC (permalink / raw)
To: Ricardo Ribalda
Cc: devel, Arnd Bergmann, Greg Kroah-Hartman, linux-kernel, stable,
Sakari Ailus, Bingbu Cao, Mauro Carvalho Chehab, Tianshu Qiu,
linux-media
On Mon, Mar 15, 2021 at 01:34:06PM +0100, Ricardo Ribalda wrote:
> If there in an error during a set_fmt, do not overwrite the previous
> sizes with the invalid config.
>
> [ 38.662975] ipu3-imgu 0000:00:05.0: swiotlb buffer is full (sz: 4096 bytes)
> [ 38.662980] DMA: Out of SW-IOMMU space for 4096 bytes at device 0000:00:05.0
> [ 38.663010] general protection fault: 0000 [#1] PREEMPT SMP
>
> Cc: stable@vger.kernel.org
> Fixes: 6d5f26f2e045 ("media: staging/intel-ipu3-v4l: reduce kernel stack usage")
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> ---
> drivers/staging/media/ipu3/ipu3-v4l2.c | 25 ++++++++++++++-----------
> 1 file changed, 14 insertions(+), 11 deletions(-)
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Best regards,
Tomasz
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2021-04-09 4:17 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-15 12:34 [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt Ricardo Ribalda
2021-03-15 12:34 ` Ricardo Ribalda
2021-03-15 12:34 ` [PATCH v2 2/2] media: staging/intel-ipu3: Fix set_fmt error handling Ricardo Ribalda
2021-03-15 12:34 ` Ricardo Ribalda
2021-04-09 4:16 ` Tomasz Figa
2021-04-09 4:16 ` Tomasz Figa
2021-03-16 11:27 ` [PATCH v2 1/2] media: staging/intel-ipu3: Fix memory leak in imu_fmt Bingbu Cao
2021-03-16 11:27 ` Bingbu Cao
2021-03-16 17:50 ` Ricardo Ribalda
2021-03-16 17:50 ` Ricardo Ribalda
2021-03-17 6:47 ` Bingbu Cao
2021-03-17 6:47 ` Bingbu Cao
2021-04-06 13:29 ` Ricardo Ribalda
2021-04-06 13:29 ` Ricardo Ribalda
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.