Re: [GIT PULL] RISC-V Patches for the 5.18 Merge Window, Part 2

From: Palmer Dabbelt
Date: Fri Apr 01 2022 - 14:52:37 EST


On Fri, 01 Apr 2022 09:41:50 PDT (-0700), Palmer Dabbelt wrote:
merged tag 'riscv-for-linus-5.18-mw0'
The following changes since commit aa5b537b0ecc16992577b013f11112d54c7ce869:

Merge tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux (2022-03-25 10:11:38 -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.18-mw1

for you to fetch changes up to 1464d00b27b2e29a5556f6a4099cf083886e883f:

RISC-V: K210 defconfigs: Drop redundant MEMBARRIER=n (2022-03-31 17:19:27 -0700)

----------------------------------------------------------------
RISC-V Patches for the 5.18 Merge Window, Part 2

This has a handful of new features

* Support for CURRENT_STACK_POINTER, which enables some extra stack
debugging for HARDENED_USERCOPY.
* Support for the new SBI CPU idle extension, via cpuidle and suspend
drivers.

Sorry, looks like there are some issues with this series that Rob pointed out. I'm going to re-spin this PR without those, unfortunately they're towards the beginning.

* Profiling has been enabled in the defconfigs.

but is mostly fixes and cleanups.

----------------------------------------------------------------
There are no merge conflicts. I'm getting on allyesconfig warning in
drivers/misc/habanalabs, but that appears to just be a 32-bit problem (it's
happening on 32-bit x86 as well). I've sent a patch for that, but I doubt it's
a RISC-V issue so I'm sending this at the same time.

With that patch I get clean build that boot after my test merge.

----------------------------------------------------------------
Anup Patel (9):
RISC-V: Enable CPU_IDLE drivers
RISC-V: Rename relocate() and make it global
RISC-V: Add arch functions for non-retentive suspend entry/exit
RISC-V: Add SBI HSM suspend related defines
cpuidle: Factor-out power domain related code from PSCI domain driver
cpuidle: Add RISC-V SBI CPU idle driver
dt-bindings: Add common bindings for ARM and RISC-V idle states
RISC-V: Enable RISC-V SBI CPU Idle driver for QEMU virt machine
RISC-V: Enable profiling by default

Atish Patra (2):
RISC-V: Fix a comment typo in riscv_of_parent_hartid()
RISC-V: Declare per cpu boot data as static

Bagas Sanjaya (1):
Documentation: riscv: remove non-existent directory from table of contents

Dmitry Vyukov (1):
riscv: Increase stack size under KASAN

Fangrui Song (1):
riscv module: remove (NOLOAD)

Kees Cook (1):
riscv: Rename "sp_in_global" to "current_stack_pointer"

Nikita Shubin (1):
riscv: Fix fill_callchain return value

Niklas Cassel (1):
riscv: dts: canaan: Fix SPI3 bus width

Palmer Dabbelt (3):
RISC-V CPU Idle Support
RISC-V: defconfig: Drop redundant SBI HVC and earlycon
RISC-V: K210 defconfigs: Drop redundant MEMBARRIER=n

Randy Dunlap (1):
riscv: cpu.c: don't use kernel-doc markers for comments

Wu Caize (1):
RISC-V: module: fix apply_r_riscv_rcv_branch_rela typo

.../bindings/arm/msm/qcom,idle-state.txt | 2 +-
Documentation/devicetree/bindings/arm/psci.yaml | 2 +-
.../bindings/{arm => cpu}/idle-states.yaml | 228 +++++++-
Documentation/devicetree/bindings/riscv/cpus.yaml | 6 +
Documentation/riscv/index.rst | 1 -
MAINTAINERS | 14 +
arch/riscv/Kconfig | 8 +
arch/riscv/Kconfig.socs | 3 +
arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts | 2 +
arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts | 2 +
arch/riscv/boot/dts/canaan/sipeed_maix_go.dts | 2 +
arch/riscv/boot/dts/canaan/sipeed_maixduino.dts | 2 +
arch/riscv/configs/defconfig | 5 +-
arch/riscv/configs/nommu_k210_defconfig | 1 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 1 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/configs/rv32_defconfig | 5 +-
arch/riscv/include/asm/asm.h | 26 +
arch/riscv/include/asm/cpuidle.h | 24 +
arch/riscv/include/asm/current.h | 2 +
arch/riscv/include/asm/module.lds.h | 6 +-
arch/riscv/include/asm/suspend.h | 36 ++
arch/riscv/include/asm/thread_info.h | 10 +-
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/asm-offsets.c | 3 +
arch/riscv/kernel/cpu.c | 6 +-
arch/riscv/kernel/cpu_ops_sbi.c | 2 +-
arch/riscv/kernel/head.S | 27 +-
arch/riscv/kernel/module.c | 4 +-
arch/riscv/kernel/perf_callchain.c | 2 +-
arch/riscv/kernel/process.c | 3 +-
arch/riscv/kernel/stacktrace.c | 6 +-
arch/riscv/kernel/suspend.c | 87 +++
arch/riscv/kernel/suspend_entry.S | 124 ++++
drivers/cpuidle/Kconfig | 9 +
drivers/cpuidle/Kconfig.arm | 1 +
drivers/cpuidle/Kconfig.riscv | 15 +
drivers/cpuidle/Makefile | 5 +
drivers/cpuidle/cpuidle-psci-domain.c | 138 +----
drivers/cpuidle/cpuidle-psci.h | 15 +-
drivers/cpuidle/cpuidle-riscv-sbi.c | 627 +++++++++++++++++++++
drivers/cpuidle/dt_idle_genpd.c | 178 ++++++
drivers/cpuidle/dt_idle_genpd.h | 50 ++
43 files changed, 1491 insertions(+), 202 deletions(-)
rename Documentation/devicetree/bindings/{arm => cpu}/idle-states.yaml (74%)
create mode 100644 arch/riscv/include/asm/cpuidle.h
create mode 100644 arch/riscv/include/asm/suspend.h
create mode 100644 arch/riscv/kernel/suspend.c
create mode 100644 arch/riscv/kernel/suspend_entry.S
create mode 100644 drivers/cpuidle/Kconfig.riscv
create mode 100644 drivers/cpuidle/cpuidle-riscv-sbi.c
create mode 100644 drivers/cpuidle/dt_idle_genpd.c
create mode 100644 drivers/cpuidle/dt_idle_genpd.h