[PATCH 01/22] ARM: add mechanism for late code patching
Nicolas Pitre
nicolas.pitre at linaro.org
Wed Aug 8 09:55:12 EDT 2012
On Wed, 8 Aug 2012, Cyril Chemparathy wrote:
> On 08/08/12 01:56, Nicolas Pitre wrote:
> > On Tue, 7 Aug 2012, Cyril Chemparathy wrote:
> [...]
> > > u32 arm_check[] = {
> > > 0xe2810041, 0xe2810082, 0xe2810f41, 0xe2810f82, 0xe2810e41,
> > > 0xe2810e82, 0xe2810d41, 0xe2810d82, 0xe2810c41, 0xe2810c82,
> > > 0xe2810b41, 0xe2810b82, 0xe2810a41, 0xe2810a82, 0xe2810941,
> > > 0xe2810982, 0xe2810841, 0xe2810882, 0xe2810741, 0xe2810782,
> > > 0xe2810641, 0xe2810682, 0xe2810541, 0xe2810582, 0xe2810441,
> > > };
> >
> > Instead of using this array you could let the assembler do it for you
> > like this:
> >
> > asm (" \n\
> > .arm \n\
> > arm_check: \n\
> > .set shft, 0 \n\
> > .rep 12 \n\
> > add r1, r2, #0x81 << \shft \n\
> > .set shft, \shft + 2 \n\
> > .endr \n\
> > ");
> >
>
> Neat macro magic. Are you thinking that we build this in as a self test in
> the code?
For such things, this is never a bad idea to have some test alongside
with the main code, especially if this is extended to more cases in the
future. It is too easy to break it in subtle ways.
See arch/arm/kernel/kprobes-test*.c for a precedent.
Nicolas
More information about the linux-arm-kernel
mailing list