• Ezequiel Garcia's avatar
    media: v4l2-mem2mem: Fix missing v4l2_m2m_try_run call · 9db3bbf5
    Ezequiel Garcia authored
    Commit 34dbb848 ("media: mem2mem: Remove excessive try_run call")
    removed a redundant call to v4l2_m2m_try_run but instead introduced
    a bug. Consider the following case:
    
     1) Context A schedules, queues and runs job A.
     2) While the m2m device is running, context B schedules
        and queues job B. Job B cannot run, because it has to
        wait for job A.
     3) Job A completes, calls v4l2_m2m_job_finish, and tries
        to queue a job for context A, but since the context is
        empty it won't do anything.
    
    In this scenario, queued job B will never run. Fix this by calling
    v4l2_m2m_try_run from v4l2_m2m_try_schedule.
    
    While here, add more documentation to these functions.
    
    Fixes: 34dbb848 ("media: mem2mem: Remove excessive try_run call")
    Signed-off-by: default avatarEzequiel Garcia <ezequiel@collabora.com>
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    [hans.verkuil@cisco.com: split >80 cols line]
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    9db3bbf5
v4l2-mem2mem.c 27.7 KB