android_kernel_google_msm/drivers/base
Alistair Strachan 509a910962 sync: Fix a race condition between release_obj and print_obj
Before this change, a timeline would only be removed from the timeline
list *after* the sync driver had its release_obj() called. However, the
driver's release_obj() may free resources needed by print_obj().

Although the timeline list is locked when print_obj() is called, it is
not locked when release_obj() is called. If one CPU was in print_obj()
when another was in release_obj(), the print_obj() may make unsafe
accesses.

It is not actually necessary to hold the timeline list lock when calling
release_obj() if the call is made after the timeline is unlinked from
the list, since there is no possibility another thread could be in --
or enter -- print_obj() for that timeline.

This change moves the release_obj() call to after the timeline is
unlinked, preventing the above race from occurring.

Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com>
Signed-off-by: Ed Tam <etam@google.com>
2013-12-09 16:11:59 -08:00
..
power PM: Allow runtime suspend again if prepare is failed 2013-03-15 17:09:28 -07:00
regmap
attribute_container.c
base.h drivers: Resurrect sysdev 2013-02-25 11:29:18 -08:00
bus.c
class.c
core.c
cpu.c
dd.c
devres.c
devtmpfs.c
dma-buf.c
dma-coherent.c common: add dma_mmap_from_coherent() function 2013-02-27 18:21:21 -08:00
dma-contiguous.c drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
dma-mapping.c
driver.c
firmware.c
firmware_class.c
genlock.c Update copyright to The Linux Foundation 2013-03-15 17:07:39 -07:00
hypervisor.c
init.c
isa.c
Kconfig drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
Makefile drivers: add Contiguous Memory Allocator 2013-02-27 18:14:15 -08:00
map.c
memory.c
module.c
node.c
platform.c
soc.c
sw_sync.c sw_sync: convert to new value_str debug ops 2013-03-04 12:47:44 -08:00
sync.c sync: Fix a race condition between release_obj and print_obj 2013-12-09 16:11:59 -08:00
sys.c drivers: Resurrect sysdev 2013-02-25 11:29:18 -08:00
syscore.c
topology.c
transport_class.c