[GIT PULL] arm64: Fixes for -rc3

From: Will Deacon
Date: Wed Oct 09 2019 - 09:31:00 EST

Hi Linus,

Here is a larger-than-usual batch of arm64 fixes for -rc3. The bulk of
the fixes are dealing with a bunch of issues with the build system from
the compat vDSO, which unfortunately led to some significant Makefile
rework to manage the horrible combinations of toolchains that we can end
up needing to drive simultaneously. We came close to disabling the thing
entirely, but Vincenzo was quick to spin up some patches and I ended up
picking up most of the bits that were left. Future work will look at
disentangling the header files properly.

My subsequent vDSO fixes were:

Reviewed-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx>
Tested-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx>

but they were already in linux-next by then and I didn't want to rebase,
so hopefully you can just include those in the merge commit.

Other than that, we have some important fixes all over, including one
papering over the miscompilation fallout from forcing
CONFIG_OPTIMIZE_INLINING=y, which I'm still unhappy about. Harumph.

We've still got a couple of open issues, so I'm expecting to have some
more fixes later this cycle.

Thanks, and please pull.



The following changes since commit 54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c:

Linux 5.4-rc1 (2019-09-30 10:35:40 -0700)

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 3e7c93bd04edfb0cae7dad1215544c9350254b8f:

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

arm64 fixes for -rc3

- Numerous fixes to the compat vDSO build system, especially when
combining gcc and clang

- Fix parsing of PAR_EL1 in spurious kernel fault detection

- Partial workaround for Neoverse-N1 erratum #1542419

- Fix IRQ priority masking on entry from compat syscalls

- Fix advertisment of FRINT HWCAP to userspace

- Attempt to workaround inlining breakage with '__always_inline'

- Fix accidental freeing of parent SVE state on fork() error path

- Add some missing NULL pointer checks in instruction emulation init

- Some formatting and comment fixes

Adam Zerella (1):
docs: arm64: Fix indentation and doc formatting

James Morse (2):
arm64: Fix incorrect irqflag restore for priority masking for compat
arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419

Julien Grall (1):
arm64: cpufeature: Effectively expose FRINT capability to userspace

Mark Rutland (2):
arm64: mm: avoid virt_to_phys(init_mm.pgd)
arm64: mm: fix spurious fault detection

Masayoshi Mizuma (1):
arm64/sve: Fix wrong free for task->thread.sve_state

Thierry Reding (1):
arm64: errata: Update stale comment

Vincenzo Frascino (5):
arm64: vdso32: Fix broken compat vDSO build warnings
arm64: vdso: Remove stale files from old assembly implementation
arm64: vdso32: Detect binutils support for dmb ishld
arm64: vdso32: Remove jump label config option in Makefile

Will Deacon (7):
arm64: Mark functions using explicit register variables as '__always_inline'
arm64: Default to building compat vDSO with clang when CONFIG_CC_IS_CLANG
arm64: vdso32: Move definition of COMPATCC into vdso32/Makefile
arm64: vdso32: Don't use KBUILD_CPPFLAGS unconditionally
arm64: vdso32: Pass '--target' option to clang via VDSO_CAFLAGS
arm64: vdso32: Rename COMPATCC to CC_COMPAT
arm64: Kconfig: Make CONFIG_COMPAT_VDSO a proper Kconfig option

Yunfeng Ye (1):
arm64: armv8_deprecated: Checking return value for memory allocation

Documentation/arm64/memory.rst | 9 +++++-
arch/arm64/Kconfig | 15 ++++++++--
arch/arm64/Makefile | 16 ----------
arch/arm64/include/asm/atomic_lse.h | 6 ++--
arch/arm64/include/asm/vdso/compat_barrier.h | 2 +-
arch/arm64/include/asm/vdso_datapage.h | 33 ---------------------
arch/arm64/kernel/armv8_deprecated.c | 5 ++++
arch/arm64/kernel/cpu_errata.c | 4 +--
arch/arm64/kernel/cpufeature.c | 1 +
arch/arm64/kernel/entry.S | 1 +
arch/arm64/kernel/ftrace.c | 12 ++++++--
arch/arm64/kernel/process.c | 32 ++++++++++----------
arch/arm64/kernel/vdso/gettimeofday.S | 0
arch/arm64/kernel/vdso32/Makefile | 44 ++++++++++++++++++----------
arch/arm64/mm/fault.c | 13 ++++++--
lib/vdso/Kconfig | 9 ------
16 files changed, 98 insertions(+), 104 deletions(-)
delete mode 100644 arch/arm64/include/asm/vdso_datapage.h
delete mode 100644 arch/arm64/kernel/vdso/gettimeofday.S