Commit db7c4673 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull RISC-V fixes from Palmer Dabbelt:

 - A few DT bindings fixes to more closely align the ISA string
   requirements between the bindings and the ISA manual.

 - A handful of build error/warning fixes.

 - A fix to move init_cpu_topology() later in the boot flow, so it can
   allocate memory.

 - The IRC channel is now in the MAINTAINERS file, so it's easier to
   find.

* tag 'riscv-for-linus-6.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  riscv: Move call to init_cpu_topology() to later initialization stage
  riscv/kprobe: Fix instruction simulation of JALR
  riscv: fix -Wundef warning for CONFIG_RISCV_BOOT_SPINWAIT
  MAINTAINERS: add an IRC entry for RISC-V
  RISC-V: fix compile error from deduplicated __ALTERNATIVE_CFG_2
  dt-bindings: riscv: fix single letter canonical order
  dt-bindings: riscv: fix underscore requirement for multi-letter extensions
parents e5eb2b22 c1d61058
...@@ -83,7 +83,7 @@ properties: ...@@ -83,7 +83,7 @@ properties:
insensitive, letters in the riscv,isa string must be all insensitive, letters in the riscv,isa string must be all
lowercase to simplify parsing. lowercase to simplify parsing.
$ref: "/schemas/types.yaml#/definitions/string" $ref: "/schemas/types.yaml#/definitions/string"
pattern: ^rv(?:64|32)imaf?d?q?c?b?v?k?h?(?:_[hsxz](?:[a-z])+)*$ pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
# RISC-V requires 'timebase-frequency' in /cpus, so disallow it here # RISC-V requires 'timebase-frequency' in /cpus, so disallow it here
timebase-frequency: false timebase-frequency: false
......
...@@ -17960,6 +17960,7 @@ M: Albert Ou <aou@eecs.berkeley.edu> ...@@ -17960,6 +17960,7 @@ M: Albert Ou <aou@eecs.berkeley.edu>
L: linux-riscv@lists.infradead.org L: linux-riscv@lists.infradead.org
S: Supported S: Supported
Q: https://patchwork.kernel.org/project/linux-riscv/list/ Q: https://patchwork.kernel.org/project/linux-riscv/list/
C: irc://irc.libera.chat/riscv
P: Documentation/riscv/patch-acceptance.rst P: Documentation/riscv/patch-acceptance.rst
T: git git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git
F: arch/riscv/ F: arch/riscv/
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
.macro ALTERNATIVE_CFG_2 old_c, new_c_1, vendor_id_1, errata_id_1, enable_1, \ .macro ALTERNATIVE_CFG_2 old_c, new_c_1, vendor_id_1, errata_id_1, enable_1, \
new_c_2, vendor_id_2, errata_id_2, enable_2 new_c_2, vendor_id_2, errata_id_2, enable_2
ALTERNATIVE_CFG \old_c, \new_c_1, \vendor_id_1, \errata_id_1, \enable_1 ALTERNATIVE_CFG "\old_c", "\new_c_1", \vendor_id_1, \errata_id_1, \enable_1
ALT_NEW_CONTENT \vendor_id_2, \errata_id_2, \enable_2, \new_c_2 ALT_NEW_CONTENT \vendor_id_2, \errata_id_2, \enable_2, \new_c_2
.endm .endm
......
...@@ -326,7 +326,7 @@ clear_bss_done: ...@@ -326,7 +326,7 @@ clear_bss_done:
call soc_early_init call soc_early_init
tail start_kernel tail start_kernel
#if CONFIG_RISCV_BOOT_SPINWAIT #ifdef CONFIG_RISCV_BOOT_SPINWAIT
.Lsecondary_start: .Lsecondary_start:
/* Set trap vector to spin forever to help debug */ /* Set trap vector to spin forever to help debug */
la a3, .Lsecondary_park la a3, .Lsecondary_park
......
...@@ -71,11 +71,11 @@ bool __kprobes simulate_jalr(u32 opcode, unsigned long addr, struct pt_regs *reg ...@@ -71,11 +71,11 @@ bool __kprobes simulate_jalr(u32 opcode, unsigned long addr, struct pt_regs *reg
u32 rd_index = (opcode >> 7) & 0x1f; u32 rd_index = (opcode >> 7) & 0x1f;
u32 rs1_index = (opcode >> 15) & 0x1f; u32 rs1_index = (opcode >> 15) & 0x1f;
ret = rv_insn_reg_set_val(regs, rd_index, addr + 4); ret = rv_insn_reg_get_val(regs, rs1_index, &base_addr);
if (!ret) if (!ret)
return ret; return ret;
ret = rv_insn_reg_get_val(regs, rs1_index, &base_addr); ret = rv_insn_reg_set_val(regs, rd_index, addr + 4);
if (!ret) if (!ret)
return ret; return ret;
......
...@@ -39,7 +39,6 @@ static DECLARE_COMPLETION(cpu_running); ...@@ -39,7 +39,6 @@ static DECLARE_COMPLETION(cpu_running);
void __init smp_prepare_boot_cpu(void) void __init smp_prepare_boot_cpu(void)
{ {
init_cpu_topology();
} }
void __init smp_prepare_cpus(unsigned int max_cpus) void __init smp_prepare_cpus(unsigned int max_cpus)
...@@ -48,6 +47,8 @@ void __init smp_prepare_cpus(unsigned int max_cpus) ...@@ -48,6 +47,8 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
int ret; int ret;
unsigned int curr_cpuid; unsigned int curr_cpuid;
init_cpu_topology();
curr_cpuid = smp_processor_id(); curr_cpuid = smp_processor_id();
store_cpu_topology(curr_cpuid); store_cpu_topology(curr_cpuid);
numa_store_cpu_info(curr_cpuid); numa_store_cpu_info(curr_cpuid);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment