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.
Unified · Split
| @@ -872,8 +872,8 @@ int __video_register_device(struct video_device *vdev, int type, int nr, · 871 unmodified lines | ||
| 872 | 872 | |
| 873 | 873 | /* Should not happen since we thought this minor was free */ |
| 874 | 874 | WARN_ON(video_device[vdev->minor] != NULL); |
| 875 | − video_device[vdev->minor] = vdev; | |
| 876 | 875 | vdev->index = get_index(vdev); |
| 876 | + video_device[vdev->minor] = vdev; | |
| 877 | 877 | mutex_unlock(&videodev_lock); |
| 878 | 878 | |
| 879 | 879 | if (vdev->ioctl_ops) |