Commit 6bda7073 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

media: v4l2-subdev: fix regression in check_pad()



sd->entity.graph_obj.mdev can be NULL when this function is called, and
that breaks existing drivers (rcar-vin, but probably others as well).

Check if sd->entity.num_pads is non-zero instead since that doesn't depend
on mdev.

Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Reported-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Fixes: a8fa5507 ("media: v4l2-subdev: Verify arguments in v4l2_subdev_call()")
Tested-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent f81cbfc4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -124,7 +124,7 @@ static inline int check_which(__u32 which)
static inline int check_pad(struct v4l2_subdev *sd, __u32 pad)
static inline int check_pad(struct v4l2_subdev *sd, __u32 pad)
{
{
#if defined(CONFIG_MEDIA_CONTROLLER)
#if defined(CONFIG_MEDIA_CONTROLLER)
	if (sd->entity.graph_obj.mdev) {
	if (sd->entity.num_pads) {
		if (pad >= sd->entity.num_pads)
		if (pad >= sd->entity.num_pads)
			return -EINVAL;
			return -EINVAL;
		return 0;
		return 0;