[GIT PULL] RISC-V Patches for the 5.9 Merge Window, Part 1

From: Palmer Dabbelt
Date: Thu Aug 06 2020 - 19:17:53 EST


The following changes since commit 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68:

Linux 5.8-rc3 (2020-06-28 15:00:24 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.9-mw0

for you to fetch changes up to 40284a072c42f6177184fb1f62ba94c69e0c0277:

riscv: disable stack-protector for vDSO (2020-08-04 15:02:49 -0700)

----------------------------------------------------------------
RISC-V Patches for the 5.9 Merge Window, Part 1

We have a lot of new kernel features for this merge window:

* ARCH_SUPPORTS_ATOMIC_RMW, to allow OSQ locks to be enabled.
* The ability to enable NO_HZ_FULL
* Support for enabling kcov, kmemleak, stack protector, and VM debugging.
* JUMP_LABEL support.

There are also a handful of cleanups.

next points out a trivial Kconfig merge conflict. I don't see any way to have
done this better: the symbols are sorted, it just happens that
HAVE_COPY_THREAD_TLS was in the middle of two new symbols. In case it helps
any, here's a pretty current conflict resolution:

diff --cc arch/riscv/Kconfig
index bc37241a6875,6c4bce7cad8a..7b5905529146
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@@ -57,9 -54,6 +59,8 @@@ config RISC
select HAVE_ARCH_SECCOMP_FILTER
select HAVE_ARCH_TRACEHOOK
select HAVE_ASM_MODVERSIONS
+ select HAVE_CONTEXT_TRACKING
- select HAVE_COPY_THREAD_TLS
+ select HAVE_DEBUG_KMEMLEAK
select HAVE_DMA_CONTIGUOUS if MMU
select HAVE_EBPF_JIT if MMU
select HAVE_FUTEX_CMPXCHG if FUTEX

----------------------------------------------------------------
Alexander A. Klimov (1):
Replace HTTP links with HTTPS ones: RISC-V

Atish Patra (2):
RISC-V: Setup exception vector early
RISC-V: Fix build warning for smpboot.c

Chenxi Mao (1):
riscv: Select ARCH_SUPPORTS_ATOMIC_RMW by default

Emil Renner Berthing (3):
riscv: Support R_RISCV_ADD64 and R_RISCV_SUB64 relocs
riscv: Add jump-label implementation
riscv: Select ARCH_HAS_DEBUG_VM_PGTABLE

Greentime Hu (3):
RISC-V: Use a local variable instead of smp_processor_id()
riscv: Support irq_work via self IPIs
riscv: Enable context tracking

Guo Ren (4):
riscv: Fixup static_obj() fail
riscv: Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT
riscv: Add STACKPROTECTOR supported
riscv: Cleanup unnecessary define in asm-offset.c

Pekka Enberg (2):
mm: pgtable: Make generic pgprot_* macros available for no-MMU
riscv: Use generic pgprot_* macros from <linux/pgtable.h>

Tobias Klauser (4):
riscv: Allow building with kcov coverage
riscv: Add kmemleak support
riscv: Fix typo in asm/hwcap.h uapi header
riscv: disable stack-protector for vDSO

Zong Li (4):
riscv: Register System RAM as iomem resources
riscv: Fixup lockdep_assert_held with wrong param cpu_running
riscv: Fix build warning for mm/init
riscv: fix build warning of mm/pageattr

.../features/core/jump-labels/arch-support.txt | 2 +-
.../debug/debug-vm-pgtable/arch-support.txt | 2 +-
arch/riscv/Kconfig | 12 ++++
arch/riscv/boot/Makefile | 2 +
arch/riscv/configs/defconfig | 1 +
arch/riscv/configs/nommu_k210_defconfig | 1 +
arch/riscv/configs/nommu_virt_defconfig | 1 +
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/include/asm/irq_work.h | 10 +++
arch/riscv/include/asm/jump_label.h | 60 ++++++++++++++++++
arch/riscv/include/asm/mmio.h | 6 --
arch/riscv/include/asm/smp.h | 3 +
arch/riscv/include/asm/stackprotector.h | 33 ++++++++++
arch/riscv/include/uapi/asm/hwcap.h | 2 +-
arch/riscv/include/uapi/asm/unistd.h | 2 +-
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/asm-offsets.c | 3 -
arch/riscv/kernel/entry.S | 54 ++++++++++++++--
arch/riscv/kernel/head.S | 10 ++-
arch/riscv/kernel/jump_label.c | 53 ++++++++++++++++
arch/riscv/kernel/module.c | 16 +++++
arch/riscv/kernel/process.c | 6 ++
arch/riscv/kernel/smp.c | 15 +++++
arch/riscv/kernel/smpboot.c | 12 ++--
arch/riscv/kernel/traps.c | 8 +--
arch/riscv/kernel/vdso/Makefile | 3 +
arch/riscv/kernel/vmlinux.lds.S | 2 +-
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/init.c | 27 ++++++++
arch/riscv/mm/pageattr.c | 3 +-
include/linux/pgtable.h | 71 +++++++++++-----------
tools/arch/riscv/include/uapi/asm/unistd.h | 2 +-
32 files changed, 356 insertions(+), 71 deletions(-)
create mode 100644 arch/riscv/include/asm/irq_work.h
create mode 100644 arch/riscv/include/asm/jump_label.h
create mode 100644 arch/riscv/include/asm/stackprotector.h
create mode 100644 arch/riscv/kernel/jump_label.c