From: Palmer Dabbelt <palmer@rivosinc.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] RISC-V Patches for the 5.19 Merge Window, Part 1 Date: Tue, 31 May 2022 10:13:06 -0700 (PDT) [thread overview] Message-ID: <mhng-3cfe92b5-a83a-4642-9b9e-8416ae717fd6@palmer-ri-x1c9> (raw) The following changes since commit 9282d0996936c5fbf877c0d096a3feb456c878ad: csky: Move to generic ticket-spinlock (2022-05-11 11:50:15 -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.19-mw0 for you to fetch changes up to 7699f7aacf3ebfee51c670b6f796b2797f0f7487: RISC-V: Prepare dropping week attribute from arch_kexec_apply_relocations[_add] (2022-05-30 16:04:37 -0700) ---------------------------------------------------------------- RISC-V Patches for the 5.19 Merge Window, Part 1 * Support for the Svpbmt extension, which allows memory attributes to be encoded in pages. * Support for the Allwinner D1's implementation of page-based memory attributes. * Support for running rv32 binaries on rv64 systems, via the compat subsystem. * Support for kexec_file(). * Support for the new generic ticket-based spinlocks, which allows us to also move to qrwlock. These should have already gone in through the asm-geneic tree as well. * A handful of cleanups and fixes, include some larger ones around atomics and XIP. ---------------------------------------------------------------- The spinlock stuff that already went in isn't called out in the shortlog, IIUC that's a feature. It might have slightly messed up git-request-pull, though, as I'd consider the base here really 5.18-rc1. I have a single manual resolution in the fe510 device tree, just the result of some conflicting fixes. It's not showing up in my merge, but a bunch of other automatic resolutions are which is a bit worrisome on my end -- I don't usually touch other trees, but we had a handful of big cross-tree things this time. Sorry in advance if I've screwed something up, here's what I'm seeing: diff --cc arch/arm64/Kconfig index ff674808681a,a4968845e67f..1652a9800ebe --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@@ -2120,8 -2155,12 +2155,8 @@@ config DM However, even with this option, the resultant kernel should continue to boot on existing non-UEFI platforms. - endmenu + endmenu # "Boot options" -config SYSVIPC_COMPAT - def_bool y - depends on COMPAT && SYSVIPC - menu "Power management options" source "kernel/power/Kconfig" diff --cc arch/x86/include/asm/compat.h index e74a107de0d0,20fd0acd7d80..b1221da477b7 --- a/arch/x86/include/asm/compat.h +++ b/arch/x86/include/asm/compat.h @@@ -15,27 -15,20 +15,26 @@@ #define compat_mode_t compat_mode_t typedef u16 compat_mode_t; +#define __compat_uid_t __compat_uid_t +typedef u16 __compat_uid_t; +typedef u16 __compat_gid_t; + +#define compat_dev_t compat_dev_t +typedef u16 compat_dev_t; + +#define compat_ipc_pid_t compat_ipc_pid_t +typedef u16 compat_ipc_pid_t; + +#define compat_statfs compat_statfs + #include <asm-generic/compat.h> -#define COMPAT_USER_HZ 100 #define COMPAT_UTS_MACHINE "i686\0\0" -typedef u16 __compat_uid_t; -typedef u16 __compat_gid_t; -typedef u16 compat_dev_t; typedef u16 compat_nlink_t; -typedef u16 compat_ipc_pid_t; -typedef __kernel_fsid_t compat_fsid_t; struct compat_stat { - compat_dev_t st_dev; - u16 __pad1; + u32 st_dev; compat_ino_t st_ino; compat_mode_t st_mode; compat_nlink_t st_nlink; diff --cc include/linux/kexec.h index ebb1bffbf068,fcd5035209f1..ce6536f1d269 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@@ -227,8 -219,46 +219,46 @@@ struct crash_mem extern int crash_exclude_mem_range(struct crash_mem *mem, unsigned long long mstart, unsigned long long mend); -extern int crash_prepare_elf64_headers(struct crash_mem *mem, int kernel_map, +extern int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map, void **addr, unsigned long *sz); + + #ifndef arch_kexec_apply_relocations_add + /* + * arch_kexec_apply_relocations_add - apply relocations of type RELA + * @pi: Purgatory to be relocated. + * @section: Section relocations applying to. + * @relsec: Section containing RELAs. + * @symtab: Corresponding symtab. + * + * Return: 0 on success, negative errno on error. + */ + static inline int + arch_kexec_apply_relocations_add(struct purgatory_info *pi, Elf_Shdr *section, + const Elf_Shdr *relsec, const Elf_Shdr *symtab) + { + pr_err("RELA relocation unsupported.\n"); + return -ENOEXEC; + } + #endif + + #ifndef arch_kexec_apply_relocations + /* + * arch_kexec_apply_relocations - apply relocations of type REL + * @pi: Purgatory to be relocated. + * @section: Section relocations applying to. + * @relsec: Section containing RELs. + * @symtab: Corresponding symtab. + * + * Return: 0 on success, negative errno on error. + */ + static inline int + arch_kexec_apply_relocations(struct purgatory_info *pi, Elf_Shdr *section, + const Elf_Shdr *relsec, const Elf_Shdr *symtab) + { + pr_err("REL relocation unsupported.\n"); + return -ENOEXEC; + } + #endif #endif /* CONFIG_KEXEC_FILE */ #ifdef CONFIG_KEXEC_ELF The arm64 stuff is from a refactoring so it seems pretty safe, and the kexec stuff looks like a straight-forward merge conflict that was autoresolved correctly. The x86 merge looks a bit scarier, but IIUC the autoresolver is doing the right thing: 932aba1e1690 ("stat: fix inconsistency between struct stat and struct compat_stat") changed compat_stat without changing compat_dev_t, we're still matching that behavior. I'll definately have a part 2 (or a respin), I'm farther behind that I usually am this round. ---------------------------------------------------------------- Christoph Hellwig (3): uapi: simplify __ARCH_FLOCK{,64}_PAD a little uapi: always define F_GETLK64/F_SETLK64/F_SETLKW64 in fcntl.h compat: consolidate the compat_flock{,64} definition Chuanhua Han (1): riscv: mm: Remove the copy operation of pmd Guo Ren (21): arch: Add SYSVIPC_COMPAT for all architectures fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT asm-generic: compat: Cleanup duplicate definitions syscalls: compat: Fix the missing part for __SYSCALL_COMPAT riscv: Fixup difference with defconfig riscv: compat: Add basic compat data type implementation riscv: compat: Support TASK_SIZE for compat mode riscv: compat: syscall: Add compat_sys_call_table implementation riscv: compat: syscall: Add entry.S implementation riscv: compat: process: Add UXL_32 support in start_thread riscv: compat: Add elf.h implementation riscv: compat: Add hw capability check for elf riscv: compat: vdso: Add COMPAT_VDSO base code implementation riscv: compat: vdso: Add setup additional pages implementation riscv: compat: signal: Add rt_frame implementation riscv: compat: ptrace: Add compat_arch_ptrace implement riscv: compat: Add COMPAT Kbuild skeletal support riscv: atomic: Cleanup unnecessary definition riscv: atomic: Optimize dec_if_positive functions riscv: atomic: Add custom conditional atomic operation implementation riscv: compat: Using seperated vdso_maps for compat_vdso_info Heiko Stuebner (12): riscv: integrate alternatives better into the main architecture riscv: allow different stages with alternatives riscv: implement module alternatives riscv: implement ALTERNATIVE_2 macro riscv: extend concatenated alternatives-lines to the same length riscv: prevent compressed instructions in alternatives riscv: move boot alternatives to after fill_hwcap riscv: Fix accessing pfn bits in PTEs for non-32bit variants riscv: add RISC-V Svpbmt extension support riscv: remove FIXMAP_PAGE_IO and fall back to its default value riscv: don't use global static vars to store alternative data riscv: add memory-type errata for T-Head Li Zhengyu (3): RISC-V: Support for kexec_file on panic RISC-V: Add purgatory RISC-V: Load purgatory in kexec_file Liao Chang (3): kexec_file: Fix kexec_file.c build error for riscv platform RISC-V: use memcpy for kexec_file mode RISC-V: Add kexec_file support Niklas Cassel (1): riscv: Don't output a bogus mmu-type on a no MMU kernel Palmer Dabbelt (9): riscv: support for Svpbmt and D1 memory types RISC-V: Add support for rv32 userspace via COMPAT riscv: kexec: add kexec_file_load() support Merge tag 'generic-ticket-spinlocks-v6' into for-next RISC-V: Avoid empty create_*_mapping definitions RISC-V: ignore xipImage RISC-V: Split out the XIP fixups into their own file RISC-V: Fix the XIP build RISC-V: Various XIP fixes Uwe Kleine-König (1): RISC-V: Prepare dropping week attribute from arch_kexec_apply_relocations[_add] Zong Li (2): riscv: dts: Add dma-channels property and modify compatible riscv: dts: rename the node name of dma arch/arm64/Kconfig | 4 - arch/arm64/include/asm/compat.h | 93 +---- arch/arm64/include/asm/unistd.h | 1 + arch/mips/Kconfig | 5 - arch/mips/include/asm/compat.h | 41 +- arch/mips/include/asm/unistd.h | 2 + arch/mips/include/uapi/asm/fcntl.h | 30 +- arch/parisc/Kconfig | 4 - arch/parisc/include/asm/compat.h | 45 +-- arch/parisc/include/asm/unistd.h | 1 + arch/powerpc/Kconfig | 5 - arch/powerpc/include/asm/compat.h | 50 +-- arch/powerpc/include/asm/unistd.h | 1 + arch/riscv/Kbuild | 2 + arch/riscv/Kconfig | 67 +++ arch/riscv/Kconfig.erratas | 34 +- arch/riscv/Kconfig.socs | 1 - arch/riscv/Makefile | 11 +- arch/riscv/boot/.gitignore | 1 + arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 5 +- arch/riscv/errata/Makefile | 2 +- arch/riscv/errata/alternative.c | 75 ---- arch/riscv/errata/sifive/errata.c | 20 +- arch/riscv/errata/thead/Makefile | 11 + arch/riscv/errata/thead/errata.c | 82 ++++ arch/riscv/include/asm/alternative-macros.h | 129 ++++-- arch/riscv/include/asm/alternative.h | 25 +- arch/riscv/include/asm/asm.h | 26 -- arch/riscv/include/asm/atomic.h | 102 ++++- arch/riscv/include/asm/cmpxchg.h | 12 - arch/riscv/include/asm/compat.h | 129 ++++++ arch/riscv/include/asm/csr.h | 7 + arch/riscv/include/asm/elf.h | 50 ++- arch/riscv/include/asm/errata_list.h | 59 +++ arch/riscv/include/asm/fixmap.h | 2 - arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/asm/kexec.h | 11 + arch/riscv/include/asm/mmu.h | 1 + arch/riscv/include/asm/pgtable-32.h | 17 + arch/riscv/include/asm/pgtable-64.h | 79 +++- arch/riscv/include/asm/pgtable-bits.h | 10 - arch/riscv/include/asm/pgtable.h | 68 +++- arch/riscv/include/asm/processor.h | 6 +- arch/riscv/include/asm/signal32.h | 18 + arch/riscv/include/asm/syscall.h | 1 + arch/riscv/include/asm/thread_info.h | 1 + arch/riscv/include/asm/unistd.h | 11 + arch/riscv/include/asm/vdso.h | 9 + arch/riscv/include/asm/vendorid_list.h | 1 + arch/riscv/include/asm/xip_fixup.h | 31 ++ arch/riscv/include/uapi/asm/unistd.h | 2 +- arch/riscv/kernel/Makefile | 19 + arch/riscv/kernel/alternative.c | 118 ++++++ arch/riscv/kernel/compat_signal.c | 243 +++++++++++ arch/riscv/kernel/compat_syscall_table.c | 19 + arch/riscv/kernel/compat_vdso/.gitignore | 2 + arch/riscv/kernel/compat_vdso/Makefile | 78 ++++ arch/riscv/kernel/compat_vdso/compat_vdso.S | 8 + arch/riscv/kernel/compat_vdso/compat_vdso.lds.S | 3 + arch/riscv/kernel/compat_vdso/flush_icache.S | 3 + .../kernel/compat_vdso/gen_compat_vdso_offsets.sh | 5 + arch/riscv/kernel/compat_vdso/getcpu.S | 3 + arch/riscv/kernel/compat_vdso/note.S | 3 + arch/riscv/kernel/compat_vdso/rt_sigreturn.S | 3 + arch/riscv/kernel/cpu.c | 5 + arch/riscv/kernel/cpufeature.c | 80 +++- arch/riscv/kernel/elf_kexec.c | 448 +++++++++++++++++++++ arch/riscv/kernel/entry.S | 18 +- arch/riscv/kernel/head.S | 1 + arch/riscv/kernel/machine_kexec.c | 4 +- arch/riscv/kernel/machine_kexec_file.c | 14 + arch/riscv/kernel/module.c | 29 ++ arch/riscv/kernel/process.c | 37 ++ arch/riscv/kernel/ptrace.c | 87 +++- arch/riscv/kernel/setup.c | 2 + arch/riscv/kernel/signal.c | 7 +- arch/riscv/kernel/smpboot.c | 4 - arch/riscv/kernel/suspend_entry.S | 1 + arch/riscv/kernel/sys_riscv.c | 6 +- arch/riscv/kernel/traps.c | 2 +- arch/riscv/kernel/vdso.c | 114 ++++-- arch/riscv/kernel/vdso/vdso.S | 6 +- arch/riscv/mm/fault.c | 10 +- arch/riscv/mm/init.c | 9 +- arch/riscv/purgatory/.gitignore | 4 + arch/riscv/purgatory/Makefile | 95 +++++ arch/riscv/purgatory/entry.S | 47 +++ arch/riscv/purgatory/purgatory.c | 45 +++ arch/s390/Kconfig | 3 - arch/s390/include/asm/compat.h | 99 +---- arch/s390/include/asm/unistd.h | 1 + arch/sparc/Kconfig | 5 - arch/sparc/include/asm/compat.h | 61 +-- arch/sparc/include/asm/unistd.h | 1 + arch/x86/Kconfig | 4 - arch/x86/include/asm/compat.h | 104 +---- arch/x86/include/asm/unistd.h | 1 + fs/open.c | 24 ++ fs/read_write.c | 16 + fs/stat.c | 2 +- fs/sync.c | 9 + include/asm-generic/compat.h | 113 ++++++ include/linux/compat.h | 68 ++++ include/linux/kexec.h | 2 +- include/uapi/asm-generic/fcntl.h | 23 +- include/uapi/asm-generic/unistd.h | 4 +- init/Kconfig | 4 + kernel/kexec_file.c | 4 +- mm/fadvise.c | 11 + mm/readahead.c | 7 + tools/include/uapi/asm-generic/fcntl.h | 21 +- tools/include/uapi/asm-generic/unistd.h | 4 +- 112 files changed, 2786 insertions(+), 788 deletions(-) delete mode 100644 arch/riscv/errata/alternative.c create mode 100644 arch/riscv/errata/thead/Makefile create mode 100644 arch/riscv/errata/thead/errata.c create mode 100644 arch/riscv/include/asm/compat.h create mode 100644 arch/riscv/include/asm/signal32.h create mode 100644 arch/riscv/include/asm/xip_fixup.h create mode 100644 arch/riscv/kernel/alternative.c create mode 100644 arch/riscv/kernel/compat_signal.c create mode 100644 arch/riscv/kernel/compat_syscall_table.c create mode 100644 arch/riscv/kernel/compat_vdso/.gitignore create mode 100644 arch/riscv/kernel/compat_vdso/Makefile create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.S create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.lds.S create mode 100644 arch/riscv/kernel/compat_vdso/flush_icache.S create mode 100755 arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh create mode 100644 arch/riscv/kernel/compat_vdso/getcpu.S create mode 100644 arch/riscv/kernel/compat_vdso/note.S create mode 100644 arch/riscv/kernel/compat_vdso/rt_sigreturn.S create mode 100644 arch/riscv/kernel/elf_kexec.c create mode 100644 arch/riscv/kernel/machine_kexec_file.c create mode 100644 arch/riscv/purgatory/.gitignore create mode 100644 arch/riscv/purgatory/Makefile create mode 100644 arch/riscv/purgatory/entry.S create mode 100644 arch/riscv/purgatory/purgatory.c
WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@rivosinc.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] RISC-V Patches for the 5.19 Merge Window, Part 1 Date: Tue, 31 May 2022 10:13:06 -0700 (PDT) [thread overview] Message-ID: <mhng-3cfe92b5-a83a-4642-9b9e-8416ae717fd6@palmer-ri-x1c9> (raw) [-- Attachment #1: Type: text/plain, Size: 17633 bytes --] The following changes since commit 9282d0996936c5fbf877c0d096a3feb456c878ad: csky: Move to generic ticket-spinlock (2022-05-11 11:50:15 -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.19-mw0 for you to fetch changes up to 7699f7aacf3ebfee51c670b6f796b2797f0f7487: RISC-V: Prepare dropping week attribute from arch_kexec_apply_relocations[_add] (2022-05-30 16:04:37 -0700) ---------------------------------------------------------------- RISC-V Patches for the 5.19 Merge Window, Part 1 * Support for the Svpbmt extension, which allows memory attributes to be encoded in pages. * Support for the Allwinner D1's implementation of page-based memory attributes. * Support for running rv32 binaries on rv64 systems, via the compat subsystem. * Support for kexec_file(). * Support for the new generic ticket-based spinlocks, which allows us to also move to qrwlock. These should have already gone in through the asm-geneic tree as well. * A handful of cleanups and fixes, include some larger ones around atomics and XIP. ---------------------------------------------------------------- The spinlock stuff that already went in isn't called out in the shortlog, IIUC that's a feature. It might have slightly messed up git-request-pull, though, as I'd consider the base here really 5.18-rc1. I have a single manual resolution in the fe510 device tree, just the result of some conflicting fixes. It's not showing up in my merge, but a bunch of other automatic resolutions are which is a bit worrisome on my end -- I don't usually touch other trees, but we had a handful of big cross-tree things this time. Sorry in advance if I've screwed something up, here's what I'm seeing: diff --cc arch/arm64/Kconfig index ff674808681a,a4968845e67f..1652a9800ebe --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@@ -2120,8 -2155,12 +2155,8 @@@ config DM However, even with this option, the resultant kernel should continue to boot on existing non-UEFI platforms. - endmenu + endmenu # "Boot options" -config SYSVIPC_COMPAT - def_bool y - depends on COMPAT && SYSVIPC - menu "Power management options" source "kernel/power/Kconfig" diff --cc arch/x86/include/asm/compat.h index e74a107de0d0,20fd0acd7d80..b1221da477b7 --- a/arch/x86/include/asm/compat.h +++ b/arch/x86/include/asm/compat.h @@@ -15,27 -15,20 +15,26 @@@ #define compat_mode_t compat_mode_t typedef u16 compat_mode_t; +#define __compat_uid_t __compat_uid_t +typedef u16 __compat_uid_t; +typedef u16 __compat_gid_t; + +#define compat_dev_t compat_dev_t +typedef u16 compat_dev_t; + +#define compat_ipc_pid_t compat_ipc_pid_t +typedef u16 compat_ipc_pid_t; + +#define compat_statfs compat_statfs + #include <asm-generic/compat.h> -#define COMPAT_USER_HZ 100 #define COMPAT_UTS_MACHINE "i686\0\0" -typedef u16 __compat_uid_t; -typedef u16 __compat_gid_t; -typedef u16 compat_dev_t; typedef u16 compat_nlink_t; -typedef u16 compat_ipc_pid_t; -typedef __kernel_fsid_t compat_fsid_t; struct compat_stat { - compat_dev_t st_dev; - u16 __pad1; + u32 st_dev; compat_ino_t st_ino; compat_mode_t st_mode; compat_nlink_t st_nlink; diff --cc include/linux/kexec.h index ebb1bffbf068,fcd5035209f1..ce6536f1d269 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@@ -227,8 -219,46 +219,46 @@@ struct crash_mem extern int crash_exclude_mem_range(struct crash_mem *mem, unsigned long long mstart, unsigned long long mend); -extern int crash_prepare_elf64_headers(struct crash_mem *mem, int kernel_map, +extern int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map, void **addr, unsigned long *sz); + + #ifndef arch_kexec_apply_relocations_add + /* + * arch_kexec_apply_relocations_add - apply relocations of type RELA + * @pi: Purgatory to be relocated. + * @section: Section relocations applying to. + * @relsec: Section containing RELAs. + * @symtab: Corresponding symtab. + * + * Return: 0 on success, negative errno on error. + */ + static inline int + arch_kexec_apply_relocations_add(struct purgatory_info *pi, Elf_Shdr *section, + const Elf_Shdr *relsec, const Elf_Shdr *symtab) + { + pr_err("RELA relocation unsupported.\n"); + return -ENOEXEC; + } + #endif + + #ifndef arch_kexec_apply_relocations + /* + * arch_kexec_apply_relocations - apply relocations of type REL + * @pi: Purgatory to be relocated. + * @section: Section relocations applying to. + * @relsec: Section containing RELs. + * @symtab: Corresponding symtab. + * + * Return: 0 on success, negative errno on error. + */ + static inline int + arch_kexec_apply_relocations(struct purgatory_info *pi, Elf_Shdr *section, + const Elf_Shdr *relsec, const Elf_Shdr *symtab) + { + pr_err("REL relocation unsupported.\n"); + return -ENOEXEC; + } + #endif #endif /* CONFIG_KEXEC_FILE */ #ifdef CONFIG_KEXEC_ELF The arm64 stuff is from a refactoring so it seems pretty safe, and the kexec stuff looks like a straight-forward merge conflict that was autoresolved correctly. The x86 merge looks a bit scarier, but IIUC the autoresolver is doing the right thing: 932aba1e1690 ("stat: fix inconsistency between struct stat and struct compat_stat") changed compat_stat without changing compat_dev_t, we're still matching that behavior. I'll definately have a part 2 (or a respin), I'm farther behind that I usually am this round. ---------------------------------------------------------------- Christoph Hellwig (3): uapi: simplify __ARCH_FLOCK{,64}_PAD a little uapi: always define F_GETLK64/F_SETLK64/F_SETLKW64 in fcntl.h compat: consolidate the compat_flock{,64} definition Chuanhua Han (1): riscv: mm: Remove the copy operation of pmd Guo Ren (21): arch: Add SYSVIPC_COMPAT for all architectures fs: stat: compat: Add __ARCH_WANT_COMPAT_STAT asm-generic: compat: Cleanup duplicate definitions syscalls: compat: Fix the missing part for __SYSCALL_COMPAT riscv: Fixup difference with defconfig riscv: compat: Add basic compat data type implementation riscv: compat: Support TASK_SIZE for compat mode riscv: compat: syscall: Add compat_sys_call_table implementation riscv: compat: syscall: Add entry.S implementation riscv: compat: process: Add UXL_32 support in start_thread riscv: compat: Add elf.h implementation riscv: compat: Add hw capability check for elf riscv: compat: vdso: Add COMPAT_VDSO base code implementation riscv: compat: vdso: Add setup additional pages implementation riscv: compat: signal: Add rt_frame implementation riscv: compat: ptrace: Add compat_arch_ptrace implement riscv: compat: Add COMPAT Kbuild skeletal support riscv: atomic: Cleanup unnecessary definition riscv: atomic: Optimize dec_if_positive functions riscv: atomic: Add custom conditional atomic operation implementation riscv: compat: Using seperated vdso_maps for compat_vdso_info Heiko Stuebner (12): riscv: integrate alternatives better into the main architecture riscv: allow different stages with alternatives riscv: implement module alternatives riscv: implement ALTERNATIVE_2 macro riscv: extend concatenated alternatives-lines to the same length riscv: prevent compressed instructions in alternatives riscv: move boot alternatives to after fill_hwcap riscv: Fix accessing pfn bits in PTEs for non-32bit variants riscv: add RISC-V Svpbmt extension support riscv: remove FIXMAP_PAGE_IO and fall back to its default value riscv: don't use global static vars to store alternative data riscv: add memory-type errata for T-Head Li Zhengyu (3): RISC-V: Support for kexec_file on panic RISC-V: Add purgatory RISC-V: Load purgatory in kexec_file Liao Chang (3): kexec_file: Fix kexec_file.c build error for riscv platform RISC-V: use memcpy for kexec_file mode RISC-V: Add kexec_file support Niklas Cassel (1): riscv: Don't output a bogus mmu-type on a no MMU kernel Palmer Dabbelt (9): riscv: support for Svpbmt and D1 memory types RISC-V: Add support for rv32 userspace via COMPAT riscv: kexec: add kexec_file_load() support Merge tag 'generic-ticket-spinlocks-v6' into for-next RISC-V: Avoid empty create_*_mapping definitions RISC-V: ignore xipImage RISC-V: Split out the XIP fixups into their own file RISC-V: Fix the XIP build RISC-V: Various XIP fixes Uwe Kleine-König (1): RISC-V: Prepare dropping week attribute from arch_kexec_apply_relocations[_add] Zong Li (2): riscv: dts: Add dma-channels property and modify compatible riscv: dts: rename the node name of dma arch/arm64/Kconfig | 4 - arch/arm64/include/asm/compat.h | 93 +---- arch/arm64/include/asm/unistd.h | 1 + arch/mips/Kconfig | 5 - arch/mips/include/asm/compat.h | 41 +- arch/mips/include/asm/unistd.h | 2 + arch/mips/include/uapi/asm/fcntl.h | 30 +- arch/parisc/Kconfig | 4 - arch/parisc/include/asm/compat.h | 45 +-- arch/parisc/include/asm/unistd.h | 1 + arch/powerpc/Kconfig | 5 - arch/powerpc/include/asm/compat.h | 50 +-- arch/powerpc/include/asm/unistd.h | 1 + arch/riscv/Kbuild | 2 + arch/riscv/Kconfig | 67 +++ arch/riscv/Kconfig.erratas | 34 +- arch/riscv/Kconfig.socs | 1 - arch/riscv/Makefile | 11 +- arch/riscv/boot/.gitignore | 1 + arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 5 +- arch/riscv/errata/Makefile | 2 +- arch/riscv/errata/alternative.c | 75 ---- arch/riscv/errata/sifive/errata.c | 20 +- arch/riscv/errata/thead/Makefile | 11 + arch/riscv/errata/thead/errata.c | 82 ++++ arch/riscv/include/asm/alternative-macros.h | 129 ++++-- arch/riscv/include/asm/alternative.h | 25 +- arch/riscv/include/asm/asm.h | 26 -- arch/riscv/include/asm/atomic.h | 102 ++++- arch/riscv/include/asm/cmpxchg.h | 12 - arch/riscv/include/asm/compat.h | 129 ++++++ arch/riscv/include/asm/csr.h | 7 + arch/riscv/include/asm/elf.h | 50 ++- arch/riscv/include/asm/errata_list.h | 59 +++ arch/riscv/include/asm/fixmap.h | 2 - arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/asm/kexec.h | 11 + arch/riscv/include/asm/mmu.h | 1 + arch/riscv/include/asm/pgtable-32.h | 17 + arch/riscv/include/asm/pgtable-64.h | 79 +++- arch/riscv/include/asm/pgtable-bits.h | 10 - arch/riscv/include/asm/pgtable.h | 68 +++- arch/riscv/include/asm/processor.h | 6 +- arch/riscv/include/asm/signal32.h | 18 + arch/riscv/include/asm/syscall.h | 1 + arch/riscv/include/asm/thread_info.h | 1 + arch/riscv/include/asm/unistd.h | 11 + arch/riscv/include/asm/vdso.h | 9 + arch/riscv/include/asm/vendorid_list.h | 1 + arch/riscv/include/asm/xip_fixup.h | 31 ++ arch/riscv/include/uapi/asm/unistd.h | 2 +- arch/riscv/kernel/Makefile | 19 + arch/riscv/kernel/alternative.c | 118 ++++++ arch/riscv/kernel/compat_signal.c | 243 +++++++++++ arch/riscv/kernel/compat_syscall_table.c | 19 + arch/riscv/kernel/compat_vdso/.gitignore | 2 + arch/riscv/kernel/compat_vdso/Makefile | 78 ++++ arch/riscv/kernel/compat_vdso/compat_vdso.S | 8 + arch/riscv/kernel/compat_vdso/compat_vdso.lds.S | 3 + arch/riscv/kernel/compat_vdso/flush_icache.S | 3 + .../kernel/compat_vdso/gen_compat_vdso_offsets.sh | 5 + arch/riscv/kernel/compat_vdso/getcpu.S | 3 + arch/riscv/kernel/compat_vdso/note.S | 3 + arch/riscv/kernel/compat_vdso/rt_sigreturn.S | 3 + arch/riscv/kernel/cpu.c | 5 + arch/riscv/kernel/cpufeature.c | 80 +++- arch/riscv/kernel/elf_kexec.c | 448 +++++++++++++++++++++ arch/riscv/kernel/entry.S | 18 +- arch/riscv/kernel/head.S | 1 + arch/riscv/kernel/machine_kexec.c | 4 +- arch/riscv/kernel/machine_kexec_file.c | 14 + arch/riscv/kernel/module.c | 29 ++ arch/riscv/kernel/process.c | 37 ++ arch/riscv/kernel/ptrace.c | 87 +++- arch/riscv/kernel/setup.c | 2 + arch/riscv/kernel/signal.c | 7 +- arch/riscv/kernel/smpboot.c | 4 - arch/riscv/kernel/suspend_entry.S | 1 + arch/riscv/kernel/sys_riscv.c | 6 +- arch/riscv/kernel/traps.c | 2 +- arch/riscv/kernel/vdso.c | 114 ++++-- arch/riscv/kernel/vdso/vdso.S | 6 +- arch/riscv/mm/fault.c | 10 +- arch/riscv/mm/init.c | 9 +- arch/riscv/purgatory/.gitignore | 4 + arch/riscv/purgatory/Makefile | 95 +++++ arch/riscv/purgatory/entry.S | 47 +++ arch/riscv/purgatory/purgatory.c | 45 +++ arch/s390/Kconfig | 3 - arch/s390/include/asm/compat.h | 99 +---- arch/s390/include/asm/unistd.h | 1 + arch/sparc/Kconfig | 5 - arch/sparc/include/asm/compat.h | 61 +-- arch/sparc/include/asm/unistd.h | 1 + arch/x86/Kconfig | 4 - arch/x86/include/asm/compat.h | 104 +---- arch/x86/include/asm/unistd.h | 1 + fs/open.c | 24 ++ fs/read_write.c | 16 + fs/stat.c | 2 +- fs/sync.c | 9 + include/asm-generic/compat.h | 113 ++++++ include/linux/compat.h | 68 ++++ include/linux/kexec.h | 2 +- include/uapi/asm-generic/fcntl.h | 23 +- include/uapi/asm-generic/unistd.h | 4 +- init/Kconfig | 4 + kernel/kexec_file.c | 4 +- mm/fadvise.c | 11 + mm/readahead.c | 7 + tools/include/uapi/asm-generic/fcntl.h | 21 +- tools/include/uapi/asm-generic/unistd.h | 4 +- 112 files changed, 2786 insertions(+), 788 deletions(-) delete mode 100644 arch/riscv/errata/alternative.c create mode 100644 arch/riscv/errata/thead/Makefile create mode 100644 arch/riscv/errata/thead/errata.c create mode 100644 arch/riscv/include/asm/compat.h create mode 100644 arch/riscv/include/asm/signal32.h create mode 100644 arch/riscv/include/asm/xip_fixup.h create mode 100644 arch/riscv/kernel/alternative.c create mode 100644 arch/riscv/kernel/compat_signal.c create mode 100644 arch/riscv/kernel/compat_syscall_table.c create mode 100644 arch/riscv/kernel/compat_vdso/.gitignore create mode 100644 arch/riscv/kernel/compat_vdso/Makefile create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.S create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.lds.S create mode 100644 arch/riscv/kernel/compat_vdso/flush_icache.S create mode 100755 arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh create mode 100644 arch/riscv/kernel/compat_vdso/getcpu.S create mode 100644 arch/riscv/kernel/compat_vdso/note.S create mode 100644 arch/riscv/kernel/compat_vdso/rt_sigreturn.S create mode 100644 arch/riscv/kernel/elf_kexec.c create mode 100644 arch/riscv/kernel/machine_kexec_file.c create mode 100644 arch/riscv/purgatory/.gitignore create mode 100644 arch/riscv/purgatory/Makefile create mode 100644 arch/riscv/purgatory/entry.S create mode 100644 arch/riscv/purgatory/purgatory.c [-- Attachment #2: Type: text/plain, Size: 161 bytes --] _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
next reply other threads:[~2022-05-31 17:13 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-31 17:13 Palmer Dabbelt [this message] 2022-05-31 17:13 ` [GIT PULL] RISC-V Patches for the 5.19 Merge Window, Part 1 Palmer Dabbelt 2022-05-31 21:50 ` pr-tracker-bot 2022-05-31 21:50 ` pr-tracker-bot 2022-05-31 21:52 ` Linus Torvalds 2022-05-31 21:52 ` Linus Torvalds 2022-05-31 23:22 ` Palmer Dabbelt 2022-05-31 23:22 ` Palmer Dabbelt 2022-06-07 20:46 ` Ron Economos 2022-06-07 20:46 ` Ron Economos 2022-06-07 23:36 ` Heiko Stübner 2022-06-07 23:36 ` Heiko Stübner 2022-06-08 0:12 ` Ron Economos 2022-06-08 0:12 ` Ron Economos 2022-06-08 12:23 ` Heiko Stübner 2022-06-08 12:23 ` Heiko Stübner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=mhng-3cfe92b5-a83a-4642-9b9e-8416ae717fd6@palmer-ri-x1c9 \ --to=palmer@rivosinc.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=torvalds@linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.