1
0
Fork 0
alistair23-linux/arch/powerpc/platforms/pseries
Nicholas Piggin 09495b5f7a powerpc/64s: flush L1D after user accesses
commit 9a32a7e78b upstream.

IBM Power9 processors can speculatively operate on data in the L1 cache
before it has been completely validated, via a way-prediction mechanism. It
is not possible for an attacker to determine the contents of impermissible
memory using this method, since these systems implement a combination of
hardware and software security measures to prevent scenarios where
protected data could be leaked.

However these measures don't address the scenario where an attacker induces
the operating system to speculatively execute instructions using data that
the attacker controls. This can be used for example to speculatively bypass
"kernel user access prevention" techniques, as discovered by Anthony
Steinhauser of Google's Safeside Project. This is not an attack by itself,
but there is a possibility it could be used in conjunction with
side-channels or other weaknesses in the privileged code to construct an
attack.

This issue can be mitigated by flushing the L1 cache between privilege
boundaries of concern. This patch flushes the L1 cache after user accesses.

This is part of the fix for CVE-2020-4788.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-22 10:14:10 +01:00
..
Kconfig powerpc/pseries/svm: Force SWIOTLB for secure guests 2019-08-30 09:55:41 +10:00
Makefile powerpc/fadump: introduce callbacks for platform specific operations 2019-09-14 00:04:42 +10:00
cmm.c powerpc/pseries/cmm: Implement release() function for sysfs device 2020-01-04 19:17:51 +01:00
dlpar.c powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
dtl.c powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
eeh_pseries.c powerpc/eeh: Convert log messages to eeh_edev_* macros 2019-08-22 23:12:47 +10:00
event_sources.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
firmware.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
hotplug-cpu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
hotplug-memory.c powerpc/memhotplug: Make lmb size 64bit 2020-11-05 11:43:31 +01:00
hvCall.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
hvCall_inst.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
hvconsole.c powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
hvcserver.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ibmebus.c bus_find_device: Unify the match callback with class_find_device 2019-06-24 05:22:31 +02:00
io_event_irq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
iommu.c powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW 2020-02-14 16:34:16 -05:00
kexec.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
lpar.c powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init() 2020-04-17 10:50:16 +02:00
lparcfg.c powerpc/pseries/lparcfg: Fix display of Maximum Memory 2020-02-24 08:36:57 +01:00
mobility.c powerpc/pseries/mobility: use cond_resched when updating device tree 2019-08-20 21:22:28 +10:00
msi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
nvram.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
of_helpers.c pseries/drc-info: Search DRC properties for CPU indexes 2018-01-21 16:21:46 +11:00
of_helpers.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
offline_states.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
papr_scm.c powerpc/papr_scm: Fix leaking 'bus_desc.provider_name' in some paths 2020-02-14 16:34:16 -05:00
pci.c powerpc/eeh: Refactor around eeh_probe_devices() 2019-08-22 23:12:46 +10:00
pci_dlpar.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
pmem.c powerpc/pseries/pmem: Fix a set but not used value 2019-04-20 22:02:26 +10:00
power.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 167 2019-05-30 11:26:39 -07:00
pseries.h powerpc/pseries: Read TLB Block Invalidate Characteristics 2019-09-24 19:58:42 +10:00
pseries_energy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ras.c powerpc/pseries: Avoid using addr_to_pfn in real mode 2020-10-29 09:58:00 +01:00
reconfig.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rng.c powerpc/pseries: Fix missing of_node_put() in rng_init() 2020-10-29 09:57:46 +01:00
rtas-fadump.c powerpc/fadump: support holes in kernel boot memory area 2019-09-14 00:04:46 +10:00
rtas-fadump.h powerpc/fadump: support holes in kernel boot memory area 2019-09-14 00:04:46 +10:00
scanlog.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
setup.c powerpc/64s: flush L1D after user accesses 2020-11-22 10:14:10 +01:00
smp.c powerpc/pseries/svm: Disable doorbells in SVM guests 2019-08-30 09:55:41 +10:00
suspend.c powerpc/rtas: don't online CPUs for partition suspend 2020-08-19 08:16:12 +02:00
svm.c powerpc/pseries/svm: Force SWIOTLB for secure guests 2019-08-30 09:55:41 +10:00
vio.c powerpc/pseries/vio: Fix iommu_table use-after-free refcount warning 2020-02-14 16:34:16 -05:00
vphn.c powerpc/pseries: Move mm/book3s64/vphn.c under platforms/pseries/ 2019-07-04 22:23:38 +10:00