From: Will Deacon Date: Sun, 28 Nov 2010 14:57:24 +0000 (+0000) Subject: ARM: hw_breakpoint: disable preemption during debug exception handling X-Git-Tag: v2.6.38-rc1~471^2^2~6^2~7 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e20269647169e7ea08a62bdc4979a3ba32e615c;p=pandora-kernel.git ARM: hw_breakpoint: disable preemption during debug exception handling On ARM, debug exceptions occur in the form of data or prefetch aborts. One difference is that debug exceptions require access to per-cpu banked registers and data structures which are not saved in the low-level exception code. For kernels built with CONFIG_PREEMPT, there is an unlikely scenario that the debug handler ends up running on a different CPU from the one that originally signalled the event, resulting in random data being read from the wrong registers. This patch adds a debug_entry macro to the low-level exception handling code which checks whether the taken exception is a debug exception. If it is, the preempt count for the faulting process is incremented. After the debug handler has finished, the count is decremented. Acked-by: Catalin Marinas Signed-off-by: Will Deacon --- Reading git-diff-tree failed