1. 12 Oct, 2022 31 commits
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.1' of... · 95b8b595
      Linus Torvalds authored
      Merge tag 'loongarch-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - Use EXPLICIT_RELOCS (ABIv2.0)
      
       - Use generic BUG() handler
      
       - Refactor TLB/Cache operations
      
       - Add qspinlock support
      
       - Add perf events support
      
       - Add kexec/kdump support
      
       - Add BPF JIT support
      
       - Add ACPI-based laptop driver
      
       - Update the default config file
      
      * tag 'loongarch-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (25 commits)
        LoongArch: Update Loongson-3 default config file
        LoongArch: Add ACPI-based generic laptop driver
        LoongArch: Add BPF JIT support
        LoongArch: Add some instruction opcodes and formats
        LoongArch: Move {signed,unsigned}_imm_check() to inst.h
        LoongArch: Add kdump support
        LoongArch: Add kexec support
        LoongArch: Use generic BUG() handler
        LoongArch: Add SysRq-x (TLB Dump) support
        LoongArch: Add perf events support
        LoongArch: Add qspinlock support
        LoongArch: Use TLB for ioremap()
        LoongArch: Support access filter to /dev/mem interface
        LoongArch: Refactor cache probe and flush methods
        LoongArch: mm: Refactor TLB exception handlers
        LoongArch: Support R_LARCH_GOT_PC_{LO12,HI20} in modules
        LoongArch: Support PC-relative relocations in modules
        LoongArch: Define ELF relocation types added in ABIv2.0
        LoongArch: Adjust symbol addressing for AS_HAS_EXPLICIT_RELOCS
        LoongArch: Add Kconfig option AS_HAS_EXPLICIT_RELOCS
        ...
      95b8b595
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2022-10-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 60ac35bf
      Linus Torvalds authored
      Pull interrupt updates from Thomas Gleixner:
       "Core code:
      
         - Provide a generic wrapper which can be utilized in drivers to
           handle the problem of force threaded demultiplex interrupts on RT
           enabled kernels. This avoids conditionals and horrible quirks in
           drivers all over the place
      
         - Fix up affected pinctrl and GPIO drivers to make them cleanly RT
           safe
      
        Interrupt drivers:
      
         - A new driver for the FSL MU platform specific MSI implementation
      
         - Make irqchip_init() available for pure ACPI based systems
      
         - Provide a functional DT binding for the Realtek RTL interrupt chip
      
         - The usual DT updates and small code improvements all over the
           place"
      
      * tag 'irq-core-2022-10-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        irqchip: IMX_MU_MSI should depend on ARCH_MXC
        irqchip/imx-mu-msi: Fix wrong register offset for 8ulp
        irqchip/ls-extirq: Fix invalid wait context by avoiding to use regmap
        dt-bindings: irqchip: Describe the IMX MU block as a MSI controller
        irqchip: Add IMX MU MSI controller driver
        dt-bindings: irqchip: renesas,irqc: Add r8a779g0 support
        irqchip/gic-v3: Fix typo in comment
        dt-bindings: interrupt-controller: ti,sci-intr: Fix missing reg property in the binding
        dt-bindings: irqchip: ti,sci-inta: Fix warning for missing #interrupt-cells
        irqchip: Allow extra fields to be passed to IRQCHIP_PLATFORM_DRIVER_END
        platform-msi: Export symbol platform_msi_create_irq_domain()
        irqchip/realtek-rtl: use parent interrupts
        dt-bindings: interrupt-controller: realtek,rtl-intc: require parents
        irqchip/realtek-rtl: use irq_domain_add_linear()
        irqchip: Make irqchip_init() usable on pure ACPI systems
        bcma: gpio: Use generic_handle_irq_safe()
        gpio: mlxbf2: Use generic_handle_irq_safe()
        platform/x86: intel_int0002_vgpio: Use generic_handle_irq_safe()
        ssb: gpio: Use generic_handle_irq_safe()
        pinctrl: amd: Use generic_handle_irq_safe()
        ...
      60ac35bf
    • Huacai Chen's avatar
      LoongArch: Update Loongson-3 default config file · 2c8577f5
      Huacai Chen authored
      1, Enable ZBOOT, KEXEC and BPF_JIT;
      2, Add more patition types;
      3, Add some USB Type-C options;
      4, Add some common network options;
      5, Add some Bluetooth device drivers;
      6, Remove obsolete config options (for some detailed information, see
         Link).
      
      Link: https://lore.kernel.org/kernel-janitors/20220929090645.1389-1-lukas.bulwahn@gmail.com/Co-developed-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Co-developed-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Co-developed-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      2c8577f5
    • Jianmin Lv's avatar
      LoongArch: Add ACPI-based generic laptop driver · 6246ed09
      Jianmin Lv authored
      This add ACPI-based generic laptop driver for Loongson-3. Some of the
      codes are derived from drivers/platform/x86/thinkpad_acpi.c.
      Signed-off-by: default avatarJianmin Lv <lvjianmin@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      6246ed09
    • Tiezhu Yang's avatar
      LoongArch: Add BPF JIT support · 5dc61552
      Tiezhu Yang authored
      BPF programs are normally handled by a BPF interpreter, add BPF JIT
      support for LoongArch to allow the kernel to generate native code when
      a program is loaded into the kernel. This will significantly speed-up
      processing of BPF programs.
      Co-developed-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      5dc61552
    • Tiezhu Yang's avatar
      LoongArch: Add some instruction opcodes and formats · 4e59e5a4
      Tiezhu Yang authored
      According to the "Table of Instruction Encoding" in LoongArch Reference
      Manual [1], add some instruction opcodes and formats which are used in
      the BPF JIT for LoongArch.
      
      [1] https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#table-of-instruction-encodingSigned-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      4e59e5a4
    • Tiezhu Yang's avatar
      LoongArch: Move {signed,unsigned}_imm_check() to inst.h · 8a34228e
      Tiezhu Yang authored
      {signed,unsigned}_imm_check() will also be used in the bpf jit, so move
      them from module.c to inst.h, this is preparation for later patches.
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      8a34228e
    • Youling Tang's avatar
      LoongArch: Add kdump support · 4e62d1d8
      Youling Tang authored
      This patch adds support for kdump. In kdump case the normal kernel will
      reserve a region for the crash kernel and jump there on panic.
      
      Arch-specific functions are added to allow for implementing a crash dump
      file interface, /proc/vmcore, which can be viewed as a ELF file.
      
      A user-space tool, such as kexec-tools, is responsible for allocating a
      separate region for the core's ELF header within the crash kdump kernel
      memory and filling it in when executing kexec_load().
      
      Then, its location will be advertised to the crash dump kernel via a
      command line argument "elfcorehdr=", and the crash dump kernel will
      preserve this region for later use with arch_reserve_vmcore() at boot
      time.
      
      At the same time, the crash kdump kernel is also limited within the
      "crashkernel" area via a command line argument "mem=", so as not to
      destroy the original kernel dump data.
      
      In the crash dump kernel environment, /proc/vmcore is used to access the
      primary kernel's memory with copy_oldmem_page().
      
      I tested kdump on LoongArch machines (Loongson-3A5000) and it works as
      expected (suggested crashkernel parameter is "crashkernel=512M@2560M"),
      you may test it by triggering a crash through /proc/sysrq-trigger:
      
       $ sudo kexec -p /boot/vmlinux-kdump --reuse-cmdline --append="nr_cpus=1"
       # echo c > /proc/sysrq-trigger
      Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      4e62d1d8
    • Youling Tang's avatar
      LoongArch: Add kexec support · 4a03b2ac
      Youling Tang authored
      Add three new files, kexec.h, machine_kexec.c and relocate_kernel.S to
      the LoongArch architecture, so as to add support for the kexec re-boot
      mechanism (CONFIG_KEXEC) on LoongArch platforms.
      
      Kexec supports loading vmlinux.elf in ELF format and vmlinux.efi in PE
      format.
      
      I tested kexec on LoongArch machines (Loongson-3A5000) and it works as
      expected:
      
       $ sudo kexec -l /boot/vmlinux.efi --reuse-cmdline
       $ sudo kexec -e
      Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      4a03b2ac
    • Youling Tang's avatar
      LoongArch: Use generic BUG() handler · 2d2c3952
      Youling Tang authored
      Inspired by commit 9fb7410f("arm64/BUG: Use BRK instruction for
      generic BUG traps"), do similar for LoongArch to use generic BUG()
      handler.
      
      This patch uses the BREAK software breakpoint instruction to generate
      a trap instead, similarly to most other arches, with the generic BUG
      code generating the dmesg boilerplate.
      
      This allows bug metadata to be moved to a separate table and reduces
      the amount of inline code at BUG() and WARN() sites. This also avoids
      clobbering any registers before they can be dumped.
      
      To mitigate the size of the bug table further, this patch makes use of
      the existing infrastructure for encoding addresses within the bug table
      as 32-bit relative pointers instead of absolute pointers.
      
      (Note: this limits the max kernel size to 2GB.)
      
      Before patch:
      [ 3018.338013] lkdtm: Performing direct entry BUG
      [ 3018.342445] Kernel bug detected[#5]:
      [ 3018.345992] CPU: 2 PID: 865 Comm: cat Tainted: G D 6.0.0-rc6+ #35
      
      After patch:
      [  125.585985] lkdtm: Performing direct entry BUG
      [  125.590433] ------------[ cut here ]------------
      [  125.595020] kernel BUG at drivers/misc/lkdtm/bugs.c:78!
      [  125.600211] Oops - BUG[#1]:
      [  125.602980] CPU: 3 PID: 410 Comm: cat Not tainted 6.0.0-rc6+ #36
      
      Out-of-line file/line data information obtained compared to before.
      Signed-off-by: default avatarYouling Tang <tangyouling@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      2d2c3952
    • Huacai Chen's avatar
      LoongArch: Add SysRq-x (TLB Dump) support · dea2df3c
      Huacai Chen authored
      Add SysRq-x (TLB Dump) support for LoongArch, which is useful for
      debugging.
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      dea2df3c
    • Huacai Chen's avatar
      LoongArch: Add perf events support · b37042b2
      Huacai Chen authored
      The perf events infrastructure of LoongArch is very similar to old MIPS-
      based Loongson, so most of the codes are derived from MIPS.
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      b37042b2
    • Huacai Chen's avatar
      LoongArch: Add qspinlock support · 5f1e001b
      Huacai Chen authored
      On NUMA system, the performance of qspinlock is better than generic
      spinlock. Below is the UnixBench test results on a 8 nodes (4 cores
      per node, 32 cores in total) machine.
      
      A. With generic spinlock:
      
      System Benchmarks Index Values               BASELINE       RESULT    INDEX
      Dhrystone 2 using register variables         116700.0  449574022.5  38523.9
      Double-Precision Whetstone                       55.0      85190.4  15489.2
      Execl Throughput                                 43.0      14696.2   3417.7
      File Copy 1024 bufsize 2000 maxblocks          3960.0     143157.8    361.5
      File Copy 256 bufsize 500 maxblocks            1655.0      37631.8    227.4
      File Copy 4096 bufsize 8000 maxblocks          5800.0     444814.2    766.9
      Pipe Throughput                               12440.0    5047490.7   4057.5
      Pipe-based Context Switching                   4000.0    2021545.7   5053.9
      Process Creation                                126.0      23829.8   1891.3
      Shell Scripts (1 concurrent)                     42.4      33756.7   7961.5
      Shell Scripts (8 concurrent)                      6.0       4062.9   6771.5
      System Call Overhead                          15000.0    2479748.6   1653.2
                                                                         ========
      System Benchmarks Index Score                                        2955.6
      
      B. With qspinlock:
      
      System Benchmarks Index Values               BASELINE       RESULT    INDEX
      Dhrystone 2 using register variables         116700.0  449467876.9  38514.8
      Double-Precision Whetstone                       55.0      85174.6  15486.3
      Execl Throughput                                 43.0      14769.1   3434.7
      File Copy 1024 bufsize 2000 maxblocks          3960.0     146150.5    369.1
      File Copy 256 bufsize 500 maxblocks            1655.0      37496.8    226.6
      File Copy 4096 bufsize 8000 maxblocks          5800.0     447527.0    771.6
      Pipe Throughput                               12440.0    5175989.2   4160.8
      Pipe-based Context Switching                   4000.0    2207747.8   5519.4
      Process Creation                                126.0      25125.5   1994.1
      Shell Scripts (1 concurrent)                     42.4      33461.2   7891.8
      Shell Scripts (8 concurrent)                      6.0       4024.7   6707.8
      System Call Overhead                          15000.0    2917278.6   1944.9
                                                                         ========
      System Benchmarks Index Score                                        3040.1
      Signed-off-by: default avatarRui Wang <wangrui@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      5f1e001b
    • Huacai Chen's avatar
      LoongArch: Use TLB for ioremap() · d2791341
      Huacai Chen authored
      We can support more cache attributes (e.g., CC, SUC and WUC) and page
      protection when we use TLB for ioremap(). The implementation is based
      on GENERIC_IOREMAP.
      
      The existing simple ioremap() implementation has better performance so
      we keep it and introduce ARCH_IOREMAP to control the selection.
      
      We move pagetable_init() earlier to make early ioremap() works, and we
      modify the PCI ecam mapping because the TLB-based version of ioremap()
      will actually take the size into account.
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      d2791341
    • Huacai Chen's avatar
      LoongArch: Support access filter to /dev/mem interface · 235d074f
      Huacai Chen authored
      Accidental access to /dev/mem is obviously disastrous, but specific
      access can be used by people debugging the kernel. So select GENERIC_
      LIB_DEVMEM_IS_ALLOWED, as well as define ARCH_HAS_VALID_PHYS_ADDR_RANGE
      and related helpers, to support access filter to /dev/mem interface.
      Signed-off-by: default avatarWeihao Li <liweihao@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      235d074f
    • Huacai Chen's avatar
      LoongArch: Refactor cache probe and flush methods · b61a40af
      Huacai Chen authored
      Current cache probe and flush methods have some drawbacks:
      1, Assume there are 3 cache levels and only 3 levels;
      2, Assume L1 = I + D, L2 = V, L3 = S, V is exclusive, S is inclusive.
      
      However, the fact is I + D, I + D + V, I + D + S and I + D + V + S are
      all valid. So, refactor the cache probe and flush methods to adapt more
      types of cache hierarchy.
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      b61a40af
    • Rui Wang's avatar
      LoongArch: mm: Refactor TLB exception handlers · a2a84e36
      Rui Wang authored
      This patch simplifies TLB load, store and modify exception handlers:
      
      1. Reduce instructions, such as alu/csr and memory access;
      2. Execute tlb search instruction only in the fast path;
      3. Return directly from the fast path for both normal and huge pages;
      4. Re-tab the assembly for better vertical alignment.
      
      And fixes the concurrent modification issue of fast path for huge pages.
      
      This issue will occur in the following steps:
      
         CPU-1 (In TLB exception)         CPU-2 (In THP splitting)
      1: Load PMD entry (HUGE=1)
      2: Goto huge path
      3:                                  Store PMD entry (HUGE=0)
      4: Reload PMD entry (HUGE=0)
      5: Fill TLB entry (PA is incorrect)
      
      This patch also slightly improves the TLB processing performance:
      
      * Normal pages: 2.15%, Huge pages: 1.70%.
      
        #include <stdio.h>
        #include <stdlib.h>
        #include <unistd.h>
        #include <sys/mman.h>
      
        int main(int argc, char *argv[])
        {
              size_t page_size;
              size_t mem_size;
              size_t off;
              void *base;
              int flags;
              int i;
      
              if (argc < 2) {
                      fprintf(stderr, "%s MEM_SIZE [HUGE]\n", argv[0]);
                      return -1;
              }
      
              page_size = sysconf(_SC_PAGESIZE);
              flags = MAP_PRIVATE | MAP_ANONYMOUS;
              mem_size = strtoul(argv[1], NULL, 10);
              if (argc > 2)
                      flags |= MAP_HUGETLB;
      
              for (i = 0; i < 10; i++) {
                      base = mmap(NULL, mem_size, PROT_READ, flags, -1, 0);
                      if (base == MAP_FAILED) {
                              fprintf(stderr, "Map memory failed!\n");
                              return -1;
                      }
      
                      for (off = 0; off < mem_size; off += page_size)
                              *(volatile int *)(base + off);
      
                      munmap(base, mem_size);
              }
      
              return 0;
        }
      Signed-off-by: default avatarRui Wang <wangrui@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      a2a84e36
    • Xi Ruoyao's avatar
      LoongArch: Support R_LARCH_GOT_PC_{LO12,HI20} in modules · 59b3d4a9
      Xi Ruoyao authored
      GCC >= 13 and GNU assembler >= 2.40 use these relocations to address
      external symbols, so we need to add them.
      
      Let the module loader emit GOT entries for data symbols so we would be
      able to handle GOT relocations. The GOT entry is just the data's symbol
      address.
      
      In module.lds, emit a stub .got section for a section header entry. The
      actual content of the section entry will be filled at runtime by module_
      frob_arch_sections().
      Tested-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      59b3d4a9
    • Xi Ruoyao's avatar
      LoongArch: Support PC-relative relocations in modules · 9bd1e380
      Xi Ruoyao authored
      Binutils >= 2.40 uses R_LARCH_B26 instead of R_LARCH_SOP_PUSH_PLT_PCREL,
      and R_LARCH_PCALA* instead of R_LARCH_SOP_PUSH_PCREL.
      
      Handle R_LARCH_B26 and R_LARCH_PCALA* in the module loader. For R_LARCH_
      B26, also create a PLT entry as needed.
      Tested-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      9bd1e380
    • Xi Ruoyao's avatar
      LoongArch: Define ELF relocation types added in ABIv2.0 · 0a75e5d1
      Xi Ruoyao authored
      These relocation types are used by GNU binutils >= 2.40 and GCC >= 13.
      Add their definitions so we will be able to use them in later patches.
      
      Link: https://github.com/loongson/LoongArch-Documentation/pull/57Tested-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      0a75e5d1
    • Xi Ruoyao's avatar
      LoongArch: Adjust symbol addressing for AS_HAS_EXPLICIT_RELOCS · 11cd8a64
      Xi Ruoyao authored
      If explicit relocation hints are used by the toolchain, -Wa,-mla-*
      options will be useless for the C code. So only use them for the
      !CONFIG_AS_HAS_EXPLICIT_RELOCS case.
      
      Replace "la" with "la.pcrel" in head.S to keep the semantic consistent
      with new and old toolchains for the low level startup code.
      
      For per-CPU variables, the "address" of the symbol is actually an offset
      from $r21. The value is near the loading address of main kernel image,
      but far from the loading address of modules. So we use model("extreme")
      attibute to tell the compiler that a PC-relative addressing with 32-bit
      offset is not sufficient for local per-CPU variables.
      
      The behavior with different assemblers and compilers are summarized in
      the following table:
      
      AS has            CC has
      explicit relocs   explicit relocs * Behavior
      ==============================================================
      No                No                Use la.* macros.
                                          No change from Linux 6.0.
      --------------------------------------------------------------
      No                Yes               Disable explicit relocs.
                                          No change from Linux 6.0.
      --------------------------------------------------------------
      Yes               No                Not supported.
      --------------------------------------------------------------
      Yes               Yes               Enable explicit relocs.
                                          No -Wa,-mla* options used.
      ==============================================================
      *: We assume CC must have model attribute if it has explicit relocs.
         Both features are added in GCC 13 development cycle, so any GCC
         release >= 13 should be OK. Using early GCC 13 development snapshots
         may produce modules with unsupported relocations.
      
      Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f09482a
      Link: https://gcc.gnu.org/r13-1834
      Link: https://gcc.gnu.org/r13-2199Tested-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      11cd8a64
    • Xi Ruoyao's avatar
      LoongArch: Add Kconfig option AS_HAS_EXPLICIT_RELOCS · 0d8dad70
      Xi Ruoyao authored
      GNU as >= 2.40 and GCC >= 13 will support using explicit relocation
      hints in the assembly code, instead of la.* macros. The usage of
      explicit relocation hints can improve code generation so it's enabled
      by default by GCC >= 13.
      
      Introduce a Kconfig option AS_HAS_EXPLICIT_RELOCS as the switch for
      "use explicit relocation hints or not".
      Tested-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarXi Ruoyao <xry111@xry111.site>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      0d8dad70
    • Colin Ian King's avatar
      LoongArch: Kconfig: Fix spelling mistake "delibrately" -> "deliberately" · 9550dfde
      Colin Ian King authored
      There is a spelling mistake in a commented section. Fix it.
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      9550dfde
    • Huacai Chen's avatar
      LoongArch: Mark __xchg() and __cmpxchg() as __always_inline · ddf50271
      Huacai Chen authored
      Commit ac7c3e4f ("compiler: enable CONFIG_OPTIMIZE_INLINING
      forcibly") allows compiler to uninline functions marked as 'inline'.
      In case of __xchg()/__cmpxchg() this would cause to reference
      BUILD_BUG(), which is an error case for catching bugs and will not
      happen for correct code, if __xchg()/__cmpxchg() is inlined.
      
      This bug can be produced with CONFIG_DEBUG_SECTION_MISMATCH enabled,
      and the solution is similar to below commits:
      46f16195 ("MIPS: include: Mark __xchg as __always_inline"),
      88356d09 ("MIPS: include: Mark __cmpxchg as __always_inline").
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      ddf50271
    • Huacai Chen's avatar
      LoongArch: Flush TLB earlier at initialization · 1299a129
      Huacai Chen authored
      Move local_flush_tlb_all() earlier (just after setup_ptwalker() and
      before page allocation). This can avoid stale TLB entries misguiding
      the later page allocation. Without this patch the second kernel of
      kexec/kdump fails to boot SMP.
      
      BTW, move output_pgtable_bits_defines() into tlb_init() since it has
      nothing to do with tlb handler setup.
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      1299a129
    • Tiezhu Yang's avatar
      LoongArch: Do not create sysfs control file for io master CPUs · a522b7ad
      Tiezhu Yang authored
      Now io master CPUs are not hotpluggable on LoongArch, but in the current
      code only /sys/devices/system/cpu/cpu0/online is not created. Let us set
      the hotpluggable field of all the io master CPUs as 0, then prevent to
      create sysfs control file for all the io master CPUs which confuses some
      user space tools. This is similar with commit 9cce844a ("MIPS: CPU#0
      is not hotpluggable").
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      a522b7ad
    • Jianmin Lv's avatar
      LoongArch: Fix cpu name after CPU-hotplug · 4b2edd38
      Jianmin Lv authored
      Don't overwrite the SMBIOS-provided CPU name on coming back from CPU-
      hotplug (including S3/S4) if it is already initialized.
      Reviewed-by: default avatarWANG Xuerui <git@xen0n.name>
      Signed-off-by: default avatarJianmin Lv <lvjianmin@loongson.cn>
      Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      4b2edd38
    • Thomas Gleixner's avatar
      Merge tag 'irqchip-fixes-6.1-1' of... · b8d49bcd
      Thomas Gleixner authored
      Merge tag 'irqchip-fixes-6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
      
      Pull irqchip fixes from Marc Zyngier:
      
        - Fix IMX-MU Kconfig, keeping it private to IMX
      
        - Fix a register offset for the same IMX-MU driver
      
        - Fix the ls-extirq irqchip driver that would use the wrong
          flavour of spinlocks
      
      Link: https://lore.kernel.org/r/20221012075125.1244143-1-maz@kernel.org
      b8d49bcd
    • Geert Uytterhoeven's avatar
      irqchip: IMX_MU_MSI should depend on ARCH_MXC · 6c9f7434
      Geert Uytterhoeven authored
      The Freescale/NXP i.MX Messaging Unit is only present on Freescale/NXP
      i.MX SoCs.  Hence add a dependency on ARCH_MXC, to prevent asking the
      user about this driver when configuring a kernel without Freescale/NXP
      i.MX SoC family support.
      
      While at it, expand "MU" to "Messaging Unit" in the help text.
      
      Fixes: 70afdab9 ("irqchip: Add IMX MU MSI controller driver")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/7f3bd932614ddbff46a1b750ef45b231130364ad.1664900434.git.geert+renesas@glider.be
      6c9f7434
    • Linus Torvalds's avatar
      Merge tag 'memblock-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · 49da0700
      Linus Torvalds authored
      Pull memblock updates from Mike Rapoport:
       "Test suite improvements:
      
         - Added verification that memblock allocations zero the allocated
           memory
      
         - Added more test cases for memblock_add(), memblock_remove(),
           memblock_reserve() and memblock_free()
      
         - Added tests for memblock_*_raw() family
      
         - Added tests for NUMA-aware allocations in memblock_alloc_try_nid()
           and memblock_alloc_try_nid_raw()"
      
      * tag 'memblock-v6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock tests: add generic NUMA tests for memblock_alloc_try_nid*
        memblock tests: add bottom-up NUMA tests for memblock_alloc_try_nid*
        memblock tests: add top-down NUMA tests for memblock_alloc_try_nid*
        memblock tests: add simulation of physical memory with multiple NUMA nodes
        memblock_tests: move variable declarations to single block
        memblock tests: remove 'cleared' from comment blocks
        memblock tests: add tests for memblock_trim_memory
        memblock tests: add tests for memblock_*bottom_up functions
        memblock tests: update alloc_nid_api to test memblock_alloc_try_nid_raw
        memblock tests: update alloc_api to test memblock_alloc_raw
        memblock tests: add additional tests for basic api and memblock_alloc
        memblock tests: add labels to verbose output for generic alloc tests
        memblock tests: update zeroed memory check for memblock_alloc_* tests
        memblock tests: update tests to check if memblock_alloc zeroed memory
        memblock tests: update reference to obsolete build option in comments
        memblock tests: add command line help option
      49da0700
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · f311d498
      Linus Torvalds authored
      Pull more kvm updates from Paolo Bonzini:
       "The main batch of ARM + RISC-V changes, and a few fixes and cleanups
        for x86 (PMU virtualization and selftests).
      
        ARM:
      
         - Fixes for single-stepping in the presence of an async exception as
           well as the preservation of PSTATE.SS
      
         - Better handling of AArch32 ID registers on AArch64-only systems
      
         - Fixes for the dirty-ring API, allowing it to work on architectures
           with relaxed memory ordering
      
         - Advertise the new kvmarm mailing list
      
         - Various minor cleanups and spelling fixes
      
        RISC-V:
      
         - Improved instruction encoding infrastructure for instructions not
           yet supported by binutils
      
         - Svinval support for both KVM Host and KVM Guest
      
         - Zihintpause support for KVM Guest
      
         - Zicbom support for KVM Guest
      
         - Record number of signal exits as a VCPU stat
      
         - Use generic guest entry infrastructure
      
        x86:
      
         - Misc PMU fixes and cleanups.
      
         - selftests: fixes for Hyper-V hypercall
      
         - selftests: fix nx_huge_pages_test on TDP-disabled hosts
      
         - selftests: cleanups for fix_hypercall_test"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (57 commits)
        riscv: select HAVE_POSIX_CPU_TIMERS_TASK_WORK
        RISC-V: KVM: Use generic guest entry infrastructure
        RISC-V: KVM: Record number of signal exits as a vCPU stat
        RISC-V: KVM: add __init annotation to riscv_kvm_init()
        RISC-V: KVM: Expose Zicbom to the guest
        RISC-V: KVM: Provide UAPI for Zicbom block size
        RISC-V: KVM: Make ISA ext mappings explicit
        RISC-V: KVM: Allow Guest use Zihintpause extension
        RISC-V: KVM: Allow Guest use Svinval extension
        RISC-V: KVM: Use Svinval for local TLB maintenance when available
        RISC-V: Probe Svinval extension form ISA string
        RISC-V: KVM: Change the SBI specification version to v1.0
        riscv: KVM: Apply insn-def to hlv encodings
        riscv: KVM: Apply insn-def to hfence encodings
        riscv: Introduce support for defining instructions
        riscv: Add X register names to gpr-nums
        KVM: arm64: Advertise new kvmarm mailing list
        kvm: vmx: keep constant definition format consistent
        kvm: mmu: fix typos in struct kvm_arch
        KVM: selftests: Fix nx_huge_pages_test on TDP-disabled hosts
        ...
      f311d498
  2. 11 Oct, 2022 9 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.1-1-2022-10-07' of... · d465bff1
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.1-1-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
      
       - Add support for AMD on 'perf mem' and 'perf c2c', the kernel
         enablement patches went via tip.
      
         Example:
      
            $ sudo perf mem record -- -c 10000
            ^C[ perf record: Woken up 227 times to write data ]
            [ perf record: Captured and wrote 58.760 MB perf.data (836978 samples) ]
      
            $ sudo perf mem report -F mem,sample,snoop
            Samples: 836K of event 'ibs_op//', Event count (approx.): 8418762
            Memory access                  Samples  Snoop
            N/A                             700620  N/A
            L1 hit                          126675  N/A
            L2 hit                             424  N/A
            L3 hit                             664  HitM
            L3 hit                              10  N/A
            Local RAM hit                        2  N/A
            Remote RAM (1 hop) hit            8558  N/A
            Remote Cache (1 hop) hit             3  N/A
            Remote Cache (1 hop) hit             2  HitM
            Remote Cache (2 hops) hit           10  HitM
            Remote Cache (2 hops) hit            6  N/A
            Uncached hit                         4  N/A
            $
      
       - "perf lock" improvements:
      
           - Add -E/--entries option to limit the number of entries to
             display, say to ask for just the top 5 contended locks.
      
           - Add -q/--quiet option to suppress header and debug messages.
      
           - Add a 'perf test' kernel lock contention entry to test 'perf
             lock'.
      
       - "perf lock contention" improvements:
      
           - Ask BPF's bpf_get_stackid() to skip some callchain entries.
      
             The ones closer to the tooling are bpf related and not that
             interesting, the ones calling the locking function are the ones
             we're interested in, example of a full, unskipped callstack:
      
           - Allow changing the callstack depth and number of entries to skip.
      
                 1     10.74 us     10.74 us     10.74 us     spinlock   __bpf_trace_contention_begin+0xb
                                0xffffffffc03b5c47  bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117
                                0xffffffffc03b5c47  bpf_prog_bf07ae9e2cbd02c5_contention_begin+0x117
                                0xffffffffbb8b8e75  bpf_trace_run2+0x35
                                0xffffffffbb7eab9b  __bpf_trace_contention_begin+0xb
                                0xffffffffbb7ebe75  queued_spin_lock_slowpath+0x1f5
                                0xffffffffbc1c26ff  _raw_spin_lock+0x1f
                                0xffffffffbb841015  tick_do_update_jiffies64+0x25
                                0xffffffffbb8409ee  tick_irq_enter+0x9e
      
           - Show full callstack in verbose mode (-v option), sometimes this
             is desirable instead of showing just one callstack entry.
      
       - Allow multiple time ranges in 'perf record --delay' to help in
         reducing the amount of data collected from hardware tracing (Intel
         PT, etc) when there is a rough idea of periods of time where events
         of interest take time.
      
       - Add Intel PT to record only decoder debug messages when error
         happens.
      
       - Improve layout of Intel PT man page.
      
       - Add new branch types: alignment, data and inst faults and arch
         specific ones, such as fiq, debug_halt, debug_exit, debug_inst and
         debug_data on arm64.
      
         Kernel enablement went thru the tip tree.
      
       - Fix 'perf probe' error log check in 'perf test' when no debuginfo is
         available.
      
       - Fix 'perf stat' aggregation mode logic, it should be looking at the
         CPU not at the core number.
      
       - Fix flags parsing in 'perf trace' filters.
      
       - Introduce compact encoding of CPU range encoding on perf.data, to
         avoid having a bitmap with all the CPUs.
      
       - Improvements to the 'perf stat' metrics, including adding
         "core_wide", and computing "smt" from the CPU topology.
      
       - Add support to the new PERF_FORMAT_LOST perf_event_attr.read_format,
         that allows tooling to ask for the precise number of lost samples for
         a given event.
      
       - Add 'addr' sort key to see just the address of sampled instructions:
      
            $ perf record -o- true | perf report -i- -s addr
            [ perf record: Woken up 1 times to write data ]
            [ perf record: Captured and wrote 0.000 MB - ]
            # Samples: 12  of event 'cycles:u'
            # Event count (approx.): 252512
            #
            # Overhead  Address
            # ........  ..................
                42.96%  0x7f96f08443d7
                29.55%  0x7f96f0859b50
                14.76%  0x7f96f0852e02
                 8.30%  0x7f96f0855028
                 4.43%  0xffffffff8de01087
      
            perf annotate: Toggle full address <-> offset display
      
       - Add 'f' hotkey to the 'perf annotate' TUI interface when in
         'disassembler output' mode ('o' hotkey) to toggle showing full
         virtual address or just the offset.
      
       - Cache DSO build-ids when synthesizing PERF_RECORD_MMAP records for
         pre-existing threads, at the start of a 'perf record' session,
         speeding up that record startup phase.
      
       - Add a command line option to specify build ids in 'perf inject'.
      
       - Update JSON event files for the Intel alderlake, broadwell,
         broadwellde, broadwellx, cascadelakex, haswell, haswellx, icelake,
         icelakex, ivybridge, ivytown, jaketown, sandybridge, sapphirerapids,
         skylake, skylakex, and tigerlake processors.
      
       - Update vendor JSON event files for the ARM Neoverse V1 and E1
         platforms.
      
       - Add a 'perf test' entry for 'perf mem' where a struct has false
         sharing and this gets detected in the 'perf mem' output, tested with
         Intel, AMD and ARM64 systems.
      
       - Add a 'perf test' entry to test the resolution of java symbols, where
         an output like this is expected:
      
             8.18%  jshell    jitted-50116-29.so    [.] Interpreter
             0.75%  Thread-1  jitted-83602-1670.so  [.] jdk.internal.jimage.BasicImageReader.getString(int)
      
       - Add tests for the ARM64 CoreSight hardware tracing feature, with
         specially crafted pureloop, memcpy, thread loop and unroll tread that
         then gets traced and the output compared with expected output.
      
         Documentation explaining it is also included.
      
       - Add per thread Intel PT 'perf test' entry to check that
         PERF_RECORD_TEXT_POKE events are recorded per CPU, resulting in a
         mixture of per thread and per CPU events and mmaps, verify that this
         gets all recorded correctly.
      
       - Introduce pthread mutex wrappers to allow for building with clang's
         -Wthread-safety, i.e. using the "guarded_by" "pt_guarded_by"
         "lockable", "exclusive_lock_function", "exclusive_trylock_function",
         "exclusive_locks_required", and "no_thread_safety_analysis" compiler
         function attributes.
      
       - Fix empty version number when building outside of a git repo.
      
       - Improve feature detection display when multiple versions of a feature
         are present, such as for binutils libbfd, that has a mix of possible
         ways to detect according to the Linux distribution.
      
         Previously in some cases we had:
      
            Auto-detecting system features
            <SNIP>
            ...                                  libbfd: [ on  ]
            ...                          libbfd-liberty: [ on  ]
            ...                        libbfd-liberty-z: [ on  ]
            <SNIP>
      
         Now for this case we show just the main feature:
      
            Auto-detecting system features
            <SNIP>
            ...                                  libbfd: [ on  ]
            <SNIP>
      
       - Remove some unused structs, variables, macros, function prototypes
         and includes from various places.
      
      * tag 'perf-tools-for-v6.1-1-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (169 commits)
        perf script: Add missing fields in usage hint
        perf mem: Print "LFB/MAB" for PERF_MEM_LVLNUM_LFB
        perf mem/c2c: Avoid printing empty lines for unsupported events
        perf mem/c2c: Add load store event mappings for AMD
        perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events
        perf mem: Add support for printing PERF_MEM_LVLNUM_{CXL|IO}
        perf amd ibs: Sync arch/x86/include/asm/amd-ibs.h header with the kernel
        tools headers UAPI: Sync include/uapi/linux/perf_event.h header with the kernel
        perf stat: Fix cpu check to use id.cpu.cpu in aggr_printout()
        perf test coresight: Add relevant documentation about ARM64 CoreSight testing
        perf test: Add git ignore for tmp and output files of ARM CoreSight tests
        perf test coresight: Add unroll thread test shell script
        perf test coresight: Add unroll thread test tool
        perf test coresight: Add thread loop test shell scripts
        perf test coresight: Add thread loop test tool
        perf test coresight: Add memcpy thread test shell script
        perf test coresight: Add memcpy thread test tool
        perf test: Add git ignore for perf data generated by the ARM CoreSight tests
        perf test: Add arm64 asm pureloop test shell script
        perf test: Add asm pureloop test tool
        ...
      d465bff1
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 041bc24d
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Resource management:
      
         - Distribute spare resources to unconfigured hotplug bridges at
           boot-time (not just when hot-adding such a bridge), which makes
           hot-adding devices to docks work better.
      
         - Revert to a BAR assignment inherited from firmware only when the
           address is actually reachable via any upstream bridges, which fixes
           some cases where firmware doesn't configure all devices.
      
         - Add a sysfs interface to resize BARs so this can be done before
           assigning devices to a VM through VFIO.
      
        Power management:
      
         - Disable Precision Time Management for all devices on suspend to
           enable lower-power PM state. We previously did this just for Root
           Ports, which isn't enough because downstream devices can still
           generate PTM messages, which cause errors if it's disabled in the
           Root Port.
      
         - Save and restore the ASPM L1 PM Substates configuration for
           suspend/ resume. Previously this configuration was lost, so L1.x
           states likely stopped working after resume.
      
         - Check whether the L1 PM Substates Capability exists. If it didn't
           exist, we previously read junk and tried to configure L1 Substates
           based on that.
      
         - Fix the LTR_L1.2_THRESHOLD computation, which previously set a
           threshold for entering L1.2 that was too low in some cases.
      
         - Reduce the delay after transitions to or from D3cold by using
           usleep_range() rather than msleep(), which often slept for ~19ms
           instead of the 10ms normally required. The spec says 10ms is
           enough, but it's possible we could trip over devices that need a
           little more.
      
        Error handling:
      
         - Work around a BIOS bug that caused Intel Root Ports to advertise a
           Root Port Programmed I/O (RP PIO) log size of zero, which caused
           annoying warnings and prevented the kernel from dumping log
           registers for DPC errors.
      
        Qualcomm PCIe controller driver:
      
         - Add support for SC8280XP and SA8540P host controllers and SM8450
           endpoint controller.
      
         - Disable Master AXI clock on endpoint controllers to save power when
           link is idle or in L1.x.
      
         - Expose link state transition counts via debugfs to help debug
           issues with low-power states.
      
         - Add auto-loading module support.
      
        Synopsys DesignWare PCIe controller driver:
      
         - Remove a dependency on ZONE_DMA32 by allocating the MSI target page
           differently. There's more work to do related to eDMA controllers,
           so it's not completely settled"
      
      * tag 'pci-v6.1-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (71 commits)
        PCI: qcom-ep: Check platform_get_resource_byname() return value
        PCI: qcom-ep: Add support for SM8450 SoC
        dt-bindings: PCI: qcom-ep: Add support for SM8450 SoC
        dt-bindings: PCI: qcom-ep: Define clocks per platform
        PCI: qcom-ep: Make PERST separation optional
        dt-bindings: PCI: qcom-ep: Make PERST separation optional
        PCI: qcom-ep: Disable Master AXI Clock when there is no PCIe traffic
        PCI: Expose PCIe Resizable BAR support via sysfs
        PCI/ASPM: Correct LTR_L1.2_THRESHOLD computation
        PCI/ASPM: Ignore L1 PM Substates if device lacks capability
        PCI/ASPM: Factor out L1 PM Substates configuration
        PCI: qcom-ep: Gate Master AXI clock to MHI bus during L1SS
        PCI: qcom-ep: Expose link transition counts via debugfs
        PCI: qcom-ep: Disable IRQs during driver remove
        PCI/ASPM: Save L1 PM Substates Capability for suspend/resume
        PCI/ASPM: Refactor L1 PM Substates Control Register programming
        PCI: qcom-ep: Make use of the cached dev pointer
        PCI: qcom-ep: Rely on the clocks supplied by devicetree
        PCI: qcom-ep: Add kernel-doc for qcom_pcie_ep structure
        phy: freescale: imx8m-pcie: Fix the wrong order of phy_init() and phy_power_on()
        ...
      041bc24d
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.1-rc1-batch2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · c440f996
      Linus Torvalds authored
      Pull more i2c updates from Wolfram Sang:
      
       - correct a variable type in the new pci1xxxx driver
      
       - add a new SoC to the qcom-cci driver
      
       - fix an issue with the designware driver which now got enough testing
      
       - the aspeed driver now handles busy target backends better
      
      * tag 'i2c-for-6.1-rc1-batch2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: aspeed: Assert NAK when slave is busy
        i2c: designware: Fix handling of real but unexpected device interrupts
        i2c: qcom-cci: Add MSM8226 compatible
        dt-bindings: i2c: qcom,i2c-cci: Document clocks for MSM8974
        dt-bindings: i2c: qcom,i2c-cci: Document MSM8226 compatible
        i2c: microchip: pci1xxxx: Fix comparison of -EPERM against an unsigned variable
      c440f996
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 979bb590
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "There is nothing exciting going on, no core changes, just a few
        drivers and cleanups.
      
        New drivers:
      
         - Cypress CY8C95x0 chip pin control support, along with an immediate
           cleanup
      
         - Mediatek MT8188 SoC pin control support
      
         - Qualcomm SM8450 and SC8280XP LPASS (low power audio subsystem) pin
           control support
      
         - Qualcomm PM7250, PM8450
      
         - Rockchip RV1126 SoC pin control support
      
        Improvements:
      
         - Fix some missing pins in the Armada 37xx driver
      
         - Convert Broadcom and Nomadik drivers to use PINCTRL_PINGROUP()
           macro
      
         - Fix some GPIO irq_chips to be immutable
      
         - Massive Qualcomm device tree binding cleanup, with more to come"
      
      * tag 'pinctrl-v6.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (119 commits)
        MAINTAINERS: adjust STARFIVE JH7100 PINCTRL DRIVER after file movement
        pinctrl: starfive: Rename "pinctrl-starfive" to "pinctrl-starfive-jh7100"
        pinctrl: Create subdirectory for StarFive drivers
        dt-bindings: pinctrl: st,stm32: Document interrupt-controller property
        dt-bindings: pinctrl: st,stm32: Document gpio-hog pattern property
        dt-bindings: pinctrl: st,stm32: Document gpio-line-names
        pinctrl: st: stop abusing of_get_named_gpio()
        pinctrl: wpcm450: Correct the fwnode_irq_get() return value check
        pinctrl: bcm: Remove unused struct bcm6328_pingroup
        pinctrl: qcom: restrict drivers per ARM/ARM64
        pinctrl: bcm: ns: Remove redundant dev_err call
        gpio: rockchip: request GPIO mux to pinctrl when setting direction
        pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback
        pinctrl: cy8c95x0: Align function names in cy8c95x0_pmxops
        pinctrl: cy8c95x0: Drop atomicity on operations on push_pull
        pinctrl: cy8c95x0: Lock register accesses in cy8c95x0_set_mux()
        pinctrl: sunxi: sun50i-h5: Switch to use dev_err_probe() helper
        pinctrl: stm32: Switch to use dev_err_probe() helper
        dt-bindings: qcom-pmic-gpio: Add PM7250B and PM8450 bindings
        pinctrl: qcom: spmi-gpio: Add compatible for PM7250B
        ...
      979bb590
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 694b37a5
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a new driver for IBM Operational Panel
      
       - a new driver for PinePhone keyboards
      
       - RT5120 PMIC power key support
      
       - various enhancements and support for new models in xpad (Xbox) driver
      
       - a new compatible ID for Elan touchscreen driver
      
       - rework of adp5588-keys driver to support configuring via device
         properties (OF, ACPI, etc) instead of platform data, and proper
         support of optional gpiochip functionality (and removal of
         gpio-adp5588 driver)
      
       - improvements to firmware update handling in Synaptics RMI4 driver
      
       - support for double key matrix in mt6779-keypad
      
       - support for polled mode in adc-joystick driver
      
       - other assorted driver fixes, cleanups and improvements
      
      * tag 'input-for-v6.1-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (90 commits)
        Input: i8042 - fix refount leak on sparc
        Input: i8042 - add LoongArch support in i8042-acpipnpio.h
        Input: i8042 - rename i8042-x86ia64io.h to i8042-acpipnpio.h
        Input: pinephone-keyboard - support the proxied I2C bus
        Input: pinephone-keyboard - add PinePhone keyboard driver
        dt-bindings: input: Add the PinePhone keyboard binding
        dt-bindings: input: Convert hid-over-i2c to DT schema
        input: drop empty comment blocks
        Input: xpad - add X-Box Adaptive Profile button
        Input: add ABS_PROFILE to uapi and documentation
        Input: xpad - add X-Box Adaptive XBox button
        Input: xpad - add X-Box Adaptive support
        Input: ims-pcu - fix spelling mistake "BOOLTLOADER" -> "BOOTLOADER"
        Input: ibm-panel - add missing MODULE_DEVICE_TABLE
        Input: icn8505 - utilize acpi_get_subsystem_id()
        Input: xpad - decipher xpadone packages with GIP defines
        Input: xpad - refactor using BIT() macro
        Input: synaptics-rmi4 - convert to use sysfs_emit() APIs
        Input: twl4030-pwrbutton - add missing of.h include
        Input: applespi - replace zero-length array with DECLARE_FLEX_ARRAY() helper
        ...
      694b37a5
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · eec4ed31
      Linus Torvalds authored
      Pull fbdev updates from Helge Deller:
       "Here's a fix for the smscufx USB graphics card to prevent a kernel
        crash if it's plugged in/out too fast.
      
        The other patches are mostly small cleanups, fixes in failure paths
        and code removal:
      
         - fix an use-after-free in smscufx USB graphics driver
      
         - add missing pci_disable_device() in tridentfb failure paths
      
         - correctly handle irq detection failure in mb862xx driver
      
         - fix resume code in omapfb/dss
      
         - drop unused code in controlfb, tridentfb, arkfb, imxfb and udlfb
      
         - convert uvesafb to use scnprintf() instead of snprintf()
      
         - convert gbefb to use dev_groups
      
         - add MODULE_DEVICE_TABLE() entry to vga16fb"
      
      * tag 'fbdev-for-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        fbdev: mb862xx: Fix check of return value from irq_of_parse_and_map()
        fbdev: vga16fb: Add missing MODULE_DEVICE_TABLE() entry
        fbdev: tridentfb: Fix missing pci_disable_device() in probe and remove
        fbdev: smscufx: Fix use-after-free in ufx_ops_open()
        fbdev: gbefb: Convert to use dev_groups
        fbdev: imxfb: Remove redundant dev_err() call
        fbdev: omapfb/dss: Use pm_runtime_resume_and_get() instead of pm_runtime_get_sync()
        fbdev: uvesafb: Convert snprintf to scnprintf
        fbdev: arkfb: Remove the unused function dac_read_reg()
        fbdev: tridentfb: Remove the unused function shadowmode_off()
        fbdev: controlfb: Remove the unused function VAR_MATCH()
        fbdev: udlfb: Remove redundant initialization to variable identical
      eec4ed31
    • Linus Torvalds's avatar
      Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 500b717f
      Linus Torvalds authored
      Pull dmi updates from Jean Delvare.
      
      * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        firmware: dmi: Fortify entry point length checks
      500b717f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.1-1' of https://github.com/cminyard/linux-ipmi · 8de1037a
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Fix a bunch of little problems in IPMI
      
        This is mostly just doc, config, and little tweaks. Nothing big, which
        is why there was nothing for 6.0. There is one crash fix, but it's not
        something that I think anyone is using yet"
      
      * tag 'for-linus-6.1-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: Remove unused struct watcher_entry
        ipmi: kcs: aspeed: Update port address comments
        ipmi: Add __init/__exit annotations to module init/exit funcs
        ipmi:ipmb: Don't call ipmi_unregister_smi() on a register failure
        ipmi:ipmb: Fix a vague comment and a typo
        dt-binding: ipmi: add fallback to npcm845 compatible
        ipmi: Fix comment typo
        char: ipmi: modify NPCM KCS configuration
        dt-bindings: ipmi: Add npcm845 compatible
      8de1037a
    • Lukas Bulwahn's avatar
      alpha: remove the needless aliases osf_{readv,writev} · c6cc4f72
      Lukas Bulwahn authored
      Commit 987f20a9 ("a.out: Remove the a.out implementation") removes
      CONFIG_OSF4_COMPAT and its functionality. Hence, sys_osf_{readv,writev}
      are now just aliases of sys_{readv,writev}.
      
      Remove these needless aliases.
      
      [ Identical patch also posted by Jason A. Donenfeld ]
      
      Link: https://lore.kernel.org/lkml/CAHk-=wjwvBc3VQMNtUVUrMBVoMPSPu26OuatZ_+1gZ2m-PmmRA@mail.gmail.com/
      Link: https://lore.kernel.org/all/20221004135301.1420873-1-Jason@zx2c4.com/Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c6cc4f72