]> git.karo-electronics.de Git - karo-tx-linux.git/commit
powerpc/ppc64: Allow allmodconfig to build (finally !)
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 12 May 2014 05:57:34 +0000 (15:57 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 13 May 2014 00:24:41 +0000 (10:24 +1000)
commit0be9d8b61c0c1f3c8f86292c6e237ff26acd392d
treeef9b82101b8502c6d039f8f27505920ea7abaaf6
parent7e338c9991ecee9c2ac7a4cee2c2e11ecb563d02
powerpc/ppc64: Allow allmodconfig to build (finally !)

This shuffles code around in exceptions-64s.S in order to
allow an allmodconfig build to succeed.

The main problems were:

 - We have a fixed hole from 0x7000 to 0x8000 for use by FW,
under some circumstances the code before that would grow too
big and hit the . = 0x7000

 - The various attempts at making space in there would trigger
cases where short conditional branches from assembly would no
longer be able to reach their target. This is especially nasty
when these branches reside in alternate feature sections which
are appended at the end of each .o file

This fixes it by essentially moving all the "second level"
exception handlers to after the hole and moving a couple of
functions near the hole itself so they sit at reachable distance
of both the first level handlers (before the hole) and the alternate
feature sections (end of file).

In the long run, if we start hitting this again, we'll probably
have to split the file in two, probably at the hole location,
to keep the alt sections used by the first level handlers close
to them, and move everything else further away.

But for now, this will do.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/exceptions-64s.S