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

From: Palmer Dabbelt
Date: Fri May 17 2019 - 18:56:47 EST


The following changes since commit 085b7755808aa11f78ab9377257e1dad2e6fa4bb:

Linux 5.1-rc6 (2019-04-21 10:45:57 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux.git tags/riscv-for-linus-5.2-mw2

for you to fetch changes up to 8fef9900d43feb9d5017c72840966733085e3e82:

riscv: fix locking violation in page fault handler (2019-05-16 20:42:13 -0700)

----------------------------------------------------------------
RISC-V Patches for the 5.2 Merge Window, Part 1 v3

This patch set contains an assortment of RISC-V related patches that I'd
like to target for the 5.2 merge window. Most of the patches are
cleanups, but there are a handful of user-visible changes:

* The nosmp and nr_cpus command-line arguments are now supported, which
work like normal.
* The SBI console no longer installs itself as a preferred console, we
rely on standard mechanisms (/chosen, command-line, hueristics)
instead.
* sfence_remove_sfence_vma{,_asid} now pass their arguments along to the
SBI call.
* Modules now support BUG().
* A missing sfence.vma during boot has been added. This bug only
manifests during boot.
* The arch/riscv support for SiFive's L2 cache controller has been
merged, which should un-block the EDAC framework work.

I've only tested this on QEMU again, as I didn't have time to get things
running on the Unleashed. The latest master from this morning merges in
cleanly and passes the tests as well.

This patch set rebased my "5.2 MW, Part 1" patch set which includes an
erronous empty file. It's also a rebase of my "5.2 MW, Part 2" patch
set, in which I managed to create another file while attempting to
remove the empty file.

Sorry for all the noise!

----------------------------------------------------------------
Andreas Schwab (1):
riscv: fix locking violation in page fault handler

Anup Patel (4):
RISC-V: Use tabs to align macro values in asm/csr.h
RISC-V: Add interrupt related SCAUSE defines in asm/csr.h
RISC-V: Access CSRs using CSR numbers
tty: Don't force RISCV SBI console as preferred console

Atish Patra (4):
RISC-V: Add RISC-V specific arch_match_cpu_phys_id
RISC-V: Implement nosmp commandline option.
RISC-V: Support nr_cpus command line option.
RISC-V: Fix minor checkpatch issues.

Christoph Hellwig (11):
riscv: use asm-generic/extable.h
riscv: turn mm_segment_t into a struct
riscv: remove unreachable big endian code
riscv: remove CONFIG_RISCV_ISA_A
riscv: clear all pending interrupts when booting
riscv: simplify the stack pointer setup in head.S
riscv: cleanup the parse_dtb calling conventions
riscv: remove unreachable !HAVE_FUNCTION_GRAPH_RET_ADDR_PTR code
riscv: remove duplicate macros from ptrace.h
riscv: print the unexpected interrupt cause
riscv: call pm_power_off from machine_halt / machine_power_off

Gary Guo (3):
riscv: move flush_icache_{all,mm} to cacheflush.c
riscv: move switch_mm to its own file
riscv: fix sbi_remote_sfence_vma{,_asid}.

Guo Ren (1):
riscv/signal: Fixup additional syscall restarting

Nick Desaulniers (1):
riscv: vdso: drop unnecessary cc-ldoption

Palmer Dabbelt (1):
RISC-V: Avoid using invalid intermediate translations

Vincent Chen (3):
riscv: support trap-based WARN()
riscv: Add the support for c.ebreak check in is_valid_bugaddr()
riscv: Support BUG() in kernel module

Yash Shah (2):
RISC-V: Add DT documentation for SiFive L2 Cache Controller
RISC-V: sifive_l2_cache: Add L2 cache controller driver for SiFive SoCs

.../devicetree/bindings/riscv/sifive-l2-cache.txt | 51 ++++++
arch/riscv/Kconfig | 6 +-
arch/riscv/Makefile | 5 +-
arch/riscv/include/asm/Kbuild | 1 +
arch/riscv/include/asm/bug.h | 35 +++--
arch/riscv/include/asm/cacheflush.h | 2 +-
arch/riscv/include/asm/csr.h | 123 +++++++++------
arch/riscv/include/asm/elf.h | 6 -
arch/riscv/include/asm/futex.h | 13 --
arch/riscv/include/asm/irqflags.h | 10 +-
arch/riscv/include/asm/mmu_context.h | 59 +------
arch/riscv/include/asm/ptrace.h | 21 +--
arch/riscv/include/asm/sbi.h | 19 ++-
arch/riscv/include/asm/sifive_l2_cache.h | 16 ++
arch/riscv/include/asm/thread_info.h | 4 +-
arch/riscv/include/asm/uaccess.h | 28 ++--
arch/riscv/kernel/asm-offsets.c | 3 -
arch/riscv/kernel/cpu.c | 3 +-
arch/riscv/kernel/entry.S | 22 +--
arch/riscv/kernel/head.S | 33 ++--
arch/riscv/kernel/irq.c | 19 +--
arch/riscv/kernel/perf_event.c | 4 +-
arch/riscv/kernel/reset.c | 15 +-
arch/riscv/kernel/setup.c | 6 +-
arch/riscv/kernel/signal.c | 6 +
arch/riscv/kernel/smp.c | 61 ++-----
arch/riscv/kernel/smpboot.c | 22 ++-
arch/riscv/kernel/stacktrace.c | 14 +-
arch/riscv/kernel/traps.c | 30 +++-
arch/riscv/kernel/vdso/Makefile | 2 +-
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/cacheflush.c | 61 +++++++
arch/riscv/mm/context.c | 69 ++++++++
arch/riscv/mm/fault.c | 9 +-
arch/riscv/mm/sifive_l2_cache.c | 175 +++++++++++++++++++++
drivers/tty/hvc/hvc_riscv_sbi.c | 1 -
36 files changed, 635 insertions(+), 321 deletions(-)
create mode 100644 Documentation/devicetree/bindings/riscv/sifive-l2-cache.txt
create mode 100644 arch/riscv/include/asm/sifive_l2_cache.h
create mode 100644 arch/riscv/mm/context.c
create mode 100644 arch/riscv/mm/sifive_l2_cache.c