summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil2019-06-29 15:00:10 +0200
committerMauro Carvalho Chehab2019-07-11 14:59:54 +0200
commit6bda7073f335db261345d403123d9a8c0bc1e36b (patch)
tree41422ed6eb789dd514e8b6cacf721ee68b632808
parentmedia: allegro: use new v4l2_m2m_ioctl_try_encoder_cmd funcs (diff)
downloadkernel-qcow2-linux-6bda7073f335db261345d403123d9a8c0bc1e36b.tar.gz
kernel-qcow2-linux-6bda7073f335db261345d403123d9a8c0bc1e36b.tar.xz
kernel-qcow2-linux-6bda7073f335db261345d403123d9a8c0bc1e36b.zip
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: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reported-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Fixes: a8fa55078a77 ("media: v4l2-subdev: Verify arguments in v4l2_subdev_call()") Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r--drivers/media/v4l2-core/v4l2-subdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
index 21fb90d66bfc..25c73c13cc7e 100644
--- a/drivers/media/v4l2-core/v4l2-subdev.c
+++ b/drivers/media/v4l2-core/v4l2-subdev.c
@@ -124,7 +124,7 @@ static inline int check_which(__u32 which)
static inline int check_pad(struct v4l2_subdev *sd, __u32 pad)
{
#if defined(CONFIG_MEDIA_CONTROLLER)
- if (sd->entity.graph_obj.mdev) {
+ if (sd->entity.num_pads) {
if (pad >= sd->entity.num_pads)
return -EINVAL;
return 0;