1. 11 Aug, 2022 16 commits
    • Conor Dooley's avatar
      dt-bindings: riscv: fix SiFive l2-cache's cache-sets · b60cf8e5
      Conor Dooley authored
      Fix device tree schema validation error messages for the SiFive
      Unmatched: ' cache-sets:0:0: 1024 was expected'.
      
      The existing bindings allow for just 1024 cache-sets but the fu740 on
      Unmatched the has 2048 cache-sets. The ISA itself permits any arbitrary
      power of two, however this is not supported by dt-schema. The RTL for
      the IP, to which the number of cache-sets is a tunable parameter, has
      been released publicly so speculatively adding a small number of
      "reasonable" values seems unwise also.
      
      Instead, as the binding only supports two distinct controllers: add 2048
      and explicitly lock it to the fu740's l2 cache while limiting 1024 to
      the l2 cache on the fu540.
      
      Fixes: af951c3a ("dt-bindings: riscv: Update l2 cache DT documentation to add support for SiFive FU740")
      Reported-by: default avatarAtul Khare <atulkhare@rivosinc.com>
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20220803185359.942928-1-mail@conchuod.ieSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      b60cf8e5
    • Conor Dooley's avatar
      riscv: ensure cpu_ops_sbi is declared · 87df2b5c
      Conor Dooley authored
      Sparse complains that cpu_ops_sbi is used undeclared:
      arch/riscv/kernel/cpu_ops_sbi.c:17:29: warning: symbol 'cpu_ops_sbi' was not declared. Should it be static?
      
      Fix the warning by adding cpu_ops_sbi to cpu_ops_sbi.h & including that
      where used.
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Link: https://lore.kernel.org/r/20220714080235.3853374-1-conor.dooley@microchip.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      87df2b5c
    • Ben Dooks's avatar
      RISC-V: cpu_ops_spinwait.c should include head.h · e4aa991c
      Ben Dooks authored
      Running sparse shows cpu_ops_spinwait.c is missing two definitions
      found in head.h, so include it to stop the following warnings:
      
      arch/riscv/kernel/cpu_ops_spinwait.c:15:6: warning: symbol '__cpu_spinwait_stack_pointer' was not declared. Should it be static?
      arch/riscv/kernel/cpu_ops_spinwait.c:16:6: warning: symbol '__cpu_spinwait_task_pointer' was not declared. Should it be static?
      Signed-off-by: default avatarBen Dooks <ben.dooks@sifive.com>
      Link: https://lore.kernel.org/r/20220713215306.94675-1-ben.dooks@sifive.com
      Fixes: c78f94f3 ("RISC-V: Use __cpu_up_stack/task_pointer only for spinwait method")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      e4aa991c
    • Ben Dooks's avatar
      RISC-V: Declare cpu_ops_spinwait in <asm/cpu_ops.h> · da6d2128
      Ben Dooks authored
      The cpu_ops_spinwait is used in a couple of places in arch/riscv
      and is causing a sparse warning due to no declaration. Add this
      to <asm/cpu_ops.h> with the others to fix the following:
      
      arch/riscv/kernel/cpu_ops_spinwait.c:16:29: warning: symbol 'cpu_ops_spinwait' was not declared. Should it be static?
      Signed-off-by: default avatarBen Dooks <ben.dooks@sifive.com>
      Link: https://lore.kernel.org/r/20220714071811.187491-1-ben.dooks@sifive.com
      [Palmer: Drop the extern from cpu_ops.c]
      Fixes: 2ffc48fc ("RISC-V: Move spinwait booting method to its own config")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      da6d2128
    • Mark Kettenis's avatar
      riscv: dts: starfive: correct number of external interrupts · a208acf0
      Mark Kettenis authored
      The PLIC integrated on the Vic_U7_Core integrated on the StarFive
      JH7100 SoC actually supports 133 external interrupts.  127 of these
      are exposed to the outside world; the remainder are used by other
      devices that are part of the core-complex such as the L2 cache
      controller.  But all 133 interrupts are external interrupts as far
      as the PLIC is concerned.  Fix the property so that the driver can
      manage these additional interrupts, which is important since the
      interrupts for the L2 cache controller are enabled by default.
      
      Fixes: ec85362f ("RISC-V: Add initial StarFive JH7100 device tree")
      Signed-off-by: default avatarMark Kettenis <kettenis@openbsd.org>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20220707185529.19509-1-kettenis@openbsd.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      a208acf0
    • Emil Renner Berthing's avatar
      riscv: dts: sifive unmatched: Add PWM controlled LEDs · 2cfe9bbe
      Emil Renner Berthing authored
      This adds the two PWM controlled LEDs to the HiFive Unmatched device
      tree. D12 is just a regular green diode, but D2 is an RGB diode with 3
      PWM inputs controlling the three different colours.
      Signed-off-by: default avatarEmil Renner Berthing <emil.renner.berthing@canonical.com>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Tested-by: default avatarRon Economos <re@w6rz.net>
      Link: https://lore.kernel.org/r/20220705210143.315151-5-emil.renner.berthing@canonical.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      2cfe9bbe
    • Masahiro Yamada's avatar
      riscv/purgatory: Omit use of bin2c · d8357e3b
      Masahiro Yamada authored
      The .incbin assembler directive is much faster than bin2c + $(CC).
      
      Do similar refactoring as in commit 4c0f032d ("s390/purgatory:
      Omit use of bin2c").
      
      Please note the .quad directive matches to size_t in C (both 8 byte)
      because the purgatory is compiled only for the 64-bit kernel.
      (KEXEC_FILE depends on 64BIT).
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Link: https://lore.kernel.org/r/20220625223438.835408-2-masahiroy@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      d8357e3b
    • Masahiro Yamada's avatar
      riscv/purgatory: hard-code obj-y in Makefile · 788177e7
      Masahiro Yamada authored
      The purgatory/ directory is entirely guarded in arch/riscv/Kbuild.
      CONFIG_ARCH_HAS_KEXEC_PURGATORY is bool type.
      
      $(CONFIG_ARCH_HAS_KEXEC_PURGATORY) is always 'y' when Kbuild visits
      this Makefile for building.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Link: https://lore.kernel.org/r/20220625223438.835408-1-masahiroy@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      788177e7
    • Palmer Dabbelt's avatar
      RISC-V: fixups to work with crash tool · da06cc5b
      Palmer Dabbelt authored
      A handful of fixes to our kexec/crash kernel support that allow crash
      tool to function.
      
      Link: https://lore.kernel.org/r/mhng-f5fdaa37-e99a-4214-a297-ec81f0fed0c1@palmer-mbp2014
      
      * commit 'f9293ad4':
        RISC-V: Add modules to virtual kernel memory layout dump
        RISC-V: Fixup schedule out issue in machine_crash_shutdown()
        RISC-V: Fixup get incorrect user mode PC for kernel mode regs
        RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context
      da06cc5b
    • Xianting Tian's avatar
      RISC-V: Add modules to virtual kernel memory layout dump · f9293ad4
      Xianting Tian authored
      Modules always live before the kernel, MODULES_END is fixed but
      MODULES_VADDR isn't fixed, it depends on the kernel size.
      Let's add it to virtual kernel memory layout dump.
      
      As MODULES is only defined for CONFIG_64BIT, so we dump it when
      CONFIG_64BIT=y.
      
      eg,
      MODULES_VADDR - MODULES_END
      0xffffffff01133000 - 0xffffffff80000000
      Reviewed-by: default avatarGuo Ren <guoren@kernel.org>
      Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarXianting Tian <xianting.tian@linux.alibaba.com>
      Link: https://lore.kernel.org/r/20220811074150.3020189-5-xianting.tian@linux.alibaba.com
      Cc: stable@vger.kernel.org
      Fixes: 2bfc6cd8 ("riscv: Move kernel mapping outside of linear mapping")
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      f9293ad4
    • Krzysztof Kozlowski's avatar
    • Xianting Tian's avatar
      RISC-V: Fixup schedule out issue in machine_crash_shutdown() · ad943893
      Xianting Tian authored
      Current task of executing crash kexec will be schedule out when panic is
      triggered by RCU Stall, as it needs to wait rcu completion. It lead to
      inability to enter the crash system.
      
      The implementation of machine_crash_shutdown() is non-standard for RISC-V
      according to other Arch's implementation(eg, x86, arm64), we need to send
      IPI to stop secondary harts.
      
      [224521.877268] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
      [224521.883471] rcu: 	0-...0: (3 GPs behind) idle=cfa/0/0x1 softirq=3968793/3968793 fqs=2495
      [224521.891742] 	(detected by 2, t=5255 jiffies, g=60855593, q=328)
      [224521.897754] Task dump for CPU 0:
      [224521.901074] task:swapper/0     state:R  running task   stack:  0 pid:  0 ppid:   0 flags:0x00000008
      [224521.911090] Call Trace:
      [224521.913638] [<ffffffe000c432de>] __schedule+0x208/0x5ea
      [224521.918957] Kernel panic - not syncing: RCU Stall
      [224521.923773] bad: scheduling from the idle thread!
      [224521.928571] CPU: 2 PID: 0 Comm: swapper/2 Kdump: loaded Tainted: G   O  5.10.113-yocto-standard #1
      [224521.938658] Call Trace:
      [224521.941200] [<ffffffe00020395c>] walk_stackframe+0x0/0xaa
      [224521.946689] [<ffffffe000c34f8e>] show_stack+0x32/0x3e
      [224521.951830] [<ffffffe000c39020>] dump_stack_lvl+0x7e/0xa2
      [224521.957317] [<ffffffe000c39058>] dump_stack+0x14/0x1c
      [224521.962459] [<ffffffe000243884>] dequeue_task_idle+0x2c/0x40
      [224521.968207] [<ffffffe000c434f4>] __schedule+0x41e/0x5ea
      [224521.973520] [<ffffffe000c43826>] schedule+0x34/0xe4
      [224521.978487] [<ffffffe000c46cae>] schedule_timeout+0xc6/0x170
      [224521.984234] [<ffffffe000c4491e>] wait_for_completion+0x98/0xf2
      [224521.990157] [<ffffffe00026d9e2>] __wait_rcu_gp+0x148/0x14a
      [224521.995733] [<ffffffe0002761c4>] synchronize_rcu+0x5c/0x66
      [224522.001307] [<ffffffe00026f1a6>] rcu_sync_enter+0x54/0xe6
      [224522.006795] [<ffffffe00025a436>] percpu_down_write+0x32/0x11c
      [224522.012629] [<ffffffe000c4266a>] _cpu_down+0x92/0x21a
      [224522.017771] [<ffffffe000219a0a>] smp_shutdown_nonboot_cpus+0x90/0x118
      [224522.024299] [<ffffffe00020701e>] machine_crash_shutdown+0x30/0x4a
      [224522.030483] [<ffffffe00029a3f8>] __crash_kexec+0x62/0xa6
      [224522.035884] [<ffffffe000c3515e>] panic+0xfa/0x2b6
      [224522.040678] [<ffffffe0002772be>] rcu_sched_clock_irq+0xc26/0xcb8
      [224522.046774] [<ffffffe00027fc7a>] update_process_times+0x62/0x8a
      [224522.052785] [<ffffffe00028d522>] tick_sched_timer+0x9e/0x102
      [224522.058533] [<ffffffe000280c3a>] __hrtimer_run_queues+0x16a/0x318
      [224522.064716] [<ffffffe0002812ec>] hrtimer_interrupt+0xd4/0x228
      [224522.070551] [<ffffffe0009a69b6>] riscv_timer_interrupt+0x3c/0x48
      [224522.076646] [<ffffffe000268f8c>] handle_percpu_devid_irq+0xb0/0x24c
      [224522.083004] [<ffffffe00026428e>] __handle_domain_irq+0xa8/0x122
      [224522.089014] [<ffffffe00062f954>] riscv_intc_irq+0x38/0x60
      [224522.094501] [<ffffffe000201bd4>] ret_from_exception+0x0/0xc
      [224522.100161] [<ffffffe000c42146>] rcu_eqs_enter.constprop.0+0x8c/0xb8
      
      With the patch, it can enter crash system when RCU Stall occur.
      
      Fixes: e53d2818 ("RISC-V: Add kdump support")
      Signed-off-by: default avatarXianting Tian <xianting.tian@linux.alibaba.com>
      Link: https://lore.kernel.org/r/20220811074150.3020189-4-xianting.tian@linux.alibaba.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      ad943893
    • Xianting Tian's avatar
      RISC-V: Fixup get incorrect user mode PC for kernel mode regs · 59c026c3
      Xianting Tian authored
      When use 'echo c > /proc/sysrq-trigger' to trigger kdump, riscv_crash_save_regs()
      will be called to save regs for vmcore, we found "epc" value 00ffffffa5537400
      is not a valid kernel virtual address, but is a user virtual address. Other
      regs(eg, ra, sp, gp...) are correct kernel virtual address.
      Actually 0x00ffffffb0dd9400 is the user mode PC of 'PID: 113 Comm: sh', which
      is saved in the task's stack.
      
      [   21.201701] CPU: 0 PID: 113 Comm: sh Kdump: loaded Not tainted 5.18.9 #45
      [   21.201979] Hardware name: riscv-virtio,qemu (DT)
      [   21.202160] epc : 00ffffffa5537400 ra : ffffffff80088640 sp : ff20000010333b90
      [   21.202435]  gp : ffffffff810dde38 tp : ff6000000226c200 t0 : ffffffff8032be7c
      [   21.202707]  t1 : 0720072007200720 t2 : 30203a7375746174 s0 : ff20000010333cf0
      [   21.202973]  s1 : 0000000000000000 a0 : ff20000010333b98 a1 : 0000000000000001
      [   21.203243]  a2 : 0000000000000010 a3 : 0000000000000000 a4 : 28c8f0aeffea4e00
      [   21.203519]  a5 : 28c8f0aeffea4e00 a6 : 0000000000000009 a7 : ffffffff8035c9b8
      [   21.203794]  s2 : ffffffff810df0a8 s3 : ffffffff810df718 s4 : ff20000010333b98
      [   21.204062]  s5 : 0000000000000000 s6 : 0000000000000007 s7 : ffffffff80c4a468
      [   21.204331]  s8 : 00ffffffef451410 s9 : 0000000000000007 s10: 00aaaaaac0510700
      [   21.204606]  s11: 0000000000000001 t3 : ff60000001218f00 t4 : ff60000001218f00
      [   21.204876]  t5 : ff60000001218000 t6 : ff200000103338b8
      [   21.205079] status: 0000000200000020 badaddr: 0000000000000000 cause: 0000000000000008
      
      With the incorrect PC, the backtrace showed by crash tool as below, the first
      stack frame is abnormal,
      
      crash> bt
      PID: 113      TASK: ff60000002269600  CPU: 0    COMMAND: "sh"
       #0 [ff2000001039bb90] __efistub_.Ldebug_info0 at 00ffffffa5537400 <-- Abnormal
       #1 [ff2000001039bcf0] panic at ffffffff806578ba
       #2 [ff2000001039bd50] sysrq_reset_seq_param_set at ffffffff8038c030
       #3 [ff2000001039bda0] __handle_sysrq at ffffffff8038c5f8
       #4 [ff2000001039be00] write_sysrq_trigger at ffffffff8038cad8
       #5 [ff2000001039be20] proc_reg_write at ffffffff801b7edc
       #6 [ff2000001039be40] vfs_write at ffffffff80152ba6
       #7 [ff2000001039be80] ksys_write at ffffffff80152ece
       #8 [ff2000001039bed0] sys_write at ffffffff80152f46
      
      With the patch, we can get current kernel mode PC, the output as below,
      
      [   17.607658] CPU: 0 PID: 113 Comm: sh Kdump: loaded Not tainted 5.18.9 #42
      [   17.607937] Hardware name: riscv-virtio,qemu (DT)
      [   17.608150] epc : ffffffff800078f8 ra : ffffffff8008862c sp : ff20000010333b90
      [   17.608441]  gp : ffffffff810dde38 tp : ff6000000226c200 t0 : ffffffff8032be68
      [   17.608741]  t1 : 0720072007200720 t2 : 666666666666663c s0 : ff20000010333cf0
      [   17.609025]  s1 : 0000000000000000 a0 : ff20000010333b98 a1 : 0000000000000001
      [   17.609320]  a2 : 0000000000000010 a3 : 0000000000000000 a4 : 0000000000000000
      [   17.609601]  a5 : ff60000001c78000 a6 : 000000000000003c a7 : ffffffff8035c9a4
      [   17.609894]  s2 : ffffffff810df0a8 s3 : ffffffff810df718 s4 : ff20000010333b98
      [   17.610186]  s5 : 0000000000000000 s6 : 0000000000000007 s7 : ffffffff80c4a468
      [   17.610469]  s8 : 00ffffffca281410 s9 : 0000000000000007 s10: 00aaaaaab5bb6700
      [   17.610755]  s11: 0000000000000001 t3 : ff60000001218f00 t4 : ff60000001218f00
      [   17.611041]  t5 : ff60000001218000 t6 : ff20000010333988
      [   17.611255] status: 0000000200000020 badaddr: 0000000000000000 cause: 0000000000000008
      
      With the correct PC, the backtrace showed by crash tool as below,
      
      crash> bt
      PID: 113      TASK: ff6000000226c200  CPU: 0    COMMAND: "sh"
       #0 [ff20000010333b90] riscv_crash_save_regs at ffffffff800078f8 <--- Normal
       #1 [ff20000010333cf0] panic at ffffffff806578c6
       #2 [ff20000010333d50] sysrq_reset_seq_param_set at ffffffff8038c03c
       #3 [ff20000010333da0] __handle_sysrq at ffffffff8038c604
       #4 [ff20000010333e00] write_sysrq_trigger at ffffffff8038cae4
       #5 [ff20000010333e20] proc_reg_write at ffffffff801b7ee8
       #6 [ff20000010333e40] vfs_write at ffffffff80152bb2
       #7 [ff20000010333e80] ksys_write at ffffffff80152eda
       #8 [ff20000010333ed0] sys_write at ffffffff80152f52
      
      Fixes: e53d2818 ("RISC-V: Add kdump support")
      Co-developed-by: default avatarGuo Ren <guoren@kernel.org>
      Signed-off-by: default avatarXianting Tian <xianting.tian@linux.alibaba.com>
      Link: https://lore.kernel.org/r/20220811074150.3020189-3-xianting.tian@linux.alibaba.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      59c026c3
    • Xianting Tian's avatar
      RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context · 357628e6
      Xianting Tian authored
      Use __smp_processor_id() to avoid check the preemption context when
      CONFIG_DEBUG_PREEMPT enabled, as we will enter crash kernel and no
      return.
      
      Without the patch,
      [  103.781044] sysrq: Trigger a crash
      [  103.784625] Kernel panic - not syncing: sysrq triggered crash
      [  103.837634] CPU1: off
      [  103.889668] CPU2: off
      [  103.933479] CPU3: off
      [  103.939424] Starting crashdump kernel...
      [  103.943442] BUG: using smp_processor_id() in preemptible [00000000] code: sh/346
      [  103.950884] caller is debug_smp_processor_id+0x1c/0x26
      [  103.956051] CPU: 0 PID: 346 Comm: sh Kdump: loaded Not tainted 5.10.113-00002-gce03f03bf4ec-dirty #149
      [  103.965355] Call Trace:
      [  103.967805] [<ffffffe00020372a>] walk_stackframe+0x0/0xa2
      [  103.973206] [<ffffffe000bcf1f4>] show_stack+0x32/0x3e
      [  103.978258] [<ffffffe000bd382a>] dump_stack_lvl+0x72/0x8e
      [  103.983655] [<ffffffe000bd385a>] dump_stack+0x14/0x1c
      [  103.988705] [<ffffffe000bdc8fe>] check_preemption_disabled+0x9e/0xaa
      [  103.995057] [<ffffffe000bdc926>] debug_smp_processor_id+0x1c/0x26
      [  104.001150] [<ffffffe000206c64>] machine_kexec+0x22/0xd0
      [  104.006463] [<ffffffe000291a7e>] __crash_kexec+0x6a/0xa4
      [  104.011774] [<ffffffe000bcf3fa>] panic+0xfc/0x2b0
      [  104.016480] [<ffffffe000656ca4>] sysrq_reset_seq_param_set+0x0/0x70
      [  104.022745] [<ffffffe000657310>] __handle_sysrq+0x8c/0x154
      [  104.028229] [<ffffffe0006577e8>] write_sysrq_trigger+0x5a/0x6a
      [  104.034061] [<ffffffe0003d90e0>] proc_reg_write+0x58/0xd4
      [  104.039459] [<ffffffe00036cff4>] vfs_write+0x7e/0x254
      [  104.044509] [<ffffffe00036d2f6>] ksys_write+0x58/0xbe
      [  104.049558] [<ffffffe00036d36a>] sys_write+0xe/0x16
      [  104.054434] [<ffffffe000201b9a>] ret_from_syscall+0x0/0x2
      [  104.067863] Will call new kernel at ecc00000 from hart id 0
      [  104.074939] FDT image at fc5ee000
      [  104.079523] Bye...
      
      With the patch we can got clear output,
      [   67.740553] sysrq: Trigger a crash
      [   67.744166] Kernel panic - not syncing: sysrq triggered crash
      [   67.809123] CPU1: off
      [   67.865210] CPU2: off
      [   67.909075] CPU3: off
      [   67.919123] Starting crashdump kernel...
      [   67.924900] Will call new kernel at ecc00000 from hart id 0
      [   67.932045] FDT image at fc5ee000
      [   67.935560] Bye...
      
      Fixes: 0e105f1d ("riscv: use hart id instead of cpu id on machine_kexec")
      Reviewed-by: default avatarGuo Ren <guoren@kernel.org>
      Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Reviewed-by: default avatarAtish Patra <atishp@rivosinc.com>
      Signed-off-by: default avatarXianting Tian <xianting.tian@linux.alibaba.com>
      Link: https://lore.kernel.org/r/20220811074150.3020189-2-xianting.tian@linux.alibaba.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      357628e6
    • Dao Lu's avatar
      arch/riscv: add Zihintpause support · 8eb060e1
      Dao Lu authored
      Implement support for the ZiHintPause extension.
      
      The PAUSE instruction is a HINT that indicates the current hart’s rate
      of instruction retirement should be temporarily reduced or paused.
      Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarDao Lu <daolu@rivosinc.com>
      [Palmer: Some minor merge conflicts.]
      Link: https://lore.kernel.org/all/20220620201530.3929352-1-daolu@rivosinc.com/
      Link: https://lore.kernel.org/all/20220811053356.17375-1-palmer@rivosinc.com/Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      8eb060e1
    • Palmer Dabbelt's avatar
      riscv: implement Zicbom-based CMO instructions + the t-head variant · 3aefb2ee
      Palmer Dabbelt authored
      This series is based on the alternatives changes done in my svpbmt
      series and thus also depends on Atish's isa-extension parsing series.
      
      It implements using the cache-management instructions from the  Zicbom-
      extension to handle cache flush, etc actions on platforms needing them.
      
      SoCs using cpu cores from T-Head like the Allwinne D1 implement a
      different set of cache instructions. But while they are different,
      instructions they provide the same functionality, so a variant can easly
      hook into the existing alternatives mechanism on those.
      
      [Palmer:  Some minor fixups, including a RISCV_ISA_ZICBOM dependency on
      MMU that's probably not strictly necessary.  The Zicbom support will
      trip up sparse for users that have new toolchains, I just sent a patch.]
      
      Link: https://lore.kernel.org/all/20220706231536.2041855-1-heiko@sntech.de/
      Link: https://lore.kernel.org/linux-sparse/20220811033138.20676-1-palmer@rivosinc.com/T/#u
      
      * palmer/riscv-zicbom:
        riscv: implement cache-management errata for T-Head SoCs
        riscv: Add support for non-coherent devices using zicbom extension
        dt-bindings: riscv: document cbom-block-size
        of: also handle dma-noncoherent in of_dma_is_coherent()
      3aefb2ee
  2. 10 Aug, 2022 2 commits
    • Palmer Dabbelt's avatar
      RISC-V: Canaan devicetree fixes · 8f2f74b4
      Palmer Dabbelt authored
      This series should rid us of dtbs_check errors for the RISC-V Canaan
      k210 based boards. To make keeping it that way a little easier, I
      changed the Canaan devicetree Makefile so that it would build all of the
      devicetrees in the directory if SOC_CANAAN.
      
      Link: https://lore.kernel.org/all/mhng-85044754-c361-40bc-a6a2-7082f35930bb@palmer-ri-x1c9/
      
      * remotes/palmer/riscv-canaan_dt_schema:
        riscv: dts: canaan: build all devicetress if SOC_CANAAN
        riscv: dts: canaan: add specific compatible for kd233's LCD
        riscv: dts: canaan: fix bus {ranges,reg} warnings
        riscv: dts: canaan: remove spi-max-frequency from controllers
        riscv: dts: canaan: use custom compatible for k210 i2s
        riscv: dts: canaan: fix kd233 display spi frequency
        riscv: dts: canaan: fix mmc node names
        riscv: dts: canaan: fix the k210's timer nodes
        riscv: dts: canaan: fix the k210's memory node
        dt-bindings: memory-controllers: add canaan k210 sram controller
        dt-bindings: display: ili9341: document canaan kd233's lcd
        dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
      8f2f74b4
    • Chen Lifu's avatar
      riscv: lib: uaccess: fix CSR_STATUS SR_SUM bit · c08b4848
      Chen Lifu authored
      Since commit 5d8544e2 ("RISC-V: Generic library routines and assembly")
      and commit ebcbd75e ("riscv: Fix the bug in memory access fixup code"),
      if __clear_user and __copy_user return from an fixup branch,
      CSR_STATUS SR_SUM bit will be set, it is a vulnerability, so that
      S-mode memory accesses to pages that are accessible by U-mode will success.
      Disable S-mode access to U-mode memory should clear SR_SUM bit.
      
      Fixes: 5d8544e2 ("RISC-V: Generic library routines and assembly")
      Fixes: ebcbd75e ("riscv: Fix the bug in memory access fixup code")
      Signed-off-by: default avatarChen Lifu <chenlifu@huawei.com>
      Reviewed-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Link: https://lore.kernel.org/r/20220615014714.1650349-1-chenlifu@huawei.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      c08b4848
  3. 06 Aug, 2022 14 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.20-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 4d1044fc
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Enabling the FPU is now a static_key
      
       - Improvements to the Svpbmt support
      
       - CPU topology bindings for a handful of systems
      
       - Support for systems with 64-bit hart IDs
      
       - Many settings have been enabled in the defconfig, including both
         support for the StarFive systems and many of the Docker requirements
      
      There are also a handful of cleanups and improvements, as usual.
      
      * tag 'riscv-for-linus-5.20-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (28 commits)
        riscv: enable Docker requirements in defconfig
        riscv: convert the t-head pbmt errata to use the __nops macro
        riscv: introduce nops and __nops macros for NOP sequences
        RISC-V: Add fast call path of crash_kexec()
        riscv: mmap with PROT_WRITE but no PROT_READ is invalid
        riscv/efi_stub: Add 64bit boot-hartid support on RV64
        riscv: cpu: Add 64bit hartid support on RV64
        riscv: smp: Add 64bit hartid support on RV64
        riscv: spinwait: Fix hartid variable type
        riscv: cpu_ops_sbi: Add 64bit hartid support on RV64
        riscv: dts: sifive: "fix" pmic watchdog node name
        riscv: dts: canaan: Add k210 topology information
        riscv: dts: sifive: Add fu740 topology information
        riscv: dts: sifive: Add fu540 topology information
        riscv: dts: starfive: Add JH7100 CPU topology
        RISC-V: Add CONFIG_{NON,}PORTABLE
        riscv: config: enable SOC_STARFIVE in defconfig
        riscv: dts: microchip: Add mpfs' topology information
        riscv: Kconfig.socs: Add comments
        riscv: Kconfig.erratas: Add comments
        ...
      4d1044fc
    • Linus Torvalds's avatar
      Merge tag '9p-for-5.20' of https://github.com/martinetd/linux · ea0c3926
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
      
       - a couple of fixes
      
       - add a tracepoint for fid refcounting
      
       - some cleanup/followup on fid lookup
      
       - some cleanup around req refcounting
      
      * tag '9p-for-5.20' of https://github.com/martinetd/linux:
        net/9p: Initialize the iounit field during fid creation
        net: 9p: fix refcount leak in p9_read_work() error handling
        9p: roll p9_tag_remove into p9_req_put
        9p: Add client parameter to p9_req_put()
        9p: Drop kref usage
        9p: Fix some kernel-doc comments
        9p fid refcount: cleanup p9_fid_put calls
        9p fid refcount: add a 9p_fid_ref tracepoint
        9p fid refcount: add p9_fid_get/put wrappers
        9p: Fix minor typo in code comment
        9p: Remove unnecessary variable for old fids while walking from d_parent
        9p: Make the path walk logic more clear about when cloning is required
        9p: Track the root fid with its own variable during lookups
      ea0c3926
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.19-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · c42b729e
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Instantiate glocks ouside of the glock state engine, in the contect
         of the process taking the glock. This moves unnecessary complexity
         out of the core glock code. Clean up the instantiate logic to be more
         sensible.
      
       - In gfs2_glock_async_wait(), cancel pending locking request upon
         failure. Make sure all glocks are left in a consistent state.
      
       - Various other minor cleanups and fixes.
      
      * tag 'gfs2-v5.19-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: List traversal in do_promote is safe
        gfs2: do_promote glock holder stealing fix
        gfs2: Use better variable name
        gfs2: Make go_instantiate take a glock
        gfs2: Add new go_held glock operation
        gfs2: Revert 'Fix "truncate in progress" hang'
        gfs2: Instantiate glocks ouside of glock state engine
        gfs2: Fix up gfs2_glock_async_wait
        gfs2: Minor gfs2_glock_nq_m cleanup
        gfs2: Fix spelling mistake in comment
        gfs2: Rewrap overlong comment in do_promote
        gfs2: Remove redundant NULL check before kfree
      c42b729e
    • Linus Torvalds's avatar
      Revert "iommu/dma: Add config for PCI SAC address trick" · af3e9579
      Linus Torvalds authored
      This reverts commit 4bf7fda4.
      
      It turns out that it was hopelessly naive to think that this would work,
      considering that we've always done this.  The first machine I actually
      tested this on broke at bootup, getting to
      
          Reached target cryptsetup.target - Local Encrypted Volumes.
      
      and then hanging.  It's unclear what actually fails, since there's a lot
      else going on around that time (eg amdgpu probing also happens around
      that same time, but it could be some other random init thing that didn't
      complete earlier and just caused the boot to hang at that point).
      
      The expectations that we should default to some unsafe and untested mode
      seems entirely unfounded, and the belief that this wouldn't affect
      modern systems is clearly entirely false.  The machine in question is
      about two years old, so it's not exactly shiny, but it's also not some
      dusty old museum piece PDP-11 in a closet.
      
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Joerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      af3e9579
    • Linus Torvalds's avatar
      Merge tag 'for-6.0/dm-changes-2' of... · 20cf903a
      Linus Torvalds authored
      Merge tag 'for-6.0/dm-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull more device mapper updates from Mike Snitzer:
      
       - Add flags argument to dm_bufio_client_create and introduce
         DM_BUFIO_CLIENT_NO_SLEEP flag to have dm-bufio use spinlock rather
         than mutex for its locking.
      
       - Add optional "try_verify_in_tasklet" feature to DM verity target.
         This feature gives users the option to improve IO latency by using a
         tasklet to verify, using hashes in bufio's cache, rather than wait to
         schedule a work item via workqueue. But if there is a bufio cache
         miss, or an error, then the tasklet will fallback to using workqueue.
      
       - Incremental changes to both dm-bufio and the DM verity target to use
         jump_label to minimize cost of branching associated with the niche
         "try_verify_in_tasklet" feature. DM-bufio in particular is used by
         quite a few other DM targets so it doesn't make sense to incur
         additional bufio cost in those targets purely for the benefit of this
         niche verity feature if the feature isn't ever used.
      
       - Optimize verity_verify_io, which is used by both workqueue and
         tasklet based verification, if FEC is not configured or tasklet based
         verification isn't used.
      
       - Remove DM verity target's verify_wq's use of the WQ_CPU_INTENSIVE
         flag since it uses WQ_UNBOUND. Also, use the WQ_HIGHPRI flag if
         "try_verify_in_tasklet" is specified.
      
      * tag 'for-6.0/dm-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm verity: have verify_wq use WQ_HIGHPRI if "try_verify_in_tasklet"
        dm verity: remove WQ_CPU_INTENSIVE flag since using WQ_UNBOUND
        dm verity: only copy bvec_iter in verity_verify_io if in_tasklet
        dm verity: optimize verity_verify_io if FEC not configured
        dm verity: conditionally enable branching for "try_verify_in_tasklet"
        dm bufio: conditionally enable branching for DM_BUFIO_CLIENT_NO_SLEEP
        dm verity: allow optional args to alter primary args handling
        dm verity: Add optional "try_verify_in_tasklet" feature
        dm bufio: Add DM_BUFIO_CLIENT_NO_SLEEP flag
        dm bufio: Add flags argument to dm_bufio_client_create
      20cf903a
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.20-2022-08-06' of git://git.infradead.org/users/hch/dma-mapping · c993e07b
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - convert arm32 to the common dma-direct code (Arnd Bergmann, Robin
         Murphy, Christoph Hellwig)
      
       - restructure the PCIe peer to peer mapping support (Logan Gunthorpe)
      
       - allow the IOMMU code to communicate an optional DMA mapping length
         and use that in scsi and libata (John Garry)
      
       - split the global swiotlb lock (Tianyu Lan)
      
       - various fixes and cleanup (Chao Gao, Dan Carpenter, Dongli Zhang,
         Lukas Bulwahn, Robin Murphy)
      
      * tag 'dma-mapping-5.20-2022-08-06' of git://git.infradead.org/users/hch/dma-mapping: (45 commits)
        swiotlb: fix passing local variable to debugfs_create_ulong()
        dma-mapping: reformat comment to suppress htmldoc warning
        PCI/P2PDMA: Remove pci_p2pdma_[un]map_sg()
        RDMA/rw: drop pci_p2pdma_[un]map_sg()
        RDMA/core: introduce ib_dma_pci_p2p_dma_supported()
        nvme-pci: convert to using dma_map_sgtable()
        nvme-pci: check DMA ops when indicating support for PCI P2PDMA
        iommu/dma: support PCI P2PDMA pages in dma-iommu map_sg
        iommu: Explicitly skip bus address marked segments in __iommu_map_sg()
        dma-mapping: add flags to dma_map_ops to indicate PCI P2PDMA support
        dma-direct: support PCI P2PDMA pages in dma-direct map_sg
        dma-mapping: allow EREMOTEIO return code for P2PDMA transfers
        PCI/P2PDMA: Introduce helpers for dma_map_sg implementations
        PCI/P2PDMA: Attempt to set map_type if it has not been set
        lib/scatterlist: add flag for indicating P2PDMA segments in an SGL
        swiotlb: clean up some coding style and minor issues
        dma-mapping: update comment after dmabounce removal
        scsi: sd: Add a comment about limiting max_sectors to shost optimal limit
        ata: libata-scsi: cap ata_device->max_sectors according to shost->max_sectors
        scsi: scsi_transport_sas: cap shost opt_sectors according to DMA optimal limit
        ...
      c993e07b
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 1d239c1e
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - The most intrusive patch is small and changes the default allocation
         policy for DMA addresses.
      
         Before the change the allocator tried its best to find an address in
         the first 4GB. But that lead to performance problems when that space
         gets exhaused, and since most devices are capable of 64-bit DMA these
         days, we changed it to search in the full DMA-mask range from the
         beginning.
      
         This change has the potential to uncover bugs elsewhere, in the
         kernel or the hardware. There is a Kconfig option and a command line
         option to restore the old behavior, but none of them is enabled by
         default.
      
       - Add Robin Murphy as reviewer of IOMMU code and maintainer for the
         dma-iommu and iova code
      
       - Chaning IOVA magazine size from 1032 to 1024 bytes to save memory
      
       - Some core code cleanups and dead-code removal
      
       - Support for ACPI IORT RMR node
      
       - Support for multiple PCI domains in the AMD-Vi driver
      
       - ARM SMMU changes from Will Deacon:
            - Add even more Qualcomm device-tree compatible strings
            - Support dumping of IMP DEF Qualcomm registers on TLB sync
              timeout
            - Fix reference count leak on device tree node in Qualcomm driver
      
       - Intel VT-d driver updates from Lu Baolu:
            - Make intel-iommu.h private
            - Optimize the use of two locks
            - Extend the driver to support large-scale platforms
            - Cleanup some dead code
      
       - MediaTek IOMMU refactoring and support for TTBR up to 35bit
      
       - Basic support for Exynos SysMMU v7
      
       - VirtIO IOMMU driver gets a map/unmap_pages() implementation
      
       - Other smaller cleanups and fixes
      
      * tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (116 commits)
        iommu/amd: Fix compile warning in init code
        iommu/amd: Add support for AVIC when SNP is enabled
        iommu/amd: Simplify and Consolidate Virtual APIC (AVIC) Enablement
        ACPI/IORT: Fix build error implicit-function-declaration
        drivers: iommu: fix clang -wformat warning
        iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
        iommu/arm-smmu-qcom: Add SM6375 SMMU compatible
        dt-bindings: arm-smmu: Add compatible for Qualcomm SM6375
        MAINTAINERS: Add Robin Murphy as IOMMU SUBSYTEM reviewer
        iommu/amd: Do not support IOMMUv2 APIs when SNP is enabled
        iommu/amd: Do not support IOMMU_DOMAIN_IDENTITY after SNP is enabled
        iommu/amd: Set translation valid bit only when IO page tables are in use
        iommu/amd: Introduce function to check and enable SNP
        iommu/amd: Globally detect SNP support
        iommu/amd: Process all IVHDs before enabling IOMMU features
        iommu/amd: Introduce global variable for storing common EFR and EFR2
        iommu/amd: Introduce Support for Extended Feature 2 Register
        iommu/amd: Change macro for IOMMU control register bit shift to decimal value
        iommu/exynos: Enable default VM instance on SysMMU v7
        iommu/exynos: Add SysMMU v7 register set
        ...
      1d239c1e
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 75b9fcb5
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Core Framework:
         - Change maintainer email address
      
        Fix-ups:
         - Obtain OCP level from Device Tree; rt4831-backlight
         - DT fix-ups/conversions; richtek,rt4831-backlight
         - Remove unused code / functionatlity; platform_lcd
         - Switch to atomic PWM API; lp855x_bl
      
      * tag 'backlight-next-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        MAINTAINERS: Use Lee Jones' kernel.org address for Backlight submissions
        backlight: lp855x: Switch to atomic PWM API
        dt-bindings: backlight: Update Lee Jones' email address
        Revert "drivers/video/backlight/platform_lcd.c: add support for device tree based probe"
        backlight: rt4831: Apply ocp level from devicetree
        dt-bindings: backlight: rt4831: Add the new ocp level property
      75b9fcb5
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 613b2a82
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Core Framework:
         - Change maintainer email address
         - Use acpi_dev_for_each_child() helper to walk the ACPI list
      
        New Device Support:
         - BCM2711 RPiVid ASB in Broadcom BCM2835
         - MT8195 dual-core RISC-V MCU in Chrome OS Embedded Controller
         - Regulator, RTC and Keys in MediaTek MT6357 PMIC
         - GPIO in X-Powers AXP20x PMIC
         - MT6331 and MT6332 in MediaTek MT6357 PMIC
         - Intel Meteor Lake-P PCI in Intel LPSS PCI
      
        New Functionality:
         - Add support for non-ACPI platforms; lpc_ich
      
        Fix-ups:
         - Use platform data instead of hard-coded values; bcm2835-pm
         - Make use of BIT/GENMASK macros; intel_soc_pmic_bxtwc
         - Use dev_err_probe() helper; intel_soc_pmic_chtwc,
           intel_soc_pmic_bxtwc
         - Use provided generic APIs / helpers; lpc_ich
         - Clean-up .remove() return values; asic3, t7l66xb, tc6387xb,
           tc6393xb
         - Use correct formatting specifiers; syscon
         - Replace sprintf() with sysfs_emit(); intel_soc_pmic_bxtwc
         - Automatically detect and fill USB endpoint pointers; dln2
         - Use more appropriate dev/platform/spi resources APIs;
           intel_soc_pmic_bxtwc
         - Make use of pm_sleep_ptr(); intel_soc_pmic_chtwc,
           intel_soc_pmic_bxtwc
         - Improve error handling; intel_soc_pmic_bxtwc
         - Use core driver API to create groups; intel_soc_pmic_bxtwc
         - Kconfig fix-ups; MFD_SUN6I_PRCM
         - Admin: whitespace/email addresses/etc; max77714, db8500-prcmu,
           ipaq-micro, intel_soc_pmic_bxtwc
         - Remove duplicate/unused code/functionality; lpc_ich, twl-core,
           qcom-pm8008, intel_soc_pmic_bxtwc
         - DT fix-ups / conversions; da9063, ti,j721e-system-controller,
           st,stm32-timers, mt6397, qcom,tcsr, mps,mp2629, qcom-pm8xxx,
           fsl,imx8qxp-csr
      
        Bug Fixes:
         - Fix of_node reference leak; max77620"
      
      * tag 'mfd-next-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (49 commits)
        dt-bindings: mfd: stm32-timers: Move fixed string node names under 'properties'
        dt-bindings: mfd: st,stm32-timers: Correct 'resets' property name
        dt-bindings: mfd: syscon: Update Lee Jones' email address
        MAINTAINERS: Use Lee Jones' kernel.org address for Syscon submissions
        MAINTAINERS: Use Lee Jones' kernel.org address for MFD submissions
        mfd: sun6i-prcm: Update Kconfig description
        mfd: intel_soc_pmic_bxtwc: Fix spelling in the comment
        mfd: intel_soc_pmic_bxtwc: Drop unneeded casting
        mfd: intel_soc_pmic_bxtwc: Use sysfs_emit() instead of sprintf()
        mfd: intel_soc_pmic_bxtwc: Use bits.h macros for all masks
        mfd: intel_soc_pmic_bxtwc: Drop redundant ACPI_PTR()
        mfd: intel_soc_pmic_bxtwc: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() etc
        mfd: intel_soc_pmic_bxtwc: Extend use of temporary variable for struct device
        mfd: intel_soc_pmic_bxtwc: Use dev_err_probe()
        mfd: intel_soc_pmic_bxtwc: Convert to use platform_get/set_drvdata()
        mfd: intel_soc_pmic_bxtwc: Create sysfs attributes using core driver's facility
        mfd: intel_soc_pmic_bxtwc: Don't shadow error codes in show()/store()
        mfd: intel-lpss: Add Intel Meteor Lake-P PCI IDs
        mfd: mt6397: Add basic support for MT6331+MT6332 PMIC
        mfd: axp20x: Add AXP221/AXP223/AXP809 GPIO cells
        ...
      613b2a82
    • Linus Torvalds's avatar
      Merge tag 'sound-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 668c3c23
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "As the diffstat shows, we've had lots of developments in a wide range
        at this time; the majority of changes are about ASoC, including
        subsystem-wide cleanups, continued SOF / Intel updates and a bunch of
        new drivers (as usual), while there have been some significant (but
        almost invisible) improvements in ALSA core side, too.
      
        Below are some highlights:
      
        Core:
      
         - Faster lookups of control elements with Xarray; normal user won't
           notice, but on the devices with tons of control elements, it can be
           visibly faster
      
         - Support for input validation for controls; this will harden for
           badly written drivers in general with a slight overhead
      
         - Deferred async signal handling for working around the potential
           deadlocks
      
         - Cleanup / refactoring raw MIDI locking code
      
        ASoC:
      
         - Restructing of the set_fmt() callbacks for making things clearer in
           situations like CODEC to CODEC links
      
         - Clean up and modernizing the DAI naming scheme setups
      
         - Merge of more of the Intel AVS driver stack, including some board
           integrations
      
         - New version 4 mechanism for communication with SOF DSPs
      
         - Suppoort for dynamically selecting the PLL to use at runtime on
           i.MX platforms
      
         - Improvements for CODEC to CODEC support in the generic cards
      
         - Support for AMD Jadeite and various machines, AMD RPL, Intel
           MetorLake DSPs, Mediatek MT8186 DSPs and MT6366, nVidia Tegra
           MDDRC, OPE and PEQ, NXP TFA9890, Qualcomm SDM845, WCD9335 and
           WAS883x, and Texas Instruments TAS2780
      
        HD- and USB-audio:
      
         - Continued improvement for CS35L41 (sub)codec support
      
         - More quirks for various devices (HP, Lenovo, Dell, Clevo)"
      
      * tag 'sound-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (778 commits)
        ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx
        ALSA: line6: Replace sprintf() with sysfs_emit()
        ALSA: hda: Replace sprintf() with sysfs_emit()
        ALSA: pcm: Replace sprintf() with sysfs_emit()
        ALSA: core: Replace scnprintf() with sysfs_emit()
        ALSA: control-led: Replace sprintf() with sysfs_emit()
        ALSA: aoa: Replace sprintf() with sysfs_emit()
        ALSA: ac97: Replace sprintf() with sysfs_emit()
        ALSA: hda/realtek: Add quirk for Clevo NV45PZ
        ALSA: hda/realtek: Add quirk for Lenovo Yoga9 14IAP7
        ALSA: control: Use deferred fasync helper
        ALSA: pcm: Use deferred fasync helper
        ALSA: timer: Use deferred fasync helper
        ALSA: core: Add async signal helpers
        ASoC: q6asm: use kcalloc() instead of kzalloc()
        ACPI: scan: Add CLSA0101 Laptop Support
        ALSA: hda: cs35l41: Support CLSA0101
        ALSA: hda: cs35l41: Use the CS35L41 HDA internal define
        ASoC: dt-bindings: use spi-peripheral-props.yaml
        ASoC: codecs: va-macro: use fsgen as clock
        ...
      668c3c23
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · f20c95b4
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "Mostly TPM and also few keyring fixes"
      
      * tag 'tpmdd-next-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: Add check for Failure mode for TPM2 modules
        tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
        tpm: fix platform_no_drv_owner.cocci warning
        KEYS: asymmetric: enforce SM2 signature use pkey algo
        pkcs7: support EC-RDSA/streebog in SignerInfo
        pkcs7: parser support SM2 and SM3 algorithms combination
        sign-file: Fix confusing error messages
        X.509: Support parsing certificate using SM2 algorithm
        tpm: Add tpm_tis_i2c backend for tpm_tis_core
        tpm: Add tpm_tis_verify_crc to the tpm_tis_phy_ops protocol layer
        dt-bindings: trivial-devices: Add Infineon SLB9673 TPM
        tpm: Add upgrade/reduced mode support for TPM1.2 modules
      f20c95b4
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.0-2022-08-04' of... · 48a577dc
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.0-2022-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
      
       - Introduce 'perf lock contention' subtool, using new lock contention
         tracepoints and using BPF for in kernel aggregation and then
         userspace processing using the perf tooling infrastructure for
         resolving symbols, target specification, etc.
      
         Since the new lock contention tracepoints don't provide lock names,
         get up to 8 stack traces and display the first non-lock function
         symbol name as a caller:
      
          $ perf lock report -F acquired,contended,avg_wait,wait_total
      
                          Name   acquired  contended     avg wait    total wait
      
           update_blocked_a...         40         40      3.61 us     144.45 us
           kernfs_fop_open+...          5          5      3.64 us      18.18 us
            _nohz_idle_balance          3          3      2.65 us       7.95 us
           tick_do_update_j...          1          1      6.04 us       6.04 us
            ep_scan_ready_list          1          1      3.93 us       3.93 us
      
         Supports the usual 'perf record' + 'perf report' workflow as well as
         a BCC/bpftrace like mode where you start the tool and then press
         control+C to get results:
      
           $ sudo perf lock contention -b
          ^C
          contended   total wait     max wait     avg wait         type   caller
      
                  42    192.67 us     13.64 us      4.59 us     spinlock   queue_work_on+0x20
                  23     85.54 us     10.28 us      3.72 us     spinlock   worker_thread+0x14a
                   6     13.92 us      6.51 us      2.32 us        mutex   kernfs_iop_permission+0x30
                   3     11.59 us     10.04 us      3.86 us        mutex   kernfs_dop_revalidate+0x3c
                   1      7.52 us      7.52 us      7.52 us     spinlock   kthread+0x115
                   1      7.24 us      7.24 us      7.24 us     rwlock:W   sys_epoll_wait+0x148
                   2      7.08 us      3.99 us      3.54 us     spinlock   delayed_work_timer_fn+0x1b
                   1      6.41 us      6.41 us      6.41 us     spinlock   idle_balance+0xa06
                   2      2.50 us      1.83 us      1.25 us        mutex   kernfs_iop_lookup+0x2f
                   1      1.71 us      1.71 us      1.71 us        mutex   kernfs_iop_getattr+0x2c
          ...
      
       - Add new 'perf kwork' tool to trace time properties of kernel work
         (such as softirq, and workqueue), uses eBPF skeletons to collect info
         in kernel space, aggregating data that then gets processed by the
         userspace tool, e.g.:
      
          # perf kwork report
      
           Kwork Name      | Cpu | Total Runtime | Count | Max runtime | Max runtime start | Max runtime end |
          ----------------------------------------------------------------------------------------------------
           nvme0q5:130     | 004 |      1.101 ms |    49 |    0.051 ms |    26035.056403 s |  26035.056455 s |
           amdgpu:162      | 002 |      0.176 ms |     9 |    0.046 ms |    26035.268020 s |  26035.268066 s |
           nvme0q24:149    | 023 |      0.161 ms |    55 |    0.009 ms |    26035.655280 s |  26035.655288 s |
           nvme0q20:145    | 019 |      0.090 ms |    33 |    0.014 ms |    26035.939018 s |  26035.939032 s |
           nvme0q31:156    | 030 |      0.075 ms |    21 |    0.010 ms |    26035.052237 s |  26035.052247 s |
           nvme0q8:133     | 007 |      0.062 ms |    12 |    0.021 ms |    26035.416840 s |  26035.416861 s |
           nvme0q6:131     | 005 |      0.054 ms |    22 |    0.010 ms |    26035.199919 s |  26035.199929 s |
           nvme0q19:144    | 018 |      0.052 ms |    14 |    0.010 ms |    26035.110615 s |  26035.110625 s |
           nvme0q7:132     | 006 |      0.049 ms |    13 |    0.007 ms |    26035.125180 s |  26035.125187 s |
           nvme0q18:143    | 017 |      0.033 ms |    14 |    0.007 ms |    26035.169698 s |  26035.169705 s |
           nvme0q17:142    | 016 |      0.013 ms |     1 |    0.013 ms |    26035.565147 s |  26035.565160 s |
           enp5s0-rx-0:164 | 006 |      0.004 ms |     4 |    0.002 ms |    26035.928882 s |  26035.928884 s |
           enp5s0-tx-0:166 | 008 |      0.003 ms |     3 |    0.002 ms |    26035.870923 s |  26035.870925 s |
          --------------------------------------------------------------------------------------------------------
      
         See commit log messages for more examples with extra options to limit
         the events time window, etc.
      
       - Add support for new AMD IBS (Instruction Based Sampling) features:
      
         With the DataSrc extensions, the source of data can be decoded among:
           - Local L3 or other L1/L2 in CCX.
           - A peer cache in a near CCX.
           - Data returned from DRAM.
           - A peer cache in a far CCX.
           - DRAM address map with "long latency" bit set.
           - Data returned from MMIO/Config/PCI/APIC.
           - Extension Memory (S-Link, GenZ, etc - identified by the CS target
             and/or address map at DF's choice).
           - Peer Agent Memory.
      
       - Support hardware tracing with Intel PT on guest machines, combining
         the traces with the ones in the host machine.
      
       - Add a "-m" option to 'perf buildid-list' to show kernel and modules
         build-ids, to display all of the information needed to do external
         symbolization of kernel stack traces, such as those collected by
         bpf_get_stackid().
      
       - Add arch TSC frequency information to perf.data file headers.
      
       - Handle changes in the binutils disassembler function signatures in
         perf, bpftool and bpf_jit_disasm (Acked by the bpftool maintainer).
      
       - Fix building the perf perl binding with the newest gcc in distros
         such as fedora rawhide, where some new warnings were breaking the
         build as perf uses -Werror.
      
       - Add 'perf test' entry for branch stack sampling.
      
       - Add ARM SPE system wide 'perf test' entry.
      
       - Add user space counter reading tests to 'perf test'.
      
       - Build with python3 by default, if available.
      
       - Add python converter script for the vendor JSON event files.
      
       - Update vendor JSON files for most Intel cores.
      
       - Add vendor JSON File for Intel meteorlake.
      
       - Add Arm Cortex-A78C and X1C JSON vendor event files.
      
       - Add workaround to symbol address reading from ELF files without phdr,
         falling back to the previoous equation.
      
       - Convert legacy map definition to BTF-defined in the perf BPF script
         test.
      
       - Rework prologue generation code to stop using libbpf deprecated APIs.
      
       - Add default hybrid events for 'perf stat' on x86.
      
       - Add topdown metrics in the default 'perf stat' on the hybrid machines
         (big/little cores).
      
       - Prefer sampled CPU when exporting JSON in 'perf data convert'
      
       - Fix ('perf stat CSV output linter') and ("Check branch stack
         sampling") 'perf test' entries on s390.
      
      * tag 'perf-tools-for-v6.0-2022-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (169 commits)
        perf stat: Refactor __run_perf_stat() common code
        perf lock: Print the number of lost entries for BPF
        perf lock: Add --map-nr-entries option
        perf lock: Introduce struct lock_contention
        perf scripting python: Do not build fail on deprecation warnings
        genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
        perf build: Suppress openssl v3 deprecation warnings in libcrypto feature test
        perf parse-events: Break out tracepoint and printing
        perf parse-events: Don't #define YY_EXTRA_TYPE
        tools bpftool: Don't display disassembler-four-args feature test
        tools bpftool: Fix compilation error with new binutils
        tools bpf_jit_disasm: Don't display disassembler-four-args feature test
        tools bpf_jit_disasm: Fix compilation error with new binutils
        tools perf: Fix compilation error with new binutils
        tools include: add dis-asm-compat.h to handle version differences
        tools build: Don't display disassembler-four-args feature test
        tools build: Add feature test for init_disassemble_info API changes
        perf test: Add ARM SPE system wide test
        perf tools: Rework prologue generation code
        perf bpf: Convert legacy map definition to BTF-defined
        ...
      48a577dc
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-5.20' of... · 033a9441
      Linus Torvalds authored
      Merge tag 'livepatching-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching update from Petr Mladek:
      
       - Make a selftest more reliable
      
      * tag 'livepatching-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests/livepatch: better synchronize test_klp_callbacks_busy
      033a9441
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.0-rc1' of https://github.com/awilliam/linux-vfio · a9cf69d0
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Cleanup use of extern in function prototypes (Alex Williamson)
      
       - Simplify bus_type usage and convert to device IOMMU interfaces (Robin
         Murphy)
      
       - Check missed return value and fix comment typos (Bo Liu)
      
       - Split migration ops from device ops and fix races in mlx5 migration
         support (Yishai Hadas)
      
       - Fix missed return value check in noiommu support (Liam Ni)
      
       - Hardening to clear buffer pointer to avoid use-after-free (Schspa
         Shi)
      
       - Remove requirement that only the same mm can unmap a previously
         mapped range (Li Zhe)
      
       - Adjust semaphore release vs device open counter (Yi Liu)
      
       - Remove unused arg from SPAPR support code (Deming Wang)
      
       - Rework vfio-ccw driver to better fit new mdev framework (Eric Farman,
         Michael Kawano)
      
       - Replace DMA unmap notifier with callbacks (Jason Gunthorpe)
      
       - Clarify SPAPR support comment relative to iommu_ops (Alexey
         Kardashevskiy)
      
       - Revise page pinning API towards compatibility with future iommufd
         support (Nicolin Chen)
      
       - Resolve issues in vfio-ccw, including use of DMA unmap callback (Eric
         Farman)
      
      * tag 'vfio-v6.0-rc1' of https://github.com/awilliam/linux-vfio: (40 commits)
        vfio/pci: fix the wrong word
        vfio/ccw: Check return code from subchannel quiesce
        vfio/ccw: Remove FSM Close from remove handlers
        vfio/ccw: Add length to DMA_UNMAP checks
        vfio: Replace phys_pfn with pages for vfio_pin_pages()
        vfio/ccw: Add kmap_local_page() for memcpy
        vfio: Rename user_iova of vfio_dma_rw()
        vfio/ccw: Change pa_pfn list to pa_iova list
        vfio/ap: Change saved_pfn to saved_iova
        vfio: Pass in starting IOVA to vfio_pin/unpin_pages API
        vfio/ccw: Only pass in contiguous pages
        vfio/ap: Pass in physical address of ind to ap_aqic()
        drm/i915/gvt: Replace roundup with DIV_ROUND_UP
        vfio: Make vfio_unpin_pages() return void
        vfio/spapr_tce: Fix the comment
        vfio: Replace the iommu notifier with a device list
        vfio: Replace the DMA unmapping notifier with a callback
        vfio/ccw: Move FSM open/close to MDEV open/close
        vfio/ccw: Refactor vfio_ccw_mdev_reset
        vfio/ccw: Create a CLOSE FSM event
        ...
      a9cf69d0
  4. 05 Aug, 2022 8 commits
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 6614a3c3
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Most of the MM queue. A few things are still pending.
      
        Liam's maple tree rework didn't make it. This has resulted in a few
        other minor patch series being held over for next time.
      
        Multi-gen LRU still isn't merged as we were waiting for mapletree to
        stabilize. The current plan is to merge MGLRU into -mm soon and to
        later reintroduce mapletree, with a view to hopefully getting both
        into 6.1-rc1.
      
        Summary:
      
         - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe
           Lin, Yang Shi, Anshuman Khandual and Mike Rapoport
      
         - Some kmemleak fixes from Patrick Wang and Waiman Long
      
         - DAMON updates from SeongJae Park
      
         - memcg debug/visibility work from Roman Gushchin
      
         - vmalloc speedup from Uladzislau Rezki
      
         - more folio conversion work from Matthew Wilcox
      
         - enhancements for coherent device memory mapping from Alex Sierra
      
         - addition of shared pages tracking and CoW support for fsdax, from
           Shiyang Ruan
      
         - hugetlb optimizations from Mike Kravetz
      
         - Mel Gorman has contributed some pagealloc changes to improve
           latency and realtime behaviour.
      
         - mprotect soft-dirty checking has been improved by Peter Xu
      
         - Many other singleton patches all over the place"
      
       [ XFS merge from hell as per Darrick Wong in
      
         https://lore.kernel.org/all/YshKnxb4VwXycPO8@magnolia/ ]
      
      * tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (282 commits)
        tools/testing/selftests/vm/hmm-tests.c: fix build
        mm: Kconfig: fix typo
        mm: memory-failure: convert to pr_fmt()
        mm: use is_zone_movable_page() helper
        hugetlbfs: fix inaccurate comment in hugetlbfs_statfs()
        hugetlbfs: cleanup some comments in inode.c
        hugetlbfs: remove unneeded header file
        hugetlbfs: remove unneeded hugetlbfs_ops forward declaration
        hugetlbfs: use helper macro SZ_1{K,M}
        mm: cleanup is_highmem()
        mm/hmm: add a test for cross device private faults
        selftests: add soft-dirty into run_vmtests.sh
        selftests: soft-dirty: add test for mprotect
        mm/mprotect: fix soft-dirty check in can_change_pte_writable()
        mm: memcontrol: fix potential oom_lock recursion deadlock
        mm/gup.c: fix formatting in check_and_migrate_movable_page()
        xfs: fail dax mount if reflink is enabled on a partition
        mm/memcontrol.c: remove the redundant updating of stats_flush_threshold
        userfaultfd: don't fail on unrecognized features
        hugetlb_cgroup: fix wrong hugetlb cgroup numa stat
        ...
      6614a3c3
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 74cae210
      Linus Torvalds authored
      Pull MTD updates from Richard Weinberger:
       "MTD core changes:
      
         - Dynamic partition support
      
         - Fix deadlock in sm_ftl
      
         - Various refcount fixes in maps, partitions and parser code
      
         - Integer overflow fixes in mtdchar
      
         - Support for Sercomm partitions
      
        NAND driver changes:
      
         - Clockrate fix for arasan
      
         - Add ATO25D1GA support
      
         - Double free fix for meson driver
      
         - Fix probe/remove methods in cafe NAND
      
         - Support unprotected spare data pages in qcom_nandc
      
        SPI NOR core changes:
      
         - move SECT_4K_PMC flag out of the core as it's a vendor specific
           flag
      
         - s/addr_width/addr_nbytes/g: address width means the number of IO
           lines used for the address, whereas in the code it is used as the
           number of address bytes.
      
         - do not change nor->addr_nbytes at SFDP parsing time. At the SFDP
           parsing time we should not change members of struct spi_nor, but
           instead fill members of struct spi_nor_flash_parameters which could
           later on be used by the callers.
      
         - track flash's internal address mode so that we can use 4B opcodes
           together with opcodes that don't have a 4B opcode correspondent.
      
        SPI NOR manufacturer drivers changes:
      
         - esmt: Rename "f25l32qa" flash name to "f25l32qa-2s".
      
         - micron-st: Skip FSR reading if SPI controller does not support it
           to allow flashes that support FSR to work even when attached to
           such SPI controllers.
      
         - spansion: Add s25hl-t/s25hs-t IDs and fixups"
      
      * tag 'mtd/for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (53 commits)
        mtd: core: check partition before dereference
        mtd: spi-nor: fix spi_nor_spimem_setup_op() call in spi_nor_erase_{sector,chip}()
        mtd: spi-nor: spansion: Add s25hl-t/s25hs-t IDs and fixups
        mtd: spi-nor: spansion: Add local function to discover page size
        mtd: spi-nor: core: Track flash's internal address mode
        mtd: spi-nor: core: Return error code from set_4byte_addr_mode()
        mtd: spi-nor: Do not change nor->addr_nbytes at SFDP parsing time
        mtd: spi-nor: core: Shrink the storage size of the flash_info's addr_nbytes
        mtd: spi-nor: s/addr_width/addr_nbytes
        mtd: spi-nor: esmt: Use correct name of f25l32qa
        mtd: spi-nor: micron-st: Skip FSR reading if SPI controller does not support it
        MAINTAINERS: Use my kernel.org email
        mtd: rawnand: arasan: Fix clock rate in NV-DDR
        mtd: rawnand: arasan: Update NAND bus clock instead of system clock
        mtd: core: introduce of support for dynamic partitions
        dt-bindings: mtd: partitions: add additional example for qcom,smem-part
        dt-bindings: mtd: partitions: support label/name only partition
        mtd: spi-nor: move SECT_4K_PMC special handling
        mtd: dataflash: Add SPI ID table
        mtd: hyperbus: rpc-if: Fix RPM imbalance in probe error path
        ...
      74cae210
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 79b7e67b
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - KASAN support for x86_64
      
       - noreboot command line option, just like qemu's -no-reboot
      
       - Various fixes and cleanups
      
      * tag 'for-linus-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: include sys/types.h for size_t
        um: Replace to_phys() and to_virt() with less generic function names
        um: Add missing apply_returns()
        um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
        um: include linux/stddef.h for __always_inline
        UML: add support for KASAN under x86_64
        mm: Add PAGE_ALIGN_DOWN macro
        um: random: Don't initialise hwrng struct with zero
        um: remove unused mm_copy_segments
        um: remove unused variable
        um: Remove straying parenthesis
        um: x86: print RIP with symbol
        arch: um: Fix build for statically linked UML w/ constructors
        x86/um: Kconfig: Fix indentation
        um/drivers: Kconfig: Fix indentation
        um: Kconfig: Fix indentation
      79b7e67b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of github.com:openrisc/linux · 4d5398a3
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "In this cycle we add PCI support to OpenRISC used in our new QEMU virt
        platform.
      
        The main updates from me include:
      
         - Kconfig updates to support OpenRISC PCI (just config now after the
           PCI cleanups I did on Bjorn's branch)
      
         - A new defconfig for the qemu virt platform.
      
         - Also there is one MAINTAINERS update. As I was working on the PCI
           series we kept getting bounces from Richard's old email address. I
           added this here; I am not sure how these are usually handled when
           the maintainer doesn't queue it themselves"
      
      * tag 'for-linus' of github.com:openrisc/linux:
        openrisc: io: Define iounmap argument as volatile
        MAINTAINERS: Update Richard Henderson's address
        openrisc: Add virt defconfig
        openrisc: Add pci bus support
      4d5398a3
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.0-2022-08-03.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9e2f4023
      Linus Torvalds authored
      Pull x86 SGX updates from Dave Hansen:
       "A set of x86/sgx changes focused on implementing the "SGX2" features,
        plus a minor cleanup:
      
         - SGX2 ISA support which makes enclave memory management much more
           dynamic. For instance, enclaves can now change enclave page
           permissions on the fly.
      
         - Removal of an unused structure member"
      
      * tag 'x86_sgx_for_v6.0-2022-08-03.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        x86/sgx: Drop 'page_index' from sgx_backing
        selftests/sgx: Page removal stress test
        selftests/sgx: Test reclaiming of untouched page
        selftests/sgx: Test invalid access to removed enclave page
        selftests/sgx: Test faulty enclave behavior
        selftests/sgx: Test complete changing of page type flow
        selftests/sgx: Introduce TCS initialization enclave operation
        selftests/sgx: Introduce dynamic entry point
        selftests/sgx: Test two different SGX2 EAUG flows
        selftests/sgx: Add test for TCS page permission changes
        selftests/sgx: Add test for EPCM permission changes
        Documentation/x86: Introduce enclave runtime management section
        x86/sgx: Free up EPC pages directly to support large page ranges
        x86/sgx: Support complete page removal
        x86/sgx: Support modifying SGX page type
        x86/sgx: Tighten accessible memory range after enclave initialization
        x86/sgx: Support adding of pages to an initialized enclave
        x86/sgx: Support restricting of enclave page permissions
        x86/sgx: Support VA page allocation without reclaiming
        x86/sgx: Export sgx_encl_page_alloc()
        ...
      9e2f4023
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 3bd6e585
      Linus Torvalds authored
      Pull asm-generic updates from Arnd Bergmann:
       "There are three independent sets of changes:
      
         - Sai Prakash Ranjan adds tracing support to the asm-generic version
           of the MMIO accessors, which is intended to help understand
           problems with device drivers and has been part of Qualcomm's vendor
           kernels for many years
      
         - A patch from Sebastian Siewior to rework the handling of IRQ stacks
           in softirqs across architectures, which is needed for enabling
           PREEMPT_RT
      
         - The last patch to remove the CONFIG_VIRT_TO_BUS option and some of
           the code behind that, after the last users of this old interface
           made it in through the netdev, scsi, media and staging trees"
      
      * tag 'asm-generic-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        uapi: asm-generic: fcntl: Fix typo 'the the' in comment
        arch/*/: remove CONFIG_VIRT_TO_BUS
        soc: qcom: geni: Disable MMIO tracing for GENI SE
        serial: qcom_geni_serial: Disable MMIO tracing for geni serial
        asm-generic/io: Add logging support for MMIO accessors
        KVM: arm64: Add a flag to disable MMIO trace for nVHE KVM
        lib: Add register read/write tracing support
        drm/meson: Fix overflow implicit truncation warnings
        irqchip/tegra: Fix overflow implicit truncation warnings
        coresight: etm4x: Use asm-generic IO memory barriers
        arm64: io: Use asm-generic high level MMIO accessors
        arch/*: Disable softirq stacks on PREEMPT_RT.
      3bd6e585
    • Linus Torvalds's avatar
      Merge tag 'arm-late-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · fad235ed
      Linus Torvalds authored
      Pull more ARM SoC updates from Arnd Bergmann:
       "These updates came in after I had already tagged the branches, but
        they still seem appropriate for 6.0 and most of them were part of
        linux-next through other trees.
      
         - The reset controller tree adds one new driver for the TI TPS380x
           power management chip and a few minor changes in other drivers
      
         - Apple M1 now has a DT entry for the NVMe controller after the
           driver was merged, and has a new mailing list in the MAINTAINERS
           file.
      
         - Fixes for USB on the Socionext Uniphier platforms and the network
           controller on Intel Cyclone5"
      
      * tag 'arm-late-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
        ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
        arm64: dts: apple: t8103: Add ANS2 NVMe nodes
        reset: tps380x: Fix spelling mistake "Voltags" -> "Voltage"
        reset: tps380x: Add TPS380x device driver supprt
        dt-bindings: reset: Add TPS380x documentation
        dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G2UL USBPHY Control bindings
        ARM: dts: add EMAC AXI settings for Cyclone5
        reset: reset-simple should depends on HAS_IOMEM
        Revert "reset: microchip-sparx5: allow building as a module"
        reset: a10sr: allow building under COMPILE_TEST
        reset: allow building of reset simple driver if expert config selected
        reset: microchip-sparx5: allow building as a module
        arm64: dts: apple: Re-parent ANS2 power domains
        MAINTAINERS: add ARM/APPLE MACHINE mailing list
      fad235ed
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 8db4a029
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "One real bugfix to change the io_pgetevents_time64() syscall to use
        the compat implementation when running in compat mode, otherwise the
        signed int32 parameters min_nr and nr will be incorrectly handled as
        unsigned int64 values.
      
        Other than that just small cleanups:
      
         - hardware database housekeeping and proper /proc/iomem output
      
         - add proper function exit code if probe functions fail
      
         - drop stale variables (pa_swapper_pg_lock)
      
         - drop unneccessary zero-initializations
      
         - typo fixes in comments"
      
      * tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        Input: gscps2 - check return value of ioremap() in gscps2_probe()
        parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
        parisc: Drop zero variable initialisations in mm/init.c
        parisc: Do not initialise statics to 0
        parisc: Check the return value of ioremap() in lba_driver_probe()
        parisc: Drop pa_swapper_pg_lock spinlock
        parisc: Fix comment typo in fault.c
        parisc: Fix device names in /proc/iomem
        parisc: Clean up names in hardware database
      8db4a029