summaryrefslogtreecommitdiff
path: root/drivers/media/v4l2-core/v4l2-device.c
diff options
context:
space:
mode:
authorSebastian Reichel <sre@kernel.org>2017-02-14 20:38:49 -0200
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2017-03-22 11:21:43 -0300
commitdb0f4691d9749d5dd758b8636290cec8fd88aa26 (patch)
tree0d064f4cc992770d0208b88fabcc8c963e14680d /drivers/media/v4l2-core/v4l2-device.c
parent974f4a385cbf7fe056b51b39f7ef8cbf9528a57c (diff)
[media] v4l: Allow calling v4l2_device_register_subdev_nodes() multiple times
Previously multiple calls to v4l2_device_register_subdev_nodes() ended up corrupting memory and leaking some, too. This patch changes the behaviour so that sub-devices the device nodes of which are already registered are ignored. Signed-off-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> Signed-off-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-device.c')
-rw-r--r--drivers/media/v4l2-core/v4l2-device.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
index f364cc1b521d..937c6de85606 100644
--- a/drivers/media/v4l2-core/v4l2-device.c
+++ b/drivers/media/v4l2-core/v4l2-device.c
@@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
continue;
+ if (sd->devnode)
+ continue;
+
vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
if (!vdev) {
err = -ENOMEM;