Merge android-4.9.95 (b4c14c2) into msm-4.9
* refs/heads/tmp-b4c14c2:
Linux 4.9.95
Revert "net: phy: micrel: Restore led_mode and clk_sel on resume"
arm64: futex: Mask __user pointers prior to dereference
lan78xx: Correctly indicate invalid OTP
vhost: fix vhost_vq_access_ok() log check
slip: Check if rstate is initialized before uncompressing
rds: MP-RDS may use an invalid c_path
cdc_ether: flag the Cinterion AHS8 modem by gemalto as WWAN
hwmon: (ina2xx) Fix access to uninitialized mutex
rtl8187: Fix NULL pointer dereference in priv->conf_mutex
Bluetooth: Fix connection if directed advertising and privacy is used
getname_kernel() needs to make sure that ->name != ->iname in long case
s390/ipl: ensure loadparm valid flag is set
s390/qdio: don't merge ERROR output buffers
s390/qdio: don't retry EQBS after CCQ 96
nfit: fix region registration vs block-data-window ranges
block/loop: fix deadlock after loop_set_status
Revert "perf tests: Decompress kernel module before objdump"
sunrpc: remove incorrect HMAC request initialization
arm64: Kill PSCI_GET_VERSION as a variant-2 workaround
arm64: Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support
arm/arm64: smccc: Implement SMCCC v1.1 inline primitive
arm/arm64: smccc: Make function identifiers an unsigned quantity
firmware/psci: Expose SMCCC version through psci_ops
firmware/psci: Expose PSCI conduit
arm64: KVM: Add SMCCC_ARCH_WORKAROUND_1 fast handling
arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support
arm/arm64: KVM: Turn kvm_psci_version into a static inline
arm64: KVM: Make PSCI_VERSION a fast path
arm/arm64: KVM: Advertise SMCCC v1.1
arm/arm64: KVM: Implement PSCI 1.0 support
arm/arm64: KVM: Add smccc accessors to PSCI code
arm/arm64: KVM: Add PSCI_VERSION helper
arm/arm64: KVM: Consolidate the PSCI include files
arm64: KVM: Increment PC after handling an SMC trap
arm64: Branch predictor hardening for Cavium ThunderX2
arm64: Implement branch predictor hardening for affected Cortex-A CPUs
arm64: cpu_errata: Allow an erratum to be match for all revisions of a core
arm64: cputype: Add missing MIDR values for Cortex-A72 and Cortex-A75
arm64: entry: Apply BP hardening for suspicious interrupts from EL0
arm64: entry: Apply BP hardening for high-priority synchronous exceptions
arm64: KVM: Use per-CPU vector when BP hardening is enabled
mm: Introduce lm_alias
arm64: Move BP hardening to check_and_switch_context
arm64: Add skeleton to harden the branch predictor against aliasing attacks
arm64: Move post_ttbr_update_workaround to C code
arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm macro
drivers/firmware: Expose psci_get_version through psci_ops structure
arm64: cpufeature: Pass capability structure to ->enable callback
arm64: Run enable method for errata work arounds on late CPUs
arm64: cpufeature: __this_cpu_has_cap() shouldn't stop early
arm64: uaccess: Mask __user pointers for __arch_{clear, copy_*}_user
arm64: uaccess: Don't bother eliding access_ok checks in __{get, put}_user
arm64: uaccess: Prevent speculative use of the current addr_limit
arm64: entry: Ensure branch through syscall table is bounded under speculation
arm64: Use pointer masking to limit uaccess speculation
arm64: Make USER_DS an inclusive limit
arm64: move TASK_* definitions to <asm/processor.h>
arm64: Implement array_index_mask_nospec()
arm64: barrier: Add CSDB macros to control data-value prediction
radeon: hide pointless #warning when compile testing
perf/core: Fix use-after-free in uprobe_perf_close()
perf intel-pt: Fix timestamp following overflow
perf intel-pt: Fix error recovery from missing TIP packet
perf intel-pt: Fix sync_switch
perf intel-pt: Fix overlap detection to identify consecutive buffers correctly
Drivers: hv: vmbus: do not mark HV_PCIE as perf_device
parisc: Fix out of array access in match_pci_device()
media: v4l2-compat-ioctl32: don't oops on overlay
Conflicts:
arch/arm64/Kconfig
arch/arm64/include/asm/cpucaps.h
arch/arm64/include/asm/cputype.h
arch/arm64/include/asm/kvm_mmu.h
arch/arm64/include/asm/mmu.h
arch/arm64/include/asm/uaccess.h
arch/arm64/kernel/bpi.S
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/entry.S
arch/arm64/kvm/hyp/switch.c
arch/arm64/mm/fault.c
Change-Id: I4a68c54bcaba175a58046d59ccb589cda16ec6db
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 1b135e5..9c01a31 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -825,6 +825,18 @@
If unsure, say Y.
+config PSCI_BP_HARDENING
+ depends on HARDEN_BRANCH_PREDICTOR
+ bool "Use PSCI get version to enable branch predictor hardening"
+ help
+ If the mitigation for branch prediction is supported using psci
+ get version by the firmware then enable this option. Some older
+ versions of firmwares may not be using new SMCCC convention in
+ such cases use psci get version method to enable hardening for
+ branch prediction attacks.
+
+ If unsure, say N.
+
menuconfig ARMV8_DEPRECATED
bool "Emulate deprecated/obsolete ARMv8 instructions"
depends on COMPAT