ARM: proc-arm94*.S: fix setup function
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 4 Apr 2015 22:22:07 +0000 (23:22 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 10 Apr 2015 09:52:41 +0000 (10:52 +0100)
Both ARM946 and ARM940 setup functions were corrupting r1 and r2,
which is not permissible - these are used to carry the machine ID
and boot data into the kernel, and must be preserved.

The code responsible for this was the same in both files: they were
using the registers to generate a protection region register value.

Fix this by turning this process into a macro, and using that macro
in both these files with an alternative register allocation.  r0,
r3 and r7 can be used for temporary values here.

Reported-by: Alex Dumitrache <broscutamaker@gmail.com>
Tested-by: Georg Hofstetter <g3gg0.de@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/proc-arm940.S
arch/arm/mm/proc-arm946.S
arch/arm/mm/proc-macros.S

Simple merge
Simple merge
Simple merge