summaryrefslogtreecommitdiffstats
path: root/drivers/ide/cs5520.c
diff options
context:
space:
mode:
authorFrederic Riss <frederic.riss@gmail.com>2009-09-21 08:43:30 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-09-21 16:39:12 +0100
commit2003b7af259611312ea132da1f5006ae0b8e47d7 (patch)
tree57287ad7863f5d67b40ce7202f3159dfac17aea9 /drivers/ide/cs5520.c
parentdf297bf6c7933e7b021cdc1bf3f9e319ea3a7e9c (diff)
ARM: 5715/1: Make kprobes unregistration SMP safe
ARM kprobes use an illegal instruction to trigger kprobes. In the current implementation, there's a race between the unregistration of a kprobe and the illegal instruction exception handler if they run at the same time on different cores. When reading the value of the undefined instruction, the exception handler might get the original legal instruction as just patched concurrently by arch_disarm_kprobe(). When this happen the kprobe handler won't run, and thus the exception handler will oops because it believe it just hit an undefined instruction in kernel space. The following patch synchronizes the code patching in the kprobes unregistration using stop_machine and thus avoids the above race. Signed-off-by: Frederic RISS <frederic.riss@gmail.com> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/ide/cs5520.c')
0 files changed, 0 insertions, 0 deletions