[GIT PULL] arm64: Fixes for -rc4

From: Will Deacon
Date: Thu Oct 17 2019 - 19:43:55 EST


Hi Linus,

Please pull these arm64 fixes for -rc4. The main thing here is a
long-awaited workaround for a CPU erratum on ThunderX2 which we have
developed in conjunction with engineers from Cavium/Marvell. At the moment,
the workaround is unconditionally enabled for affected CPUs at runtime
but we may add a command-line option to disable it in future if performance
numbers show up indicating a significant cost for real workloads.

The other fixes are summarised in the tag.

Note that the workaround code ended up being based on -rc2, so I had a
bit of a faff trying to generate the right diffstat for this pull request
after merging that branch into our fixes branch based on -rc1. In the end
I had to emulate the pull locally because I couldn't figure out how to
drive request-pull correctly despite the shortlog being correct. I'd love
to know what I should've done instead.

Thanks,

Will

--->8

The following changes since commit 3e7c93bd04edfb0cae7dad1215544c9350254b8f:

arm64: armv8_deprecated: Checking return value for memory allocation (2019-10-08 13:34:04 +0100)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git tags/arm64-fixes

for you to fetch changes up to 777d062e5bee0e3c0751cdcbce116a76ee2310ec:

Merge branch 'errata/tx2-219' into for-next/fixes (2019-10-17 13:42:42 -0700)

----------------------------------------------------------------
arm64 fixes for -rc4

- Work around Cavium/Marvell ThunderX2 erratum #219

- Fix regression in mlock() ABI caused by sign-extension of TTBR1 addresses

- More fixes to the spurious kernel fault detection logic

- Fix pathological preemption race when enabling some CPU features at boot

- Drop broken kcore macros in favour of generic implementations

- Fix userspace view of ID_AA64ZFR0_EL1 when SVE is disabled

- Avoid NULL dereference on allocation failure during hibernation

----------------------------------------------------------------
Chris von Recklinghausen (1):
arm64: Fix kcore macros after 52-bit virtual addressing fallout

Julien Grall (1):
arm64: cpufeature: Treat ID_AA64ZFR0_EL1 as RAZ when SVE is not enabled

Julien Thierry (1):
arm64: entry.S: Do not preempt from IRQ before all cpufeatures are enabled

Marc Zyngier (4):
arm64: KVM: Trap VM ops when ARM64_WORKAROUND_CAVIUM_TX2_219_TVM is set
arm64: Enable workaround for Cavium TX2 erratum 219 when running SMT
arm64: Avoid Cavium TX2 erratum 219 when switching TTBR
arm64: Allow CAVIUM_TX2_ERRATUM_219 to be selected

Mark Rutland (1):
arm64: mm: fix inverted PAR_EL1.F check

Pavel Tatashin (1):
arm64: hibernate: check pgd table allocation

Will Deacon (2):
arm64: tags: Preserve tags for addresses translated via TTBR1
Merge branch 'errata/tx2-219' into for-next/fixes

Yang Yingliang (1):
arm64: sysreg: fix incorrect definition of SYS_PAR_EL1_F

Documentation/arm64/silicon-errata.rst | 2 +
arch/arm64/Kconfig | 17 +++++++++
arch/arm64/include/asm/asm-uaccess.h | 7 ++--
arch/arm64/include/asm/cpucaps.h | 4 +-
arch/arm64/include/asm/memory.h | 10 ++++-
arch/arm64/include/asm/pgtable.h | 3 --
arch/arm64/include/asm/sysreg.h | 2 +-
arch/arm64/kernel/cpu_errata.c | 38 +++++++++++++++++++
arch/arm64/kernel/cpufeature.c | 15 +++++---
arch/arm64/kernel/entry.S | 8 ++--
arch/arm64/kernel/hibernate.c | 9 ++++-
arch/arm64/kernel/process.c | 18 +++++++++
arch/arm64/kvm/hyp/switch.c | 69 +++++++++++++++++++++++++++++++++-
arch/arm64/mm/fault.c | 6 ++-
include/linux/sched.h | 1 +
15 files changed, 186 insertions(+), 23 deletions(-)