This repository has been archived by the owner on Oct 4, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is the 4.4.144 stable release * tag 'v4.4.144': (108 commits) Linux 4.4.144 ubi: fastmap: Erase outdated anchor PEBs during attach ubi: Fix Fastmap's update_vol() ubi: Fix races around ubi_refill_pools() ubi: Be more paranoid while seaching for the most recent Fastmap ubi: Rework Fastmap attach base code ubi: Introduce vol_ignored() clk: tegra: Fix PLL_U post divider and initial rate on Tegra30 block: do not use interruptible wait anywhere x86/cpu: Re-apply forced caps every time CPU caps are re-read x86/xen: Add call of speculative_store_bypass_ht_init() to PV paths x86/bugs: Rename SSBD_NO to SSB_NO x86/speculation, KVM: Implement support for VIRT_SPEC_CTRL/LS_CFG x86/bugs: Rework spec_ctrl base and mask logic x86/bugs: Remove x86_spec_ctrl_set() x86/bugs: Expose x86_spec_ctrl_base directly x86/bugs: Unify x86_spec_ctrl_{set_guest, restore_host} x86/speculation: Rework speculative_store_bypass_update() x86/speculation: Add virtualized speculative store bypass disable support x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL ... Signed-off-by: Akhil Narang <akhilnarang.1999@gmail.com> Conflicts (resolved from nathanchance/env@ea950b8): drivers/mtd/ubi/wl.c include/uapi/linux/prctl.h kernel/sys.c sound/core/rawmidi.c
- Loading branch information
Showing
78 changed files
with
1,988 additions
and
657 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
=================== | ||
Speculation Control | ||
=================== | ||
|
||
Quite some CPUs have speculation-related misfeatures which are in | ||
fact vulnerabilities causing data leaks in various forms even across | ||
privilege domains. | ||
|
||
The kernel provides mitigation for such vulnerabilities in various | ||
forms. Some of these mitigations are compile-time configurable and some | ||
can be supplied on the kernel command line. | ||
|
||
There is also a class of mitigations which are very expensive, but they can | ||
be restricted to a certain set of processes or tasks in controlled | ||
environments. The mechanism to control these mitigations is via | ||
:manpage:`prctl(2)`. | ||
|
||
There are two prctl options which are related to this: | ||
|
||
* PR_GET_SPECULATION_CTRL | ||
|
||
* PR_SET_SPECULATION_CTRL | ||
|
||
PR_GET_SPECULATION_CTRL | ||
----------------------- | ||
|
||
PR_GET_SPECULATION_CTRL returns the state of the speculation misfeature | ||
which is selected with arg2 of prctl(2). The return value uses bits 0-3 with | ||
the following meaning: | ||
|
||
==== ===================== =================================================== | ||
Bit Define Description | ||
==== ===================== =================================================== | ||
0 PR_SPEC_PRCTL Mitigation can be controlled per task by | ||
PR_SET_SPECULATION_CTRL. | ||
1 PR_SPEC_ENABLE The speculation feature is enabled, mitigation is | ||
disabled. | ||
2 PR_SPEC_DISABLE The speculation feature is disabled, mitigation is | ||
enabled. | ||
3 PR_SPEC_FORCE_DISABLE Same as PR_SPEC_DISABLE, but cannot be undone. A | ||
subsequent prctl(..., PR_SPEC_ENABLE) will fail. | ||
==== ===================== =================================================== | ||
|
||
If all bits are 0 the CPU is not affected by the speculation misfeature. | ||
|
||
If PR_SPEC_PRCTL is set, then the per-task control of the mitigation is | ||
available. If not set, prctl(PR_SET_SPECULATION_CTRL) for the speculation | ||
misfeature will fail. | ||
|
||
PR_SET_SPECULATION_CTRL | ||
----------------------- | ||
|
||
PR_SET_SPECULATION_CTRL allows to control the speculation misfeature, which | ||
is selected by arg2 of :manpage:`prctl(2)` per task. arg3 is used to hand | ||
in the control value, i.e. either PR_SPEC_ENABLE or PR_SPEC_DISABLE or | ||
PR_SPEC_FORCE_DISABLE. | ||
|
||
Common error codes | ||
------------------ | ||
======= ================================================================= | ||
Value Meaning | ||
======= ================================================================= | ||
EINVAL The prctl is not implemented by the architecture or unused | ||
prctl(2) arguments are not 0. | ||
|
||
ENODEV arg2 is selecting a not supported speculation misfeature. | ||
======= ================================================================= | ||
|
||
PR_SET_SPECULATION_CTRL error codes | ||
----------------------------------- | ||
======= ================================================================= | ||
Value Meaning | ||
======= ================================================================= | ||
0 Success | ||
|
||
ERANGE arg3 is incorrect, i.e. it's neither PR_SPEC_ENABLE nor | ||
PR_SPEC_DISABLE nor PR_SPEC_FORCE_DISABLE. | ||
|
||
ENXIO Control of the selected speculation misfeature is not possible. | ||
See PR_GET_SPECULATION_CTRL. | ||
|
||
EPERM Speculation was disabled with PR_SPEC_FORCE_DISABLE and caller | ||
tried to enable it again. | ||
======= ================================================================= | ||
|
||
Speculation misfeature controls | ||
------------------------------- | ||
- PR_SPEC_STORE_BYPASS: Speculative Store Bypass | ||
|
||
Invocations: | ||
* prctl(PR_GET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, 0, 0, 0); | ||
* prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_ENABLE, 0, 0); | ||
* prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); | ||
* prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_FORCE_DISABLE, 0, 0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
VERSION = 4 | ||
PATCHLEVEL = 4 | ||
SUBLEVEL = 143 | ||
SUBLEVEL = 144 | ||
EXTRAVERSION = | ||
NAME = Blurry Fish Butt | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.