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

From: Palmer Dabbelt
Date: Thu Dec 17 2020 - 22:12:57 EST


The following changes since commit 3650b228f83adda7e5ee532e2b90429c03f7b9ec:

Linux 5.10-rc1 (2020-10-25 15:14:11 -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.11-mw0

for you to fetch changes up to 7d95a88f9254b711a3a95106fc73f6a3a9866a40:

Add and use a generic version of devmem_is_allowed() (2020-12-11 12:30:26 -0800)

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

We have a handful of new kernel features for 5.11:

* Support for the contiguous memory allocator.
* Support for IRQ Time Accounting
* Support for stack tracing
* Support for strict /dev/mem
* Support for kernel section protection

I'm being a bit conservative on the cutoff for this round due to the
timing, so this is all the new development I'm going to take for this
cycle (even if some of it probably normally would have been OK). There
are, however, some fixes on the list that I will likely be sending along
either later this week or early next week.

There is one issue in here: one of my test configurations
(PREEMPT{,_DEBUG}=y) fails to boot on QEMU 5.0.0 (from April) as of the
.text.init alignment patch. With any luck we'll sort out the issue, but
given how many bugs get fixed all over the place and how unrelated those
features seem my guess is that we're just running into something that's
been lurking for a while and has already been fixed in the newer QEMU
(though I wouldn't be surprised if it's one of these implicit
assumptions we have in the boot flow). If it was hardware I'd be
strongly inclined to look more closely, but given that users can upgrade
their simulators I'm less worried about it.

There are two merge conflicts, both in build files. They're both a bit
clunky: arch/riscv/Kconfig is out of order (I have a script that's
supposed to keep them in order, I'll fix it) and lib/Makefile is out of
order (though GENERIC_LIB here doesn't mean quite what it does above).

----------------------------------------------------------------
Atish Patra (4):
RISC-V: Initialize SBI early
RISC-V: Align the .init.text section
RISC-V: Protect all kernel sections including init early
RISC-V: Move dynamic relocation section under __init

Kefeng Wang (9):
riscv: Fix compressed Image formats build
riscv: Clean up boot dir
riscv: Ignore Image.* and loader.bin
riscv: Enable CMA support
riscv: Add HAVE_IRQ_TIME_ACCOUNTING
riscv: Cleanup stacktrace
riscv: Make stack walk callback consistent with generic code
riscv: Enable ARCH_STACKWALK
riscv: kernel: Drop unused clean rule

Nick Kossifidis (1):
RISC-V: Add kernel image sections to the resource tree

Nylon Chen (1):
riscv: provide memmove implementation

Palmer Dabbelt (5):
lib: Add a generic version of devmem_is_allowed()
RISC-V: Use the new generic devmem_is_allowed()
arm: Use the generic devmem_is_allowed()
arm64: Use the generic devmem_is_allowed()
Add and use a generic version of devmem_is_allowed()

Souptick Joarder (1):
riscv: Fixed kernel test robot warning

.../features/time/irq-time-acct/arch-support.txt | 2 +-
arch/arm/Kconfig | 2 +-
arch/arm/include/asm/io.h | 1 -
arch/arm/mm/mmap.c | 22 ---
arch/arm64/Kconfig | 2 +-
arch/arm64/include/asm/io.h | 2 -
arch/arm64/mm/mmap.c | 21 ---
arch/riscv/Kconfig | 3 +
arch/riscv/Makefile | 6 +
arch/riscv/boot/.gitignore | 3 +-
arch/riscv/boot/Makefile | 2 +-
arch/riscv/include/asm/sections.h | 2 +
arch/riscv/include/asm/set_memory.h | 4 +
arch/riscv/include/asm/stacktrace.h | 17 ++
arch/riscv/include/asm/string.h | 8 +-
arch/riscv/kernel/Makefile | 2 -
arch/riscv/kernel/asm-offsets.c | 2 +
arch/riscv/kernel/head.S | 1 -
arch/riscv/kernel/perf_callchain.c | 10 +-
arch/riscv/kernel/riscv_ksyms.c | 2 +
arch/riscv/kernel/setup.c | 179 ++++++++++++++++++++-
arch/riscv/kernel/stacktrace.c | 62 ++-----
arch/riscv/kernel/vmlinux.lds.S | 63 +++++---
arch/riscv/lib/Makefile | 1 +
arch/riscv/lib/memmove.S | 64 ++++++++
arch/riscv/mm/init.c | 52 +++---
arch/riscv/mm/pageattr.c | 6 +
include/asm-generic/io.h | 4 +
lib/Kconfig | 3 +
lib/Kconfig.debug | 2 +-
lib/Makefile | 2 +
lib/devmem_is_allowed.c | 27 ++++
32 files changed, 402 insertions(+), 177 deletions(-)
create mode 100644 arch/riscv/include/asm/stacktrace.h
create mode 100644 arch/riscv/lib/memmove.S
create mode 100644 lib/devmem_is_allowed.c