V4L/DVB (8390): videodev: add comment and remove magic number.
authorHans Verkuil <hverkuil@xs4all.nl>
Thu, 17 Jul 2008 20:48:38 +0000 (17:48 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:28:44 +0000 (07:28 -0300)
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/videodev.c

index bf12b5f..aca36de 100644 (file)
@@ -2023,9 +2023,13 @@ EXPORT_SYMBOL(video_ioctl2);
 static int get_index(struct video_device *vdev, int num)
 {
        u32 used = 0;
+       const unsigned max_index = sizeof(used) * 8 - 1;
        int i;
 
-       if (num >= 32) {
+       /* Currently a single v4l driver instance cannot create more than
+          32 devices.
+          Increase to u64 or an array of u32 if more are needed. */
+       if (num > max_index) {
                printk(KERN_ERR "videodev: %s num is too large\n", __func__);
                return -EINVAL;
        }
@@ -2045,7 +2049,7 @@ static int get_index(struct video_device *vdev, int num)
        }
 
        i = ffz(used);
-       return i >= 32 ? -ENFILE : i;
+       return i > max_index ? -ENFILE : i;
 }
 
 static const struct file_operations video_fops;