From: Hans Verkuil Date: Mon, 19 Jan 2015 09:16:18 +0000 (-0300) Subject: [media] vb2: fix vb2_thread_stop race conditions X-Git-Tag: fixes-v4.0-rc1~253^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cf11ee6300f38b7cfc43af9b7be2afaa5e05869;p=pandora-kernel.git [media] vb2: fix vb2_thread_stop race conditions The locking scheme inside the vb2 thread is unsafe when stopping the thread. In particular kthread_stop was called *after* internal data structures were cleaned up instead of doing that before. In addition, internal vb2 functions were called after threadio->stop was set to true and vb2_internal_streamoff was called. This is also not allowed. All this led to a variety of race conditions and kernel warnings and/or oopses. Fixed by moving the kthread_stop call up before the cleanup takes place, and by checking threadio->stop before calling internal vb2 queuing operations. Signed-off-by: Hans Verkuil Cc: # for v3.16 and up Signed-off-by: Mauro Carvalho Chehab --- Reading git-diff-tree failed