[Blackfin] arch: fix bug - when using trace buffer with CONFIG_MPU enabled.
authorBernd Schmidt <bernds_cb1@t-online.de>
Tue, 22 Apr 2008 23:17:34 +0000 (07:17 +0800)
committerBryan Wu <cooloney@kernel.org>
Tue, 22 Apr 2008 23:17:34 +0000 (07:17 +0800)
commit2a0c4fdb6602ea066380aaf71ff7bb2f61ffeee8
treeb77ed1db44e1d0948ac2ab8414066e365da21ddd
parentdbfe44f02b6855efb5a596e942ec2fd96d592f60
[Blackfin] arch: fix bug - when using trace buffer with CONFIG_MPU enabled.

There were a couple of problems with the way the trace buffer state
is saved/restored in assembly.  The DEBUG_HWTRACE_SAVE/RESTORE macros
save a value to the stack, which is not immediately obvious; the CPLB
exception code needed changes to load the correct value of the stack
pointer.  The other problem is that the SAVE/RESTORE macros weren't
pushing and popping the value downwards on the stack, but rather moving
it _upwards_, which is of course completely broken.

We also need to make sure there's a matching DEBUG_HWTRACE_RESTORE in
the error case of the CPLB handler.

Signed-off-by: Bernd Schmidt <bernds_cb1@t-online.de>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
arch/blackfin/mach-common/entry.S
include/asm-blackfin/trace.h