All of lore.kernel.org
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org
Subject: [PATCH] media: fix truncated entity specification
Date: Sat, 05 Nov 2011 22:42:01 +0100	[thread overview]
Message-ID: <4EB5ADA9.6010104@ladisch.de> (raw)

When enumerating an entity, assign the entire entity specification
instead of only the first two words.  (This requires giving the
specification union a name.)

So far, no driver actually uses more than two words, but this will
be needed for ALSA entities.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 include/media/media-entity.h      |    2 +-
 drivers/media/media-device.c      |    3 +--
 drivers/media/video/v4l2-dev.c    |    4 ++--
 drivers/media/video/v4l2-device.c |    4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index cd8bca6..d13de27 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -98,7 +98,7 @@ struct media_entity {

 		/* Sub-device specifications */
 		/* Nothing needed yet */
-	};
+	} specification;
 };

 static inline u32 media_entity_type(struct media_entity *entity)
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index 16b70b4..bfb4e0b 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -107,8 +107,7 @@ static long media_device_enum_entities(struct media_device *mdev,
 	u_ent.group_id = ent->group_id;
 	u_ent.pads = ent->num_pads;
 	u_ent.links = ent->num_links - ent->num_backlinks;
-	u_ent.v4l.major = ent->v4l.major;
-	u_ent.v4l.minor = ent->v4l.minor;
+	memcpy(&u_ent.v4l, &ent->specification, sizeof(ent->specification));
 	if (copy_to_user(uent, &u_ent, sizeof(u_ent)))
 		return -EFAULT;
 	return 0;
diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
index a5c9ed1..1eb9ba1 100644
--- a/drivers/media/video/v4l2-dev.c
+++ b/drivers/media/video/v4l2-dev.c
@@ -703,8 +703,8 @@ int __video_register_device(struct video_device *vdev, int type, int nr,
 	    vdev->vfl_type != VFL_TYPE_SUBDEV) {
 		vdev->entity.type = MEDIA_ENT_T_DEVNODE_V4L;
 		vdev->entity.name = vdev->name;
-		vdev->entity.v4l.major = VIDEO_MAJOR;
-		vdev->entity.v4l.minor = vdev->minor;
+		vdev->entity.specification.v4l.major = VIDEO_MAJOR;
+		vdev->entity.specification.v4l.minor = vdev->minor;
 		ret = media_device_register_entity(vdev->v4l2_dev->mdev,
 			&vdev->entity);
 		if (ret < 0)
diff --git a/drivers/media/video/v4l2-device.c b/drivers/media/video/v4l2-device.c
index e6a2c3b..d8f58d8 100644
--- a/drivers/media/video/v4l2-device.c
+++ b/drivers/media/video/v4l2-device.c
@@ -217,8 +217,8 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
 		if (err < 0)
 			return err;
 #if defined(CONFIG_MEDIA_CONTROLLER)
-		sd->entity.v4l.major = VIDEO_MAJOR;
-		sd->entity.v4l.minor = vdev->minor;
+		sd->entity.specification.v4l.major = VIDEO_MAJOR;
+		sd->entity.specification.v4l.minor = vdev->minor;
 #endif
 	}
 	return 0;

WARNING: multiple messages have this Message-ID (diff)
From: Clemens Ladisch <clemens@ladisch.de>
To: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: linux-media@vger.kernel.org, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] media: fix truncated entity specification
Date: Sat, 05 Nov 2011 22:42:01 +0100	[thread overview]
Message-ID: <4EB5ADA9.6010104@ladisch.de> (raw)

When enumerating an entity, assign the entire entity specification
instead of only the first two words.  (This requires giving the
specification union a name.)

So far, no driver actually uses more than two words, but this will
be needed for ALSA entities.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
---
 include/media/media-entity.h      |    2 +-
 drivers/media/media-device.c      |    3 +--
 drivers/media/video/v4l2-dev.c    |    4 ++--
 drivers/media/video/v4l2-device.c |    4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index cd8bca6..d13de27 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -98,7 +98,7 @@ struct media_entity {

 		/* Sub-device specifications */
 		/* Nothing needed yet */
-	};
+	} specification;
 };

 static inline u32 media_entity_type(struct media_entity *entity)
diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index 16b70b4..bfb4e0b 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -107,8 +107,7 @@ static long media_device_enum_entities(struct media_device *mdev,
 	u_ent.group_id = ent->group_id;
 	u_ent.pads = ent->num_pads;
 	u_ent.links = ent->num_links - ent->num_backlinks;
-	u_ent.v4l.major = ent->v4l.major;
-	u_ent.v4l.minor = ent->v4l.minor;
+	memcpy(&u_ent.v4l, &ent->specification, sizeof(ent->specification));
 	if (copy_to_user(uent, &u_ent, sizeof(u_ent)))
 		return -EFAULT;
 	return 0;
diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
index a5c9ed1..1eb9ba1 100644
--- a/drivers/media/video/v4l2-dev.c
+++ b/drivers/media/video/v4l2-dev.c
@@ -703,8 +703,8 @@ int __video_register_device(struct video_device *vdev, int type, int nr,
 	    vdev->vfl_type != VFL_TYPE_SUBDEV) {
 		vdev->entity.type = MEDIA_ENT_T_DEVNODE_V4L;
 		vdev->entity.name = vdev->name;
-		vdev->entity.v4l.major = VIDEO_MAJOR;
-		vdev->entity.v4l.minor = vdev->minor;
+		vdev->entity.specification.v4l.major = VIDEO_MAJOR;
+		vdev->entity.specification.v4l.minor = vdev->minor;
 		ret = media_device_register_entity(vdev->v4l2_dev->mdev,
 			&vdev->entity);
 		if (ret < 0)
diff --git a/drivers/media/video/v4l2-device.c b/drivers/media/video/v4l2-device.c
index e6a2c3b..d8f58d8 100644
--- a/drivers/media/video/v4l2-device.c
+++ b/drivers/media/video/v4l2-device.c
@@ -217,8 +217,8 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
 		if (err < 0)
 			return err;
 #if defined(CONFIG_MEDIA_CONTROLLER)
-		sd->entity.v4l.major = VIDEO_MAJOR;
-		sd->entity.v4l.minor = vdev->minor;
+		sd->entity.specification.v4l.major = VIDEO_MAJOR;
+		sd->entity.specification.v4l.minor = vdev->minor;
 #endif
 	}
 	return 0;

             reply	other threads:[~2011-11-05 21:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-05 21:42 Clemens Ladisch [this message]
2011-11-05 21:42 ` [PATCH] media: fix truncated entity specification Clemens Ladisch
2011-11-15  0:47 ` Laurent Pinchart
2011-11-15 13:02   ` Clemens Ladisch
2011-11-15 13:02     ` Clemens Ladisch
2011-11-16  0:33     ` Laurent Pinchart
2011-11-16  7:42       ` Clemens Ladisch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EB5ADA9.6010104@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.