Re: [PATCH for v5.6] mc-entity.c: use & to check pad flags, not ==

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

 



Hi Hans,

Thank you for the patch.

On Tue, Feb 04, 2020 at 07:19:22PM +0100, Hans Verkuil wrote:
> These are bits so to test if a pad is a sink you use & but not ==.
> 
> It looks like the only reason this hasn't caused problems before is that
> media_get_pad_index() is currently only used with pads that do not set the
> MEDIA_PAD_FL_MUST_CONNECT flag. So a pad really had only the SINK or SOURCE
> flag set and nothing else.
> 
> Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>      # for v5.3 and up
> ---
> diff --git a/drivers/media/mc/mc-entity.c b/drivers/media/mc/mc-entity.c
> index 7c429ce98bae..0f1461ac00f0 100644
> --- a/drivers/media/mc/mc-entity.c
> +++ b/drivers/media/mc/mc-entity.c
> @@ -639,9 +639,9 @@ int media_get_pad_index(struct media_entity *entity, bool is_sink,
>  		return -EINVAL;
> 
>  	for (i = 0; i < entity->num_pads; i++) {
> -		if (entity->pads[i].flags == MEDIA_PAD_FL_SINK)
> +		if (entity->pads[i].flags & MEDIA_PAD_FL_SINK)
>  			pad_is_sink = true;
> -		else if (entity->pads[i].flags == MEDIA_PAD_FL_SOURCE)
> +		else if (entity->pads[i].flags & MEDIA_PAD_FL_SOURCE)

What if MEDIA_PAD_FL_SINK and MEDIA_PAD_FL_SOURCE are both set ? Is that
acceptable ?

>  			pad_is_sink = false;
>  		else
>  			continue;	/* This is an error! */

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux