]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
powerpc/64s: Add support for a store forwarding barrier at kernel entry/exit
authorNicholas Piggin <npiggin@gmail.com>
Tue, 24 Apr 2018 06:55:14 +0000 (16:55 +1000)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 16 May 2018 11:52:36 +0000 (13:52 +0200)
commit06f7e3d39f2fa4f648d94a51d809b10f98399f91
tree4ec31d9e0d49ff8266769267b31fbeb6fd9bcd72
parentace051d5f4e6037e1253238b9e068930874809de
powerpc/64s: Add support for a store forwarding barrier at kernel entry/exit

This patch prevents a possible store forwarding between privilege
domains, by inserting a store forwarding barrier in kernel entry and
exit paths.

Barriers must be inserted generally before the first load after moving
to a higher privilege, and after the last store before moving to a
lower privilege, HV and PR privilege transitions must be protected.

Barriers are added as patch sections, with all kernel/hypervisor entry
points patched, and the exit points to lower privilge levels patched
similarly to the RFI flush patching.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Breno Leitao <brenohl@br.ibm.com>
CVE-2018-3639 (powerpc)

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
arch/powerpc/include/asm/exception-64s.h
arch/powerpc/include/asm/feature-fixups.h
arch/powerpc/include/asm/setup.h
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/setup_64.c
arch/powerpc/kernel/vmlinux.lds.S
arch/powerpc/lib/feature-fixups.c
arch/powerpc/platforms/powernv/setup.c
arch/powerpc/platforms/pseries/setup.c