]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
arm64: Ensure the instruction emulation is ready for userspace
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Fri, 6 Oct 2017 13:16:52 +0000 (14:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Oct 2017 09:56:16 +0000 (11:56 +0200)
commit07f9d7905eaab778e17d23ec1ea3c7f39f6bc152
tree5056fca586d6c7e26cf47d1d3bc342c17350eb7b
parenta075264bbafe43bda0f9ffcacf3f1b2fadae2226
arm64: Ensure the instruction emulation is ready for userspace

commit c0d8832e78cbfd4a64b7112e34920af4b0b0e60e upstream.

We trap and emulate some instructions (e.g, mrs, deprecated instructions)
for the userspace. However the handlers for these are registered as
late_initcalls and the userspace could be up and running from the initramfs
by that time (with populate_rootfs, which is a rootfs_initcall()). This
could cause problems for the early applications ending up in failure
like :

[   11.152061] modprobe[93]: undefined instruction: pc=0000ffff8ca48ff4

This patch promotes the specific calls to core_initcalls, which are
guaranteed to be completed before we hit userspace.

Cc: Dave Martin <dave.martin@arm.com>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: James Morse <james.morse@arm.com>
Reported-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/kernel/armv8_deprecated.c
arch/arm64/kernel/cpufeature.c