• Guennadi Liakhovetski's avatar
    [media] soc-camera: properly fix camera probing races · 7d051b35
    Guennadi Liakhovetski authored
    The recently introduced host_lock causes lockdep warnings, besides, list
    enumeration in scan_add_host() must be protected by holdint the list_lock.
    OTOH, holding .video_lock in soc_camera_open() isn't enough to protect
    the host during its building of the pipeline, because .video_lock is per
    soc-camera device. If, e.g. more than one sensor can be attached to a host
    and the user tries to open both device nodes simultaneously, host's .add()
    method can be called simultaneously for both sensors. Fix these problems
    by holding list_lock instead of .host_lock in scan_add_host() and taking
    it shortly at the beginning of soc_camera_open(), and using .host_lock to
    protect host's .add() and .remove() operations only.
    Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    7d051b35
soc_camera.h 10.4 KB