Patch "media: mc: Add local pad to pipeline regardless of the link state" has been added to the 6.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    media: mc: Add local pad to pipeline regardless of the link state

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-mc-add-local-pad-to-pipeline-regardless-of-the.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit acc88b0815415f7da19c42117de5d283e5472078
Author: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Date:   Sun Jan 14 15:55:40 2024 +0200

    media: mc: Add local pad to pipeline regardless of the link state
    
    [ Upstream commit 78f0daa026d4c5e192d31801d1be6caf88250220 ]
    
    When building pipelines by following links, the
    media_pipeline_explore_next_link() function only traverses enabled
    links. The remote pad of a disabled link is not added to the pipeline,
    and neither is the local pad. While the former is correct as disabled
    links should not be followed, not adding the local pad breaks processing
    of the MEDIA_PAD_FL_MUST_CONNECT flag.
    
    The MEDIA_PAD_FL_MUST_CONNECT flag is checked in the
    __media_pipeline_start() function that iterates over all pads after
    populating the pipeline. If the pad is not present, the check gets
    skipped, rendering it useless.
    
    Fix this by adding the local pad of all links regardless of their state,
    only skipping the remote pad for disabled links.
    
    Cc: stable@xxxxxxxxxxxxxxx # 6.1
    Fixes: ae219872834a ("media: mc: entity: Rewrite media_pipeline_start()")
    Reported-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx>
    Closes: https://lore.kernel.org/linux-media/7658a15a-80c5-219f-2477-2a94ba6c6ba1@xxxxxxxxxx
    Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
    Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
index 543a392f86357..a6f28366106fb 100644
--- a/drivers/media/mc/mc-entity.c
+++ b/drivers/media/mc/mc-entity.c
@@ -620,13 +620,6 @@ static int media_pipeline_explore_next_link(struct media_pipeline *pipe,
 		link->source->entity->name, link->source->index,
 		link->sink->entity->name, link->sink->index);
 
-	/* Skip links that are not enabled. */
-	if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
-		dev_dbg(walk->mdev->dev,
-			"media pipeline: skipping link (disabled)\n");
-		return 0;
-	}
-
 	/* Get the local pad and remote pad. */
 	if (link->source->entity == pad->entity) {
 		local = link->source;
@@ -648,13 +641,20 @@ static int media_pipeline_explore_next_link(struct media_pipeline *pipe,
 	}
 
 	/*
-	 * Add the local and remote pads of the link to the pipeline and push
-	 * them to the stack, if they're not already present.
+	 * Add the local pad of the link to the pipeline and push it to the
+	 * stack, if not already present.
 	 */
 	ret = media_pipeline_add_pad(pipe, walk, local);
 	if (ret)
 		return ret;
 
+	/* Similarly, add the remote pad, but only if the link is enabled. */
+	if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
+		dev_dbg(walk->mdev->dev,
+			"media pipeline: skipping link (disabled)\n");
+		return 0;
+	}
+
 	ret = media_pipeline_add_pad(pipe, walk, remote);
 	if (ret)
 		return ret;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux