summaryrefslogtreecommitdiff
path: root/arch/arm64/kernel
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@google.com>2019-08-11 15:41:31 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2019-08-11 15:41:31 +0200
commit74c82193e89daaa486f49dc8a4f8ed38f0460159 (patch)
tree78bfe03cd39cd778d95e1215d8e53a53ff4ebb44 /arch/arm64/kernel
parent89a387f7fc8079d8938c0632b75769b5622ac16b (diff)
parent3904234bd04fa7c40467e5d8b3301893fae16e87 (diff)
Merge 4.4.189 into android-4.4
Changes in 4.4.189 arm64: cpufeature: Fix CTR_EL0 field definitions arm64: cpufeature: Fix feature comparison for CTR_EL0.{CWG,ERG} netfilter: nfnetlink_acct: validate NFACCT_QUOTA parameter HID: Add quirk for HP X1200 PIXART OEM mouse tcp: be more careful in tcp_fragment() atm: iphase: Fix Spectre v1 vulnerability net: bridge: delete local fdb on device init failure net: fix ifindex collision during namespace removal tipc: compat: allow tipc commands without arguments net: sched: Fix a possible null-pointer dereference in dequeue_func() net/mlx5: Use reversed order when unregister devices bnx2x: Disable multi-cos feature. compat_ioctl: pppoe: fix PPPOEIOCSFWD handling block: blk_init_allocated_queue() set q->fq as NULL in the fail case spi: bcm2835: Fix 3-wire mode if DMA is enabled x86: cpufeatures: Sort feature word 7 x86/entry/64: Fix context tracking state warning when load_gs_index fails x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations x86/speculation: Enable Spectre v1 swapgs mitigations x86/entry/64: Use JMP instead of JMPQ x86/speculation/swapgs: Exclude ATOMs from speculation through SWAPGS Linux 4.4.189 Change-Id: I3d4e7965c8f5547ab025236686ea0d60e0b6e1f4 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r--arch/arm64/kernel/cpufeature.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index 847c700faa87..b6e587339c15 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -137,10 +137,12 @@ static struct arm64_ftr_bits ftr_id_aa64mmfr2[] = {
};
static struct arm64_ftr_bits ftr_ctr[] = {
- U_ARM64_FTR_BITS(FTR_STRICT, FTR_EXACT, 31, 1, 1), /* RAO */
- ARM64_FTR_BITS(FTR_STRICT, FTR_EXACT, 28, 3, 0),
- U_ARM64_FTR_BITS(FTR_STRICT, FTR_HIGHER_SAFE, 24, 4, 0), /* CWG */
- U_ARM64_FTR_BITS(FTR_STRICT, FTR_LOWER_SAFE, 20, 4, 0), /* ERG */
+ U_ARM64_FTR_BITS(FTR_STRICT, FTR_EXACT, 31, 1, 1), /* RES1 */
+ ARM64_FTR_BITS(FTR_STRICT, FTR_EXACT, 30, 1, 0),
+ U_ARM64_FTR_BITS(FTR_STRICT, FTR_LOWER_SAFE, 29, 1, 1), /* DIC */
+ U_ARM64_FTR_BITS(FTR_STRICT, FTR_LOWER_SAFE, 28, 1, 1), /* IDC */
+ U_ARM64_FTR_BITS(FTR_STRICT, FTR_HIGHER_OR_ZERO_SAFE, 24, 4, 0), /* CWG */
+ U_ARM64_FTR_BITS(FTR_STRICT, FTR_HIGHER_OR_ZERO_SAFE, 20, 4, 0), /* ERG */
U_ARM64_FTR_BITS(FTR_STRICT, FTR_LOWER_SAFE, 16, 4, 1), /* DminLine */
/*
* Linux can handle differing I-cache policies. Userspace JITs will
@@ -351,6 +353,10 @@ static s64 arm64_ftr_safe_value(struct arm64_ftr_bits *ftrp, s64 new, s64 cur)
case FTR_LOWER_SAFE:
ret = new < cur ? new : cur;
break;
+ case FTR_HIGHER_OR_ZERO_SAFE:
+ if (!cur || !new)
+ break;
+ /* Fallthrough */
case FTR_HIGHER_SAFE:
ret = new > cur ? new : cur;
break;