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 |
---|---|---|
partitions | ||
Kconfig | -rw-r--r-- | 3.7 KB |
Kconfig.iosched | -rw-r--r-- | 1.6 KB |
Makefile | -rw-r--r-- | 923 bytes |
bio-integrity.c | -rw-r--r-- | 13.9 KB |
bio.c | -rw-r--r-- | 50.4 KB |
blk-cgroup.c | -rw-r--r-- | 29.6 KB |
blk-cgroup.h | -rw-r--r-- | 16.6 KB |
blk-core.c | -rw-r--r-- | 89.3 KB |
blk-exec.c | -rw-r--r-- | 3.5 KB |
blk-flush.c | -rw-r--r-- | 14.8 KB |
blk-integrity.c | -rw-r--r-- | 12.4 KB |
blk-ioc.c | -rw-r--r-- | 10.2 KB |
blk-iopoll.c | -rw-r--r-- | 5.8 KB |
blk-lib.c | -rw-r--r-- | 7.3 KB |
blk-map.c | -rw-r--r-- | 8.2 KB |
blk-merge.c | -rw-r--r-- | 14.8 KB |
blk-mq-cpu.c | -rw-r--r-- | 1.6 KB |
blk-mq-cpumap.c | -rw-r--r-- | 2.5 KB |
blk-mq-sysfs.c | -rw-r--r-- | 10.6 KB |
blk-mq-tag.c | -rw-r--r-- | 13.6 KB |
blk-mq-tag.h | -rw-r--r-- | 2.0 KB |
blk-mq.c | -rw-r--r-- | 48.0 KB |
blk-mq.h | -rw-r--r-- | 3.1 KB |
blk-settings.c | -rw-r--r-- | 27.2 KB |
blk-softirq.c | -rw-r--r-- | 4.4 KB |
blk-sysfs.c | -rw-r--r-- | 15.5 KB |
blk-tag.c | -rw-r--r-- | 9.4 KB |
blk-throttle.c | -rw-r--r-- | 45.8 KB |
blk-timeout.c | -rw-r--r-- | 5.7 KB |
blk.h | -rw-r--r-- | 8.6 KB |
bounce.c | -rw-r--r-- | 6.5 KB |
bsg-lib.c | -rw-r--r-- | 6.0 KB |
bsg.c | -rw-r--r-- | 23.6 KB |
cfq-iosched.c | -rw-r--r-- | 120.1 KB |
cmdline-parser.c | -rw-r--r-- | 4.9 KB |
compat_ioctl.c | -rw-r--r-- | 20.8 KB |
deadline-iosched.c | -rw-r--r-- | 11.3 KB |
elevator.c | -rw-r--r-- | 23.7 KB |
genhd.c | -rw-r--r-- | 44.1 KB |
ioctl.c | -rw-r--r-- | 10.7 KB |
ioprio.c | -rw-r--r-- | 5.0 KB |
noop-iosched.c | -rw-r--r-- | 2.7 KB |
partition-generic.c | -rw-r--r-- | 14.0 KB |
scsi_ioctl.c | -rw-r--r-- | 19.6 KB |
t10-pi.c | -rw-r--r-- | 5.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...