Revision 6cf11ee6300f38b7cfc43af9b7be2afaa5e05869 authored by Hans Verkuil on 19 January 2015, 09:16:18 UTC, committed by Mauro Carvalho Chehab on 21 January 2015, 23:07:26 UTC
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 <hans.verkuil@cisco.com> Cc: <stable@vger.kernel.org> # for v3.16 and up Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
1 parent 42d74e4
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 3.5 KB |
Makefile | -rw-r--r-- | 485 bytes |
acl.h | -rw-r--r-- | 2.4 KB |
auth.c | -rw-r--r-- | 2.0 KB |
auth.h | -rw-r--r-- | 339 bytes |
cache.h | -rw-r--r-- | 1.8 KB |
current_stateid.h | -rw-r--r-- | 1.4 KB |
export.c | -rw-r--r-- | 32.6 KB |
export.h | -rw-r--r-- | 2.9 KB |
fault_inject.c | -rw-r--r-- | 3.7 KB |
idmap.h | -rw-r--r-- | 2.4 KB |
lockd.c | -rw-r--r-- | 1.7 KB |
netns.h | -rw-r--r-- | 3.5 KB |
nfs2acl.c | -rw-r--r-- | 9.1 KB |
nfs3acl.c | -rw-r--r-- | 6.4 KB |
nfs3proc.c | -rw-r--r-- | 24.4 KB |
nfs3xdr.c | -rw-r--r-- | 26.6 KB |
nfs4acl.c | -rw-r--r-- | 23.8 KB |
nfs4callback.c | -rw-r--r-- | 24.9 KB |
nfs4idmap.c | -rw-r--r-- | 16.1 KB |
nfs4proc.c | -rw-r--r-- | 56.9 KB |
nfs4recover.c | -rw-r--r-- | 35.4 KB |
nfs4state.c | -rw-r--r-- | 167.4 KB |
nfs4xdr.c | -rw-r--r-- | 103.5 KB |
nfscache.c | -rw-r--r-- | 15.9 KB |
nfsctl.c | -rw-r--r-- | 33.1 KB |
nfsd.h | -rw-r--r-- | 16.1 KB |
nfsfh.c | -rw-r--r-- | 18.2 KB |
nfsfh.h | -rw-r--r-- | 6.1 KB |
nfsproc.c | -rw-r--r-- | 20.2 KB |
nfssvc.c | -rw-r--r-- | 17.6 KB |
nfsxdr.c | -rw-r--r-- | 13.0 KB |
state.h | -rw-r--r-- | 20.2 KB |
stats.c | -rw-r--r-- | 2.7 KB |
stats.h | -rw-r--r-- | 1.4 KB |
vfs.c | -rw-r--r-- | 50.5 KB |
vfs.h | -rw-r--r-- | 4.3 KB |
xdr.h | -rw-r--r-- | 4.0 KB |
xdr3.h | -rw-r--r-- | 8.1 KB |
xdr4.h | -rw-r--r-- | 19.2 KB |
xdr4cb.h | -rw-r--r-- | 830 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...