Re: [PATCH 06/12] powerpc/module: Rework is_early_mcount_callsite()

From: Michael Ellerman
Date: Thu Feb 25 2016 - 05:28:41 EST

On Thu, 2016-02-25 at 10:39 +1100, Balbir Singh wrote:
> On 25/02/16 01:28, Michael Ellerman wrote:
> > is_early_mcount_callsite() needs to detect either the two instruction or
> > the three instruction versions of the _mcount() sequence.
> >
> > But if we're running a kernel with the two instruction sequence, we need
> > to be careful not to read instruction - 2, otherwise we might fall off
> > the front of a page and cause an oops.
> >
> > While we're here convert to bool to make the return semantics clear.
> >
> > Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> >
> Do we even need to do this anymore?

Yes. Otherwise the code in apply_relocate_add() will see a far call with no nop
slot after it to do the toc restore, and it considers that a bug (which it
usually is, except mcount is special).

As we discussed today I'm hoping we can clean this code up a bit more in the
medium term, but this works for now.