| From 6c3df5da67f1f53df78c7e20cd53a481dc28eade Mon Sep 17 00:00:00 2001 |
| From: Marek Szyprowski <m.szyprowski@samsung.com> |
| Date: Tue, 3 Dec 2013 10:14:29 -0300 |
| Subject: media: media: v4l2-dev: fix video device index assignment |
| |
| From: Marek Szyprowski <m.szyprowski@samsung.com> |
| |
| commit 6c3df5da67f1f53df78c7e20cd53a481dc28eade upstream. |
| |
| The side effect of commit 1056e4388b045 ("v4l2-dev: Fix race condition on |
| __video_register_device") is the increased number of index value assigned |
| on video_device registration. Before that commit video_devices were |
| numbered from 0, after it, the indexes starts from 1, because get_index() |
| always count the device, which is being registered. Some device drivers |
| rely on video_device index number for internal purposes, i.e. s5p-mfc |
| driver stopped working after that patch. This patch restores the old method |
| of numbering the video_device indexes. |
| |
| Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
| Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> |
| Acked-by: Ricardo Ribalda <ricardo.ribalda@gmail.com> |
| Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/media/v4l2-core/v4l2-dev.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/media/v4l2-core/v4l2-dev.c |
| +++ b/drivers/media/v4l2-core/v4l2-dev.c |
| @@ -872,8 +872,8 @@ int __video_register_device(struct video |
| |
| /* Should not happen since we thought this minor was free */ |
| WARN_ON(video_device[vdev->minor] != NULL); |
| - video_device[vdev->minor] = vdev; |
| vdev->index = get_index(vdev); |
| + video_device[vdev->minor] = vdev; |
| mutex_unlock(&videodev_lock); |
| |
| if (vdev->ioctl_ops) |