arm64: module: ensure instruction is little-endian before manipulation
authorWill Deacon <will.deacon@arm.com>
Tue, 5 Nov 2013 10:16:52 +0000 (10:16 +0000)
committerVictor Kamensky <victor.kamensky@linaro.org>
Fri, 14 Mar 2014 01:30:30 +0000 (18:30 -0700)
commit36bada1e73f23f948283f97caf775f3428e56af8
tree5c79220a6fdda01f5165d9c79b61cb1137c3d3be
parenta806cbf415fa56f0422c792bde0ba8baf2e19f45
arm64: module: ensure instruction is little-endian before manipulation

Relocations that require an instruction immediate to be re-encoded must
ensure that the instruction pattern is represented in a little-endian
format for the manipulation code to work correctly.

This patch converts the loaded instruction into native-endianess prior
to encoding and then converts back to little-endian byteorder before
updating memory.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Tested-by: Matthew Leach <matthew.leach@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 122e2fa0d310d262cb85cf0b003032e5d2bc2ae7)

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
arch/arm64/kernel/module.c