OSDN Git Service

[media] v4l2-mem2mem: Don't schedule the context if abort job is called
authorShaik Ameer Basha <shaik.ameer@samsung.com>
Fri, 20 Sep 2013 06:26:18 +0000 (03:26 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 28 Oct 2013 17:22:45 +0000 (15:22 -0200)
commit2ad5389b341282636644d917685029b4bb50553c
tree9f2832c8b42a96f7d7fc0d1607de4e8b910f2b57
parentd9315160ed4dc76f6f01acb1b05e92e2a891b9bb
[media] v4l2-mem2mem: Don't schedule the context if abort job is called

When the current context is running,
1] If release is called, it waits until the job is finished.
2] As soon as the job is finished, v4l2_mem_ctx_release()tries to
   release the vb2 queues.
3] But if the current context can be scheduled in the v4l2_m2m_job_finish()
   it schedules the context and tries to call device_run().
4] As the release() and device_run() sequence can't be predicted sometimes
   device_run() may get empty vb2 buffers.

This patch adds the ABORT state to the job_flags. Once the job_abort() or
release() is called on the context, the same context will not be scheduled in
the v4l2_m2m_job_finish().

Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/v4l2-core/v4l2-mem2mem.c