Re: [PATCH 1/7] media: mc: Check pad flag validity

Jacopo Mondi
2023-07-03T07:53:41Z

Hi Sakari

On Fri, Jun 30, 2023 at 11:43:32PM +0300, Sakari Ailus wrote:
> Check the validity of pad flags on entity init. Exactly one of the flags
> must be set.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> drivers/media/mc/mc-entity.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
> index 83468d4a440b..4991281dcccc 100644
> --- a/drivers/media/mc/mc-entity.c
> +++ b/drivers/media/mc/mc-entity.c
> @@ -197,6 +197,7 @@ int media_entity_pads_init(struct media_entity *entity, u16 num_pads,
> struct media_device *mdev = entity->graph_obj.mdev;
> struct media_pad *iter;
> unsigned int i = 0;
> + int ret = 0;
>
> if (num_pads >= MEDIA_ENTITY_MAX_PADS)
> return -E2BIG;
> @@ -210,6 +211,14 @@ int media_entity_pads_init(struct media_entity *entity, u16 num_pads,
> media_entity_for_each_pad(entity, iter) {
> iter->entity = entity;
> iter->index = i++;
> +
> + if (hweight32(iter->flags & (MEDIA_PAD_FL_SINK |
> + MEDIA_PAD_FL_SOURCE))
> + != 1) {

Fits on the previous line ?

> + ret = -EINVAL;
> + break;
> + }
> +
> if (mdev)
> media_gobj_create(mdev, MEDIA_GRAPH_PAD,
> &iter->graph_obj);
> @@ -218,7 +227,7 @@ int media_entity_pads_init(struct media_entity *entity, u16 num_pads,
> if (mdev)
> mutex_unlock(&mdev->graph_mutex);
>
> - return 0;
> + return ret;
> }
> EXPORT_SYMBOL_GPL(media_entity_pads_init);
>
> --
> 2.39.2
>