mbox series

[v1,0/2] media: v4l2-subdev: Fix link validation issue

Message ID 20231113101718.6098-1-laurent.pinchart+renesas@ideasonboard.com
Headers show
Series media: v4l2-subdev: Fix link validation issue | expand

Message

Laurent Pinchart Nov. 13, 2023, 10:17 a.m. UTC
Hello,

This small patch series addresses an incorrect (in my opinion) warning
printed by the v4l2_subdev_link_validate() helper. Patch 1/2 is a small
drive-by cleanup, and the important change is in 2/2. Please see the
patch commit message for details.

The series has been tested with the VSP1 driver, and correctly gets rid
of the warning.

Laurent Pinchart (2):
  media: v4l2-subdev: Drop unreacheable warning
  media: v4l2-subdev: Relax warnings in link validation

 drivers/media/v4l2-core/v4l2-subdev.c | 38 ++++++++++++++++-----------
 1 file changed, 23 insertions(+), 15 deletions(-)


base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86

Comments

Laurent Pinchart June 18, 2024, 3:14 p.m. UTC | #1
Hi Sakari,

On Mon, Nov 13, 2023 at 12:50:16PM +0200, Laurent Pinchart wrote:
> On Mon, Nov 13, 2023 at 10:42:16AM +0000, Sakari Ailus wrote:
> > On Mon, Nov 13, 2023 at 12:17:17PM +0200, Laurent Pinchart wrote:
> > > The v4l2_subdev_link_validate_get_format() function warns if the pad
> > > given as argument belongs to a non-subdev entity. This can't happen, as
> > > the function is called from v4l2_subdev_link_validate() only (indirectly
> > > through v4l2_subdev_link_validate_locked()), and that function ensures
> > > that both ends of the link are subdevs.
> > > 
> > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> > > ---
> > >  drivers/media/v4l2-core/v4l2-subdev.c | 8 --------
> > >  1 file changed, 8 deletions(-)
> > > 
> > > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> > > index be86b906c985..67d43206ce32 100644
> > > --- a/drivers/media/v4l2-core/v4l2-subdev.c
> > > +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> > > @@ -1184,14 +1184,6 @@ v4l2_subdev_link_validate_get_format(struct media_pad *pad, u32 stream,
> > >  	struct v4l2_subdev *sd;
> > >  	int ret;
> > >  
> > > -	if (!is_media_entity_v4l2_subdev(pad->entity)) {
> > > -		WARN(pad->entity->function != MEDIA_ENT_F_IO_V4L,
> > > -		     "Driver bug! Wrong media entity type 0x%08x, entity %s\n",
> > > -		     pad->entity->function, pad->entity->name);
> > > -
> > > -		return -EINVAL;
> > > -	}
> > > -
> > >  	sd = media_entity_to_v4l2_subdev(pad->entity);
> > 
> > It'd be good to check sd is non-NULL here, although pad presumably is
> > always a pad of a sub-device entity.
> 
> It's guaranteed by the caller. Is there a specific reason you think a
> check would be good ?

Would you still want a check ?

> > >  
> > >  	fmt->which = V4L2_SUBDEV_FORMAT_ACTIVE;