No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Linus Torvalds 2f22b4cd45 x86/speculation/l1tf: Protect swap entries against L1TF
With L1 terminal fault the CPU speculates into unmapped PTEs, and resulting
side effects allow to read the memory the PTE is pointing too, if its
values are still in the L1 cache.

For swapped out pages Linux uses unmapped PTEs and stores a swap entry into
them.

To protect against L1TF it must be ensured that the swap entry is not
pointing to valid memory, which requires setting higher bits (between bit
36 and bit 45) that are inside the CPUs physical address space, but outside
any real memory.

To do this invert the offset to make sure the higher bits are always set,
as long as the swap file is not too big.

Note there is no workaround for 32bit !PAE, or on systems which have more
than MAX_PA/2 worth of memory. The later case is very unlikely to happen on
real systems.

[AK: updated description and minor tweaks by. Split out from the original
     patch ]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Andi Kleen <ak@linux.intel.com>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Dave Hansen <dave.hansen@intel.com>
2018-06-20 19:09:59 +02:00
arch x86/speculation/l1tf: Protect swap entries against L1TF 2018-06-20 19:09:59 +02:00
block for-linus-20180616 2018-06-17 05:37:55 +09:00
certs docs: Fix some broken references 2018-06-15 18:10:01 -03:00
crypto docs: Fix some broken references 2018-06-15 18:10:01 -03:00
Documentation for-linus-20180616 2018-06-17 05:37:55 +09:00
drivers for-linus-20180616 2018-06-17 05:37:55 +09:00
firmware
fs Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
include for-linus-20180616 2018-06-17 05:37:55 +09:00
init Kbuild updates for v4.18 (2nd) 2018-06-13 08:40:34 -07:00
ipc ipc: use new return type vm_fault_t 2018-06-15 07:55:25 +09:00
kernel Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
lib docs: Fix some broken references 2018-06-15 18:10:01 -03:00
LICENSES LICENSES: Add Linux-OpenIB license text 2018-04-27 16:41:53 -06:00
mm mm: fix oom_kill event handling 2018-06-15 07:55:25 +09:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-06-16 07:39:34 +09:00
samples VFIO updates for v4.18 2018-06-12 13:11:26 -07:00
scripts scripts/documentation-file-ref-check: check tools/*/Documentation 2018-06-15 18:10:01 -03:00
security docs: Fix some broken references 2018-06-15 18:10:01 -03:00
sound docs: Fix some broken references 2018-06-15 18:10:01 -03:00
tools Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
usr
virt - Error path bug fix for overflow tests (Dan) 2018-06-12 18:28:00 -07:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Merge branch 'asoc-4.17' into asoc-4.18 for compress dependencies 2018-04-26 12:24:28 +01:00
COPYING
CREDITS
Kbuild
Kconfig kconfig: add basic helper macros to scripts/Kconfig.include 2018-05-29 03:31:19 +09:00
MAINTAINERS Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
Makefile Linux 4.18-rc1 2018-06-17 08:04:49 +09:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.