ARM: 7299/1: ftrace: clear zero bit in reported IPs for Thumb-2
authorRabin Vincent <rabin@rab.in>
Tue, 24 Jan 2012 15:52:52 +0000 (16:52 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 25 Jan 2012 09:24:37 +0000 (09:24 +0000)
commitd68133b5a81bd9c4b673c2a731ac1a33a9dc0cb8
tree4cd5cee5bb4023fdc1f92c9fbdf733167f0a0b5a
parent34ae6c96a6a7db4ed8ec0524bf7fa1086b9ab2ba
ARM: 7299/1: ftrace: clear zero bit in reported IPs for Thumb-2

The dynamic ftrace ops startup test currently fails on Thumb-2 kernels:

 Testing tracer function: PASSED
 Testing dynamic ftrace: PASSED
 Testing dynamic ftrace ops #1: (0 0 0 0 0) FAILED!

This is because while the addresses in the mcount records do not have
the zero bit set, the IP reported by the mcount call does have it set
(because it is copied from the LR).  This mismatch causes the ops
filtering in ftrace_ops_list_func() to not call the relevant tracers.

Fix this by clearing the zero bit before adjusting the LR for the mcount
instruction size.  Also, combine the mov+sub into a single sub
instruction.

Acked-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/entry-common.S