@@ -240,6 +240,7 @@ void media_devnode_init(struct media_devnode *devnode)
{
device_initialize(&devnode->dev);
devnode->dev.release = media_devnode_release;
+ devnode->minor = -1;
}
int __must_check media_devnode_register(struct media_devnode *devnode,
@@ -251,6 +252,9 @@ int __must_check media_devnode_register(struct media_devnode *devnode,
int minor;
int ret;
+ if (devnode->minor != -1)
+ return -EINVAL;
+
/* Part 1: Find a free minor number */
mutex_lock(&media_devnode_lock);
minor = find_first_zero_bit(media_devnode_nums, MEDIA_NUM_DEVICES);
A media devnode may be registered only once. Enforce this by setting the minor to -1 in init. Registration initialises the character device and sets up the device name. These should take place only once during the lifetime of the media device. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/media/mc/mc-devnode.c | 4 ++++ 1 file changed, 4 insertions(+)