[GIT PULL] RISC-V Patches for the 5.12 Merge Window

From: Palmer Dabbelt
Date: Fri Feb 26 2021 - 10:40:29 EST


The following changes since commit e71ba9452f0b5b2e8dc8aa5445198cd9214a6a62:

Linux 5.11-rc2 (2021-01-03 15:55:30 -0800)

are available in the Git repository at:

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

for you to fetch changes up to d7fbcf40df86bb67193d9faf52138fc1202decb2:

riscv: Improve kasan population by using hugepages when possible (2021-02-22 18:54:17 -0800)

----------------------------------------------------------------
RISC-V Patches for the 5.12 Merge Window

I have a handful of new RISC-V related patches for this merge window:

* A check to ensure drivers are properly using uaccess. This isn't
manifesting with any of the drivers I'm currently using, but may catch
errors in new drivers.
* Some preliminary support for the FU740, along with the HiFive
Unleashed it will appear on.
* NUMA support for RISC-V, which involves making the arm64 code generic.
* Support for kasan on the vmalloc region.
* A handful of new drivers for the Kendryte K210, along with the DT
plumbing required to boot on a handful of K210-based boards.
* Support for allocating ASIDs.
* Preliminary support for kernels larger than 128MiB.
* Various other improvements to our KASAN support, including the
utilization of huge pages when allocating the KASAN regions.

We may have already found a bug with the KASAN_VMALLOC code, but it's
passing my tests. There's a fix in the works, but that will probably
miss the merge window.

---

We have a handful of merge conflicts this round. Here are my resolutions. The
arm64 one was part of the NUMA cleanup, the other two were part of the Kendryte
rename (it's Canaan now, and it's alphabetically sorted).

diff --cc arch/arm64/mm/Makefile
index cd60e4fed78f,77222d92667a..f188c9092696
--- a/arch/arm64/mm/Makefile
+++ b/arch/arm64/mm/Makefile
@@@ -6,6 -6,8 +6,7 @@@ obj-y := dma-mapping.o extable.o fau
obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
obj-$(CONFIG_PTDUMP_DEBUGFS) += ptdump_debugfs.o
+ obj-$(CONFIG_TRANS_TABLE) += trans_pgd.o
-obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_DEBUG_VIRTUAL) += physaddr.o
obj-$(CONFIG_ARM64_MTE) += mteswap.o
KASAN_SANITIZE_physaddr.o += n
diff --cc drivers/soc/Kconfig
index c0143651f4a9,f357c6c659d2..e8a30c4c5aec
--- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig
@@@ -23,6 -22,6 +23,5 @@@ source "drivers/soc/ti/Kconfig
source "drivers/soc/ux500/Kconfig"
source "drivers/soc/versatile/Kconfig"
source "drivers/soc/xilinx/Kconfig"
- source "drivers/soc/zte/Kconfig"
-source "drivers/soc/kendryte/Kconfig"

endmenu
diff --cc drivers/soc/Makefile
index 34b23645be14,9bceb12b291d..f678e4d9e585
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@@ -29,4 -28,4 +29,3 @@@ obj-y += ti
obj-$(CONFIG_ARCH_U8500) += ux500/
obj-$(CONFIG_PLAT_VERSATILE) += versatile/
obj-y += xilinx/
- obj-$(CONFIG_ARCH_ZX) += zte/
-obj-$(CONFIG_SOC_KENDRYTE) += kendryte/

----------------------------------------------------------------
Alexandre Ghiti (5):
riscv: Get rid of MAX_EARLY_MAPPING_SIZE
riscv: Improve kasan definitions
riscv: Use KASAN_SHADOW_INIT define for kasan memory initialization
riscv: Improve kasan population function
riscv: Improve kasan population by using hugepages when possible

Anup Patel (1):
RISC-V: Implement ASID allocator

Atish Patra (5):
arm64, numa: Change the numa init functions name to be generic
numa: Move numa implementation to common code
riscv: Separate memory init from paging init
riscv: Add numa support for riscv64 platform
RISC-V: Add a non-void return for sbi v02 functions

Chen Huang (1):
riscv/stacktrace: Fix stack output without ra on the stack top

Chengyang Fan (1):
RISC-V: remove unneeded semicolon

