Merge tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 Mar 2022 17:11:38 +0000 (10:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 Mar 2022 17:11:38 +0000 (10:11 -0700)
Pull RISC-V updates from Palmer Dabbelt:

 - Support for Sv57-based virtual memory.

 - Various improvements for the MicroChip PolarFire SOC and the
   associated Icicle dev board, which should allow upstream kernels to
   boot without any additional modifications.

 - An improved memmove() implementation.

 - Support for the new Ssconfpmf and SBI PMU extensions, which allows
   for a much more useful perf implementation on RISC-V systems.

 - Support for restartable sequences.

* tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (36 commits)
  rseq/selftests: Add support for RISC-V
  RISC-V: Add support for restartable sequence
  MAINTAINERS: Add entry for RISC-V PMU drivers
  Documentation: riscv: Remove the old documentation
  RISC-V: Add sscofpmf extension support
  RISC-V: Add perf platform driver based on SBI PMU extension
  RISC-V: Add RISC-V SBI PMU extension definitions
  RISC-V: Add a simple platform driver for RISC-V legacy perf
  RISC-V: Add a perf core library for pmu drivers
  RISC-V: Add CSR encodings for all HPMCOUNTERS
  RISC-V: Remove the current perf implementation
  RISC-V: Improve /proc/cpuinfo output for ISA extensions
  RISC-V: Do no continue isa string parsing without correct XLEN
  RISC-V: Implement multi-letter ISA extension probing framework
  RISC-V: Extract multi-letter extension names from "riscv, isa"
  RISC-V: Minimal parser for "riscv, isa" strings
  RISC-V: Correctly print supported extensions
  riscv: Fixed misaligned memory access. Fixed pointer comparison.
  MAINTAINERS: update riscv/microchip entry
  riscv: dts: microchip: add new peripherals to icicle kit device tree
  ...

14 files changed:
1  2 
MAINTAINERS
arch/riscv/Kconfig
arch/riscv/include/asm/page.h
arch/riscv/include/asm/pgtable.h
arch/riscv/include/asm/sbi.h
arch/riscv/kernel/Makefile
arch/riscv/kernel/entry.S
arch/riscv/mm/init.c
arch/riscv/mm/kasan_init.c
drivers/perf/Kconfig
drivers/perf/Makefile
include/linux/cpuhotplug.h
tools/testing/selftests/rseq/param_test.c
tools/testing/selftests/rseq/rseq.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -51,9 -51,6 +51,8 @@@ obj-$(CONFIG_MODULE_SECTIONS) += module
  obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o
  obj-$(CONFIG_DYNAMIC_FTRACE)  += mcount-dyn.o
  
- obj-$(CONFIG_RISCV_BASE_PMU)  += perf_event.o
 +obj-$(CONFIG_TRACE_IRQFLAGS)  += trace_irq.o
 +
  obj-$(CONFIG_PERF_EVENTS)     += perf_callchain.o
  obj-$(CONFIG_HAVE_PERF_REGS)  += perf_regs.o
  obj-$(CONFIG_RISCV_SBI)               += sbi.o
Simple merge
Simple merge
@@@ -111,13 -111,12 +111,15 @@@ static void __init kasan_populate_pud(p
                 * pt_ops facility.
                 */
                base_pud = pt_ops.get_pud_virt(pfn_to_phys(_pgd_pfn(*pgd)));
+       } else if (pgd_none(*pgd)) {
+               base_pud = memblock_alloc(PTRS_PER_PUD * sizeof(pud_t), PAGE_SIZE);
        } else {
                base_pud = (pud_t *)pgd_page_vaddr(*pgd);
 -              if (base_pud == lm_alias(kasan_early_shadow_pud))
 +              if (base_pud == lm_alias(kasan_early_shadow_pud)) {
                        base_pud = memblock_alloc(PTRS_PER_PUD * sizeof(pud_t), PAGE_SIZE);
 +                      memcpy(base_pud, (void *)kasan_early_shadow_pud,
 +                             sizeof(pud_t) * PTRS_PER_PUD);
 +              }
        }
  
        pudp = base_pud + pud_index(vaddr);
Simple merge
Simple merge
Simple merge
Simple merge