Skip to contentSkip to conversation

FAILED: patch "[PATCH] media: vb2: core: Finish buffers at the end of the stream" failed to apply to 4.14-stable tree

PATCH [email protected] 3 participants 4 messages Apr 19, 2018 – Jul 16, 2018

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 03703ed1debf777ea845aa9b50ba2e80a5e7dd3c Mon Sep 17 00:00:00 2001

From: Sakari Ailus <[email protected]>
Date: Fri, 2 Feb 2018 05:08:59 -0500
Subject: [PATCH] media: vb2: core: Finish buffers at the end of the stream

If buffers were prepared or queued and the buffers were released without starting the queue, the finish mem op (corresponding to the prepare mem op) was never called to the buffers.

Before commit a136f59c0a1f there was no need to do this as in such a case the prepare mem op had not been called yet. Address the problem by explicitly calling finish mem op when the queue is stopped if the buffer is in either prepared or queued state.

Fixes a136f59c0a1f ("[media] vb2: Move buffer cache synchronisation to prepare from queue")
drivers/media/common/videobuf2/videobuf2-core.c +9 -0
index debe35fc66b4..d3f7bb33a54d 100644
@@ -1696,6 +1696,15 @@ static void __vb2_queue_cancel(struct vb2_queue *q)
 	for (i = 0; i < q->num_buffers; ++i) {
 		struct vb2_buffer *vb = q->bufs[i];
 
+		if (vb->state == VB2_BUF_STATE_PREPARED ||
+		    vb->state == VB2_BUF_STATE_QUEUED) {
+			unsigned int plane;
+
+			for (plane = 0; plane < vb->num_planes; ++plane)
+				call_void_memop(vb, finish,
+						vb->planes[plane].mem_priv);
+		}
+
 		if (vb->state != VB2_BUF_STATE_DEQUEUED) {
 			vb->state = VB2_BUF_STATE_PREPARED;
 			call_void_vb_qop(vb, buf_finish, vb);
Tested-by Devin Heitmueller
#1 lore raw

Hi Greg,

Quoted 5 lines · On Thu, Apr 19, 2018 at 06:23:24PM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

The attached backported patch should now apply to v4.14-stable. Backported by changing the path of the file. It was in a different location in v4.14.x

--
Regards
Sudip

Quoted 1 line

From ce5c56f886a88d6bcddcfaaa9ced7de5f8c86ece Mon Sep 17 00:00:00 2001

From: Sakari Ailus <[email protected]>
Date: Fri, 2 Feb 2018 05:08:59 -0500
Subject: [PATCH] media: vb2: core: Finish buffers at the end of the stream

commit 03703ed1debf777ea845aa9b50ba2e80a5e7dd3c upstream

If buffers were prepared or queued and the buffers were released without starting the queue, the finish mem op (corresponding to the prepare mem op) was never called to the buffers.

Before commit a136f59c0a1f there was no need to do this as in such a case the prepare mem op had not been called yet. Address the problem by explicitly calling finish mem op when the queue is stopped if the buffer is in either prepared or queued state.

Fixes a136f59c0a1f ("[media] vb2: Move buffer cache synchronisation to prepare from queue")
---
 drivers/media/v4l2-core/videobuf2-core.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/media/v4l2-core/videobuf2-core.c +9 -0
index 6d9adcaa26ba..ffbb178c6918 100644
@@ -1689,6 +1689,15 @@ static void __vb2_queue_cancel(struct vb2_queue *q)
 	for (i = 0; i < q->num_buffers; ++i) {
 		struct vb2_buffer *vb = q->bufs[i];
 
+		if (vb->state == VB2_BUF_STATE_PREPARED ||
+		    vb->state == VB2_BUF_STATE_QUEUED) {
+			unsigned int plane;
+
+			for (plane = 0; plane < vb->num_planes; ++plane)
+				call_void_memop(vb, finish,
+						vb->planes[plane].mem_priv);
+		}
+
 		if (vb->state != VB2_BUF_STATE_DEQUEUED) {
 			vb->state = VB2_BUF_STATE_PREPARED;
 			call_void_vb_qop(vb, buf_finish, vb);
Signature · 1 line
2.11.0
author maintainer
#2 lore raw
Quoted 4 lines · Sudip Mukherjee

Hi Greg,

Quoted 1 line · On Thu, Apr 19, 2018 at 06:23:24PM +0200, [email protected] wrote:
Quoted 8 lines
Quoted 4 lines

The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

The attached backported patch should now apply to v4.14-stable. Backported by changing the path of the file. It was in a different location in v4.14.x

Ah, I should have caught that, thanks for the backport, now applied.

greg k-h

#3 lore raw
Quoted 10 lines · Greg KH
Quoted 9 lines · Sudip Mukherjee

Hi Greg,

Quoted 5 lines · On Thu, Apr 19, 2018 at 06:23:24PM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

Quoted 5 lines
Quoted 3 lines

The attached backported patch should now apply to v4.14-stable. Backported by changing the path of the file. It was in a different location in v4.14.x

Ah, I should have caught that, thanks for the backport, now applied.

Thanks a lot!

Signature · 2 lines
Sakari Ailus
[email protected]