Damien Le Moal (26):
riscv: Fix builtin DTB handling
riscv: Use vendor name for K210 SoC support
riscv: Fix Canaan Kendryte K210 device tree
riscv: cleanup Canaan Kendryte K210 sysctl driver
dt-binding: mfd: Document canaan,k210-sysctl bindings
dt-bindings: reset: Document canaan,k210-rst bindings
dt-bindings: pinctrl: Document canaan,k210-fpioa bindings
riscv: Add Canaan Kendryte K210 reset controller
pinctrl: Add RISC-V Canaan Kendryte K210 FPIOA driver
clk: Add RISC-V Canaan Kendryte K210 clock driver
dt-bindings: update MAINTAINERS file
dt-bindings: add Canaan boards compatible strings
dt-bindings: update risc-v cpu properties
dt-bindings: update sifive plic compatible string
dt-bindings: update sifive clint compatible string
dt-bindings: update sifive uart compatible string
dt-bindings: fix sifive gpio properties
dt-bindings: add resets property to dw-apb-timer
riscv: Update Canaan Kendryte K210 device tree
riscv: Add SiPeed MAIX BiT board device tree
riscv: Add SiPeed MAIX DOCK board device tree
riscv: Add SiPeed MAIX GO board device tree
riscv: Add SiPeed MAIXDUINO board device tree
riscv: Add Kendryte KD233 board device tree
riscv: Update Canaan Kendryte K210 defconfig
riscv: Add Canaan Kendryte K210 SD card defconfig

Eric Lin (2):
riscv/mm: Introduce a die_kernel_fault() helper function
riscv/mm: Prevent kernel module to access user memory without uaccess routines

Greentime Hu (1):
riscv: Add support pte_protnone and pmd_protnone if CONFIG_NUMA_BALANCING

Guo Ren (9):
riscv: Fixup compile error BUILD_BUG_ON failed
riscv: Fixup wrong ftrace remove cflag
riscv: Fixup patch_text panic in ftrace
riscv: Using PATCHABLE_FUNCTION_ENTRY instead of MCOUNT
riscv: Add kprobes supported
riscv: Add KPROBES_ON_FTRACE supported
riscv: Add uprobes supported
riscv: Add support for function error injection
riscv: Enable per-task stack canaries

Kefeng Wang (8):
riscv: Cleanup sbi function stubs when RISCV_SBI disabled
riscv: Add machine name to kernel boot log and stack dump output
riscv: Add dump stack in show_regs
riscv: Improve __show_regs
initrd: Add the preprocessor guard in initrd.h
initramfs: Provide a common initrd reserve function
riscv: Covert to reserve_initrd_mem()
riscv: Remove unnecessary declaration

Nylon Chen (1):
riscv/kasan: add KASAN_VMALLOC support

Palmer Dabbelt (2):
RISC-V: probes: Treat the instruction stream as host-endian
soc: canaan: Sort the Makefile alphabetically

Patrick Stählin (1):
RISC-V: Implement ptrace regs and stack API

Randy Dunlap (1):
arch_numa: fix common code printing of phys_addr_t

Tobias Klauser (1):
riscv: Disable KSAN_SANITIZE for vDSO

Vitaly Wool (1):
riscv: add BUILTIN_DTB support for MMU-enabled targets

Yash Shah (8):
dt-bindings: riscv: Update l2 cache DT documentation to add support for SiFive FU740
RISC-V: sifive_l2_cache: Update L2 cache driver to support SiFive FU740
dt-bindings: riscv: Update DT binding docs to support SiFive FU740 SoC
dt-bindings: pwm: Update DT binding docs to support SiFive FU740 SoC
dt-bindings: gpio: Update DT binding docs to support SiFive FU740 SoC
riscv: dts: add initial support for the SiFive FU740-C000 SoC
dt-bindings: riscv: Update YAML doc to support SiFive HiFive Unmatched board
riscv: dts: add initial board data for the SiFive HiFive Unmatched

tangchunyou (1):
arch/riscv:fix typo in a comment in arch/riscv/kernel/image-vars.h

