]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
x86/speculation/l1tf: Limit swap file size to MAX_PA/2
authorAndi Kleen <ak@linux.intel.com>
Wed, 13 Jun 2018 22:48:28 +0000 (15:48 -0700)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 8 Aug 2018 12:08:07 +0000 (14:08 +0200)
commita98c27e188274378386f20b9f6b6e18cdf9fd864
tree8831ed18b4f76e7fbf4631605f84655cfc8d3f73
parent0831b2a225b4e94845c95e4bad46e8d0a898e209
x86/speculation/l1tf: Limit swap file size to MAX_PA/2

For the L1TF workaround its necessary to limit the swap file size to below
MAX_PA/2, so that the higher bits of the swap offset inverted never point
to valid memory.

Add a mechanism for the architecture to override the swap file size check
in swapfile.c and add a x86 specific max swapfile check function that
enforces that limit.

The check is only enabled if the CPU is vulnerable to L1TF.

In VMs with 42bit MAX_PA the typical limit is 2TB now, on a native system
with 46bit PA it is 32TB. The limit is only per individual swap file, so
it's always possible to exceed these limits with multiple swap files or
partitions.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Dave Hansen <dave.hansen@intel.com>
CVE-2018-3620
CVE-2018-3646

[tyhicks: Backport around missing commit a06ad63]
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
arch/x86/mm/init.c
include/linux/swapfile.h
mm/swapfile.c