RISC-V Fixes for 6.5-rc2

* A fix for a formatting error in the hwprobe documentation.
 * A fix for a spurious warning in the RISC-V PMU driver.
 * A fix for memory detection on rv32, which does not manifest on any
   known system.
 * A fix to avoid parsing legacy parsing of I in ACPI ISA strings.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEKzw3R0RoQ7JKlDp6LhMZ81+7GIkFAmSwsQITHHBhbG1lckBk
 YWJiZWx0LmNvbQAKCRAuExnzX7sYidQqD/94stlPcx80cM1OvZjhxPYF9axFMZ5K
 iY4HpUzXQ8YDqPVGqZj+wW8cTwU7IrtZ9lN8Rir5ET8LPLyqG9tXmAvc75qXg8se
 lET5ih1O8q5EKvY8C8BRttdHc6CQt+QN+5qgELKkQX6Z2qZ6YvGWIF+7O1jH7t8Y
 nC2Aoi1GKQrsDCP47bBs8dwLWCxU8xXaUCHNeLOc9RqyD+MoZ5UKqA1RxR/2y1bY
 J5QhOOeU0zi7W7jZgj0f83sNN7hle5NStAHWZQ4qCngcWWYOxd+vVJKV1YwddHpb
 xyXqDVGZDJxoOvpE1CIxtWtGeyFOGgs1/K8Pp25Hpva02Se9/uCd/vYy+yIbvOgI
 b9tmPobe8KcLaLBL9FEIEQEFOnmILWzbDt5sYyyffxnzNnka2S/Usc1jkAUiT0sV
 hxZqGr6YAGk2+jo/wGrGaZTi3ep4fwvBUTYK2rWwtsPVIclBfaCj3MRBDByhqF+I
 gZtXx8Bjsj17QxcnGvU8jh6ZHI6G9xrwcyX+vDH6wRCjYcNN2luTjbHGDMZg+suE
 qzUY85kINcljN0+osS04Bqbsz0DZ4fqMdTZE1F+M7qgbPaF6go0qpTwcaU8oNMp8
 YG1Z8mFBXG2SVN2HWscTV+PHNv7o/SIwGVjsTTBI1H+bK1sb5OJs6lhU7YAeub3Y
 Z8M22Mzgmm86gA==
 =8UWu
 -----END PGP SIGNATURE-----

Merge tag 'riscv-for-linus-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull RISC-V fixes from Palmer Dabbelt:

 - fix a formatting error in the hwprobe documentation

 - fix a spurious warning in the RISC-V PMU driver

 - fix memory detection on rv32 (problem does not manifest on any known
   system)

 - avoid parsing legacy parsing of I in ACPI ISA strings

* tag 'riscv-for-linus-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  RISC-V: Don't include Zicsr or Zifencei in I from ACPI
  riscv: mm: fix truncation warning on RV32
  perf: RISC-V: Remove PERF_HES_STOPPED flag checking in riscv_pmu_start()
  Documentation: RISC-V: hwprobe: Fix a formatting error
This commit is contained in:
Linus Torvalds 2023-07-14 11:14:07 -07:00
commit 2772d7df3c
4 changed files with 4 additions and 12 deletions

View File

@ -49,7 +49,7 @@ The following keys are defined:
privileged ISA, with the following known exceptions (more exceptions may be privileged ISA, with the following known exceptions (more exceptions may be
added, but only if it can be demonstrated that the user ABI is not broken): added, but only if it can be demonstrated that the user ABI is not broken):
* The :fence.i: instruction cannot be directly executed by userspace * The ``fence.i`` instruction cannot be directly executed by userspace
programs (it may still be executed in userspace via a programs (it may still be executed in userspace via a
kernel-controlled mechanism such as the vDSO). kernel-controlled mechanism such as the vDSO).

View File

@ -317,19 +317,14 @@ void __init riscv_fill_hwcap(void)
#undef SET_ISA_EXT_MAP #undef SET_ISA_EXT_MAP
} }
/*
* Linux requires the following extensions, so we may as well
* always set them.
*/
set_bit(RISCV_ISA_EXT_ZICSR, isainfo->isa);
set_bit(RISCV_ISA_EXT_ZIFENCEI, isainfo->isa);
/* /*
* These ones were as they were part of the base ISA when the * These ones were as they were part of the base ISA when the
* port & dt-bindings were upstreamed, and so can be set * port & dt-bindings were upstreamed, and so can be set
* unconditionally where `i` is in riscv,isa on DT systems. * unconditionally where `i` is in riscv,isa on DT systems.
*/ */
if (acpi_disabled) { if (acpi_disabled) {
set_bit(RISCV_ISA_EXT_ZICSR, isainfo->isa);
set_bit(RISCV_ISA_EXT_ZIFENCEI, isainfo->isa);
set_bit(RISCV_ISA_EXT_ZICNTR, isainfo->isa); set_bit(RISCV_ISA_EXT_ZICNTR, isainfo->isa);
set_bit(RISCV_ISA_EXT_ZIHPM, isainfo->isa); set_bit(RISCV_ISA_EXT_ZIHPM, isainfo->isa);
} }

View File

@ -1346,7 +1346,7 @@ static void __init reserve_crashkernel(void)
*/ */
crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE, crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,
search_start, search_start,
min(search_end, (unsigned long) SZ_4G)); min(search_end, (unsigned long)(SZ_4G - 1)));
if (crash_base == 0) { if (crash_base == 0) {
/* Try again without restricting region to 32bit addressible memory */ /* Try again without restricting region to 32bit addressible memory */
crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE, crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,

View File

@ -181,9 +181,6 @@ void riscv_pmu_start(struct perf_event *event, int flags)
uint64_t max_period = riscv_pmu_ctr_get_width_mask(event); uint64_t max_period = riscv_pmu_ctr_get_width_mask(event);
u64 init_val; u64 init_val;
if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
return;
if (flags & PERF_EF_RELOAD) if (flags & PERF_EF_RELOAD)
WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE)); WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));