Re: ARM + jprobes/kretprobes SEGV/hangs/OOPS in 2.6.29 kernel

From: Catalin Marinas
Date: Tue Sep 01 2009 - 10:44:33 EST


On Tue, 2009-09-01 at 15:25 +0100, Russell King wrote:
> On Tue, Sep 01, 2009 at 02:54:54PM +0100, Catalin Marinas wrote:
> > venki kaps <venkiece2005@xxxxxxxxx> wrote:
> > > I have found the exact problem with respect to ARM jprobes.
> > >
> > > The problem with configure i.e, CONFIG_ARM_UNWIND = y; is enabled.
> >
> > I haven't followed the kprobes implementation for ARM but does it make
> > any assumptions about the existence of a frame pointer on the stack?
> > Enabling stack unwinding automatically disables the framepointer.
>
> If it uses CALLER_ADDRESSx() then it won't work with unwinding enabled.
> See 5613/1 (which is pending in the devel branch.)

In addition to that, when CONFIG_FRAME_POINTER is disabled, the lr
register isn't always saved on the stack by the called function. I'm not
sure whether kretprobe_trampoline is aware of this.

--
Catalin

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/