All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	niklas.soderlund+renesas@ragnatech.se,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Kishon Vijay Abraham <kishon@ti.com>,
	satish.nagireddy@getcruise.com, Tomasz Figa <tfiga@chromium.org>
Subject: Re: [PATCH v14 22/34] media: subdev: add v4l2_subdev_set_routing helper()
Date: Mon, 26 Sep 2022 08:56:29 +0300	[thread overview]
Message-ID: <2188d722-e241-f913-7dc0-0b8eee0ae86c@ideasonboard.com> (raw)
In-Reply-To: <YzA66QYWk6AX8KoJ@paasikivi.fi.intel.com>

On 25/09/2022 14:26, Sakari Ailus wrote:
> Moi,
> 
> On Wed, Aug 31, 2022 at 05:13:45PM +0300, Tomi Valkeinen wrote:
>> Add a helper function to set the subdev routing. The helper can be used
>> from subdev driver's set_routing op to store the routing table.
>>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>> Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
>> ---
>>   drivers/media/v4l2-core/v4l2-subdev.c | 28 +++++++++++++++++++++++++++
>>   include/media/v4l2-subdev.h           | 16 +++++++++++++++
>>   2 files changed, 44 insertions(+)
>>
>> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
>> index 1ce9a7dc0c6e..f3f872c72180 100644
>> --- a/drivers/media/v4l2-core/v4l2-subdev.c
>> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
>> @@ -1180,6 +1180,34 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state,
>>   }
>>   EXPORT_SYMBOL_GPL(v4l2_subdev_get_fmt);
>>   
>> +int v4l2_subdev_set_routing(struct v4l2_subdev *sd,
>> +			    struct v4l2_subdev_state *state,
>> +			    const struct v4l2_subdev_krouting *routing)
>> +{
>> +	struct v4l2_subdev_krouting *dst = &state->routing;
>> +	const struct v4l2_subdev_krouting *src = routing;
>> +	struct v4l2_subdev_krouting new_routing = { 0 };
>> +
>> +	lockdep_assert_held(state->lock);
>> +
>> +	if (src->num_routes > 0) {
>> +		new_routing.routes = kmemdup(src->routes,
>> +			src->num_routes * sizeof(*src->routes),
> 
> This can overflow.

Right. In practice it won't happen as the num_routes has been limited to 
256, but no harm to check for overflow here.

  Tomi

  reply	other threads:[~2022-09-26  5:56 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-31 14:13 [PATCH v14 00/34] Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 01/34] media: Documentation: mc: add definitions for stream and pipeline Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 02/34] media: media-entity.h: add include for min() Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 03/34] media: subdev: increase V4L2_FRAME_DESC_ENTRY_MAX to 8 Tomi Valkeinen
2022-09-29  6:48   ` Bingbu Cao
2022-10-03 11:32     ` Tomi Valkeinen
2022-10-13  7:31       ` Bingbu Cao
2022-08-31 14:13 ` [PATCH v14 04/34] media: mc: entity: Rename streaming_count -> start_count Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 05/34] media: mc: entity: Add iterator helper for entity pads Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 06/34] media: mc: entity: Merge media_entity_enum_init and __media_entity_enum_init Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 07/34] media: mc: entity: Move media_entity_get_fwnode_pad() out of graph walk section Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 08/34] media: mc: entity: Add media_entity_pipeline() to access the media pipeline Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 09/34] media: v4l2-dev: Add videodev wrappers for media pipelines Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 10/34] media: drivers: use video device pipeline start/stop Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 11/34] media: drivers: use video_device_pipeline() Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 12/34] media: mc: entity: add alloc variant of pipeline_start Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 13/34] media: drivers: use video_device_pipeline_alloc_start() Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 14/34] media: mc: entity: Rewrite media_pipeline_start() Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 15/34] media: mc: entity: Add has_pad_interdep entity operation Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 16/34] media: mc: convert pipeline funcs to take media_pad Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 17/34] media: add V4L2_SUBDEV_FL_STREAMS Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 18/34] media: add V4L2_SUBDEV_CAP_STREAMS Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 19/34] media: Documentation: Add GS_ROUTING documentation Tomi Valkeinen
2022-09-27  5:59   ` Sakari Ailus
2022-09-27  9:32     ` Tomi Valkeinen
2022-09-27 10:23       ` Sakari Ailus
2022-09-27 12:33         ` Tomi Valkeinen
2022-09-27 21:13           ` Sakari Ailus
2022-09-28  7:54             ` Tomi Valkeinen
2022-09-30 11:21               ` Sakari Ailus
2022-09-30 12:10                 ` Tomi Valkeinen
2022-09-30 12:33                   ` Sakari Ailus
2022-08-31 14:13 ` [PATCH v14 20/34] media: subdev: Add [GS]_ROUTING subdev ioctls and operations Tomi Valkeinen
2022-09-30 11:05   ` Sakari Ailus
2022-09-30 11:22     ` Tomi Valkeinen
2022-09-30 12:34       ` Sakari Ailus
2022-08-31 14:13 ` [PATCH v14 21/34] media: subdev: add v4l2_subdev_has_pad_interdep() Tomi Valkeinen
2022-09-23  9:50   ` Sakari Ailus
2022-08-31 14:13 ` [PATCH v14 22/34] media: subdev: add v4l2_subdev_set_routing helper() Tomi Valkeinen
2022-09-25 11:26   ` Sakari Ailus
2022-09-26  5:56     ` Tomi Valkeinen [this message]
2022-08-31 14:13 ` [PATCH v14 23/34] media: subdev: Add for_each_active_route() macro Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 24/34] media: Documentation: add multiplexed streams documentation Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 25/34] media: subdev: add stream based configuration Tomi Valkeinen
2022-08-31 18:04   ` Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 26/34] media: subdev: use streams in v4l2_subdev_link_validate() Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 27/34] media: subdev: add "opposite" stream helper funcs Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 28/34] media: subdev: add streams to v4l2_subdev_get_fmt() helper function Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 29/34] media: subdev: add v4l2_subdev_set_routing_with_fmt() helper Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 30/34] media: subdev: add v4l2_subdev_routing_validate() helper Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 31/34] media: v4l2-subdev: Add v4l2_subdev_state_xlate_streams() helper Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 32/34] media: v4l2-subdev: Add subdev .(enable|disable)_streams() operations Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 33/34] media: v4l2-subdev: Add v4l2_subdev_s_stream_helper() function Tomi Valkeinen
2022-08-31 14:13 ` [PATCH v14 34/34] media: Add stream to frame descriptor Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2188d722-e241-f913-7dc0-0b8eee0ae86c@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jacopo+renesas@jmondi.org \
    --cc=kishon@ti.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=sakari.ailus@linux.intel.com \
    --cc=satish.nagireddy@getcruise.com \
    --cc=tfiga@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.