.../devicetree/bindings/gpio/sifive,gpio.yaml | 29 +-
.../interrupt-controller/sifive,plic-1.0.0.yaml | 13 +-
.../bindings/mfd/canaan,k210-sysctl.yaml | 109 +++
.../bindings/pinctrl/canaan,k210-fpioa.yaml | 171 ++++
.../devicetree/bindings/pwm/pwm-sifive.yaml | 9 +-
.../devicetree/bindings/reset/canaan,k210-rst.yaml | 40 +
.../devicetree/bindings/riscv/canaan.yaml | 47 +
Documentation/devicetree/bindings/riscv/cpus.yaml | 8 +
.../devicetree/bindings/riscv/sifive-l2-cache.yaml | 34 +-
.../devicetree/bindings/riscv/sifive.yaml | 17 +-
.../devicetree/bindings/serial/sifive-serial.yaml | 1 +
.../devicetree/bindings/timer/sifive,clint.yaml | 12 +-
.../bindings/timer/snps,dw-apb-timer.yaml | 3 +
MAINTAINERS | 23 +
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/numa.h | 48 +-
arch/arm64/kernel/acpi_numa.c | 12 -
arch/arm64/mm/Makefile | 1 -
arch/arm64/mm/init.c | 4 +-
arch/riscv/Kconfig | 48 +-
arch/riscv/Kconfig.socs | 33 +-
arch/riscv/Makefile | 14 +-
arch/riscv/boot/dts/Makefile | 2 +-
arch/riscv/boot/dts/canaan/Makefile | 5 +
arch/riscv/boot/dts/canaan/canaan_kd233.dts | 152 +++
arch/riscv/boot/dts/canaan/k210.dtsi | 459 +++++++++
arch/riscv/boot/dts/canaan/k210_generic.dts | 46 +
arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts | 209 ++++
arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts | 211 ++++
arch/riscv/boot/dts/canaan/sipeed_maix_go.dts | 219 +++++
arch/riscv/boot/dts/canaan/sipeed_maixduino.dts | 184 ++++
arch/riscv/boot/dts/kendryte/Makefile | 4 -
arch/riscv/boot/dts/kendryte/k210.dts | 23 -
arch/riscv/boot/dts/kendryte/k210.dtsi | 125 ---
arch/riscv/boot/dts/sifive/Makefile | 3 +-
arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 293 ++++++
.../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 253 +++++
arch/riscv/configs/nommu_k210_defconfig | 46 +-
arch/riscv/configs/nommu_k210_sdcard_defconfig | 92 ++
arch/riscv/include/asm/bug.h | 1 +
arch/riscv/include/asm/csr.h | 6 +
arch/riscv/include/asm/kasan.h | 22 +-
arch/riscv/include/asm/kprobes.h | 40 +
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/mmu_context.h | 10 +
arch/riscv/include/asm/mmzone.h | 13 +
arch/riscv/include/asm/numa.h | 8 +
arch/riscv/include/asm/page.h | 3 -
arch/riscv/include/asm/pci.h | 14 +
arch/riscv/include/asm/pgtable.h | 21 +
arch/riscv/include/asm/probes.h | 24 +
arch/riscv/include/asm/processor.h | 1 +
arch/riscv/include/asm/ptrace.h | 35 +
arch/riscv/include/asm/sbi.h | 18 +-
arch/riscv/include/asm/set_memory.h | 2 +-
arch/riscv/include/asm/soc.h | 38 -
arch/riscv/include/asm/stackprotector.h | 3 +-
arch/riscv/include/asm/stacktrace.h | 2 +
arch/riscv/include/asm/thread_info.h | 4 +-
arch/riscv/include/asm/uprobes.h | 40 +
arch/riscv/kernel/Makefile | 6 +-
arch/riscv/kernel/asm-offsets.c | 3 +
arch/riscv/kernel/ftrace.c | 95 +-
arch/riscv/kernel/head.S | 4 +
arch/riscv/kernel/image-vars.h | 2 +-
arch/riscv/kernel/mcount-dyn.S | 342 +++----
arch/riscv/kernel/patch.c | 8 +-
arch/riscv/kernel/probes/Makefile | 6 +
arch/riscv/kernel/probes/decode-insn.c | 48 +
arch/riscv/kernel/probes/decode-insn.h | 18 +
arch/riscv/kernel/probes/ftrace.c | 53 ++
arch/riscv/kernel/probes/kprobes.c | 398 ++++++++
arch/riscv/kernel/probes/kprobes_trampoline.S | 93 ++
arch/riscv/kernel/probes/simulate-insn.c | 85 ++
arch/riscv/kernel/probes/simulate-insn.h | 47 +
arch/riscv/kernel/probes/uprobes.c | 186 ++++
arch/riscv/kernel/process.c | 18 +-
arch/riscv/kernel/ptrace.c | 99 ++
arch/riscv/kernel/sbi.c | 36 +-
arch/riscv/kernel/setup.c | 23 +-
arch/riscv/kernel/signal.c | 3 +
arch/riscv/kernel/smpboot.c | 12 +-
arch/riscv/kernel/soc.c | 27 -
arch/riscv/kernel/stacktrace.c | 22 +-
arch/riscv/kernel/traps.c | 22 +-
arch/riscv/kernel/vdso/Makefile | 3 +-
arch/riscv/lib/Makefile | 2 +
arch/riscv/lib/error-inject.c | 10 +
arch/riscv/mm/Makefile | 3 +-
arch/riscv/mm/context.c | 265 +++++-
arch/riscv/mm/fault.c | 38 +-
arch/riscv/mm/init.c | 108 +--
arch/riscv/mm/kasan_init.c | 176 +++-
drivers/base/Kconfig | 6 +
drivers/base/Makefile | 1 +
arch/arm64/mm/numa.c => drivers/base/arch_numa.c | 40 +-
drivers/clk/Kconfig | 7 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-k210.c | 1007 ++++++++++++++++++++
drivers/pinctrl/Kconfig | 13 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/pinctrl-k210.c | 985 +++++++++++++++++++
drivers/reset/Kconfig | 10 +
drivers/reset/Makefile | 1 +
drivers/reset/reset-k210.c | 131 +++
drivers/soc/Kconfig | 2 +-
drivers/soc/Makefile | 2 +-
drivers/soc/canaan/Kconfig | 12 +
drivers/soc/canaan/Makefile | 3 +
drivers/soc/canaan/k210-sysctl.c | 78 ++
drivers/soc/kendryte/Kconfig | 14 -
drivers/soc/kendryte/Makefile | 3 -
drivers/soc/kendryte/k210-sysctl.c | 260 -----
drivers/soc/sifive/sifive_l2_cache.c | 27 +-
include/asm-generic/numa.h | 52 +
include/dt-bindings/clock/k210-clk.h | 1 -
include/dt-bindings/pinctrl/k210-fpioa.h | 276 ++++++
include/dt-bindings/reset/k210-rst.h | 42 +
include/linux/initrd.h | 11 +
include/soc/canaan/k210-sysctl.h | 43 +
init/initramfs.c | 45 +
121 files changed, 7605 insertions(+), 1040 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/canaan,k210-sysctl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
create mode 100644 Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml
create mode 100644 Documentation/devicetree/bindings/riscv/canaan.yaml
create mode 100644 arch/riscv/boot/dts/canaan/Makefile
create mode 100644 arch/riscv/boot/dts/canaan/canaan_kd233.dts
create mode 100644 arch/riscv/boot/dts/canaan/k210.dtsi
create mode 100644 arch/riscv/boot/dts/canaan/k210_generic.dts
create mode 100644 arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts
create mode 100644 arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts
create mode 100644 arch/riscv/boot/dts/canaan/sipeed_maix_go.dts
create mode 100644 arch/riscv/boot/dts/canaan/sipeed_maixduino.dts
delete mode 100644 arch/riscv/boot/dts/kendryte/Makefile
delete mode 100644 arch/riscv/boot/dts/kendryte/k210.dts
delete mode 100644 arch/riscv/boot/dts/kendryte/k210.dtsi
create mode 100644 arch/riscv/boot/dts/sifive/fu740-c000.dtsi
create mode 100644 arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts
create mode 100644 arch/riscv/configs/nommu_k210_sdcard_defconfig
create mode 100644 arch/riscv/include/asm/mmzone.h
create mode 100644 arch/riscv/include/asm/numa.h
create mode 100644 arch/riscv/include/asm/probes.h
create mode 100644 arch/riscv/include/asm/uprobes.h
create mode 100644 arch/riscv/kernel/probes/Makefile
create mode 100644 arch/riscv/kernel/probes/decode-insn.c
create mode 100644 arch/riscv/kernel/probes/decode-insn.h
create mode 100644 arch/riscv/kernel/probes/ftrace.c
create mode 100644 arch/riscv/kernel/probes/kprobes.c
create mode 100644 arch/riscv/kernel/probes/kprobes_trampoline.S
create mode 100644 arch/riscv/kernel/probes/simulate-insn.c
create mode 100644 arch/riscv/kernel/probes/simulate-insn.h
create mode 100644 arch/riscv/kernel/probes/uprobes.c
create mode 100644 arch/riscv/lib/error-inject.c
rename arch/arm64/mm/numa.c => drivers/base/arch_numa.c (93%)
create mode 100644 drivers/clk/clk-k210.c
create mode 100644 drivers/pinctrl/pinctrl-k210.c
create mode 100644 drivers/reset/reset-k210.c
create mode 100644 drivers/soc/canaan/Kconfig
create mode 100644 drivers/soc/canaan/Makefile
create mode 100644 drivers/soc/canaan/k210-sysctl.c
delete mode 100644 drivers/soc/kendryte/Kconfig
delete mode 100644 drivers/soc/kendryte/Makefile
delete mode 100644 drivers/soc/kendryte/k210-sysctl.c
create mode 100644 include/asm-generic/numa.h
create mode 100644 include/dt-bindings/pinctrl/k210-fpioa.h
create mode 100644 include/dt-bindings/reset/k210-rst.h
create mode 100644 include/soc/canaan/k210-sysctl.h