1. 06 Jul, 2023 6 commits
  2. 05 Jul, 2023 3 commits
    • Marc Zyngier's avatar
      risc-v: Fix order of IPI enablement vs RCU startup · 6259f344
      Marc Zyngier authored
      Conor reports that risc-v tries to enable IPIs before telling the
      core code to enable RCU. With the introduction of the mapple tree
      as a backing store for the irq descriptors, this results in
      a very shouty boot sequence, as RCU is legitimately upset.
      
      Restore some sanity by moving the risc_ipi_enable() call after
      notify_cpu_starting(), which explicitly enables RCU on the calling
      CPU.
      
      Fixes: 832f15f4 ("RISC-V: Treat IPIs as normal Linux IRQs")
      Reported-by: default avatarConor Dooley <conor@kernel.org>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20230703-dupe-frying-79ae2ccf94eb@spud
      Cc: Anup Patel <apatel@ventanamicro.com>
      Cc: Palmer Dabbelt <palmer@rivosinc.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Tested-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Link: https://lore.kernel.org/r/20230703183126.1567625-1-maz@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      6259f344
    • John Hubbard's avatar
      mm: riscv: fix an unsafe pte read in huge_pte_alloc() · 62ba41d2
      John Hubbard authored
      The WARN_ON_ONCE() statement in riscv's huge_pte_alloc() is susceptible
      to false positives, because the pte is read twice at the C language
      level, locklessly, within the same conditional statement. Depending on
      compiler behavior, this can lead to generated machine code that actually
      reads the pte just once, or twice. Reading twice will expose the code to
      changing pte values and cause incorrect behavior.
      
      In [1], similar code actually caused a kernel crash on 64-bit x86, when
      using clang to build the kernel, but only after the conversion from *pte
      reads, to ptep_get(pte). The latter uses READ_ONCE(), which forced a
      double read of *pte.
      
      Rather than waiting for the upcoming ptep_get() conversion, just convert
      this part of the code now, but in a way that avoids the above problem:
      take a single snapshot of the pte before using it in the WARN
      conditional.
      
      As expected, this preparatory step does not actually change the
      generated code ("make mm/hugetlbpage.s"), on riscv64, when using a gcc
      12.2 cross compiler.
      
      [1] https://lore.kernel.org/20230630013203.1955064-1-jhubbard@nvidia.comSuggested-by: default avatarJames Houghton <jthoughton@google.com>
      Cc: Ryan Roberts <ryan.roberts@arm.com>
      Signed-off-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
      Reviewed-by: default avatarRyan Roberts <ryan.roberts@arm.com>
      Link: https://lore.kernel.org/r/20230703190044.311730-1-jhubbard@nvidia.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      62ba41d2
    • Conor Dooley's avatar
      dt-bindings: riscv: deprecate riscv,isa · aeb71e42
      Conor Dooley authored
      intro
      =====
      
      When the RISC-V dt-bindings were accepted upstream in Linux, the base
      ISA etc had yet to be ratified. By the ratification of the base ISA,
      incompatible changes had snuck into the specifications - for example the
      Zicsr and Zifencei extensions were spun out of the base ISA.
      
      Fast forward to today, and the reason for this patch.
      Currently the riscv,isa dt property permits only a specific subset of
      the ISA string - in particular it excludes version numbering.
      With the current constraints, it is not possible to discern whether
      "rv64i" means that the hart supports the fence.i instruction, for
      example.
      Future systems may choose to implement their own instruction fencing,
      perhaps using a vendor extension, or they may not implement the optional
      counter extensions. Software needs a way to determine this.
      
      versioning schemes
      ==================
      
      "Use the extension versions that are described in the ISA manual" you
      may say, and it's not like this has not been considered.
      Firstly, software that parses the riscv,isa property at runtime will
      need to contain a lookup table of some sort that maps arbitrary versions
      to versions it understands. There is not a consistent application of
      version number applied to extensions, with a higgledy-piggledy
      collection of tags, "bare" and versioned documents awaiting the reader
      on the "recently ratified extensions" page:
      https://wiki.riscv.org/display/HOME/Recently+Ratified+Extensions
      
      	As an aside, and this is reflected in the patch too, since many
      	extensions have yet to appear in a release of the ISA specs,
      	they are defined by commits in their respective "working draft"
      	repositories.
      
      Secondly, there is an issue of backwards compatibility, whereby allowing
      numbers in the ISA string, some parsers may be broken. This would
      require an additional property to be created to even use the versions in
      this manner.
      
      ~boolean properties~ string array property
      ==========================================
      
      If a new property is needed, the whole approach may as well be looked at
      from the bottom up. A string with limited character choices etc is
      hardly the best approach for communicating extension information to
      software.
      
      Switching to using properties that are defined on a per extension basis,
      allows us to define explicit meanings for the DT representation of each
      extension - rather than the current situation where different operating
      systems or other bits of software may impart different meanings to
      characters in the string.
      Clearly the best source of meanings is the specifications themselves,
      this just provides us the ability to choose at what point in time the
      meaning is set. If an extension changes incompatibility in the future,
      a new property will be required.
      
      Off-list, some of the RVI folks have committed to shoring up the wording
      in either the ISA specifications, the riscv-isa-manual or
      so that in the future, modifications to and additions or removals of
      features will require a new extension. Codifying that assertion
      somewhere would make it quite unlikely that compatibility would be
      broken, but we have the tools required to deal with it, if & when it
      crops up.
      It is in our collective interest, as consumers of extension meanings, to
      define a scheme that enforces compatibility.
      
      The use of individual elements, rather than a single string, will also
      permit validation that the properties have a meaning, as well as
      potentially reject mutually exclusive combinations, or enforce
      dependencies between extensions. That would not have be possible with
      the current dt-schema infrastructure for arbitrary strings, as we would
      need to add a riscv,isa parser to dt-validate!
      That's not implemented in this patch, but rather left as future work (for
      the brave, or the foolish).
      
      parser simplicity
      =================
      
      Many systems that parse DT at runtime already implement an function that
      can check for the presence of a string in an array of string, as it is
      similar to the process for parsing a list of compatible strings, so a
      bunch of new, custom, DT parsing should not be needed.
      Getting rid of "riscv,isa" parsing would be a nice simplification, but
      unfortunately for backwards compatibility with old dtbs, existing
      parsers may not be removable - which may greatly simplify
      dt parsing code. In Linux, for example, checking for whether a hart
      supports an extension becomes as simple as:
      	of_property_match_string(node, "riscv,isa-extensions", "zicbom")
      
      vendor extensions
      =================
      
      Compared to riscv,isa, this proposed scheme promotes vendor extensions,
      oft touted as the strength of RISC-V, to first-class citizens.
      At present, extensions are defined as meaning what the RISC-V ISA
      specifications say they do. There is no realistic way of using that
      interface to provide cross-platform definitions for what vendor
      extensions mean. Vendor extensions may also have even less consistency
      than RVI do in terms of versioning, or no care about backwards
      compatibility.
      The new property allows us to assign explicit meanings on a per vendor
      extension basis, backed up by a description of their meanings.
      
      fin
      ===
      
      Create a new file to store the extension meanings and a new
      riscv,isa-base property to replace the aspect of riscv,isa that is
      not represented by the new property - the base ISA implemented by a hart.
      
      As a starting point, add properties for extensions currently used in
      Linux.
      
      Finally, mark riscv,isa as deprecated, as removing support for it in
      existing programs would be an ABI break.
      
      CC: Palmer Dabbelt <palmer@dabbelt.com>
      CC: Paul Walmsley <paul.walmsley@sifive.com>
      CC: Rob Herring <robh+dt@kernel.org>
      CC: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
      CC: Alistair Francis <alistair.francis@wdc.com>
      CC: Andrew Jones <ajones@ventanamicro.com>
      CC: Anup Patel <apatel@ventanamicro.com>
      CC: Atish Patra <atishp@atishpatra.org>
      CC: Jessica Clarke <jrtc27@jrtc27.com>
      CC: Rick Chen <rick@andestech.com>
      CC: Leo <ycliang@andestech.com>
      CC: Oleksii <oleksii.kurochko@gmail.com>
      CC: linux-riscv@lists.infradead.org
      CC: qemu-riscv@nongnu.org
      CC: u-boot@lists.denx.de
      CC: devicetree@vger.kernel.org
      CC: linux-kernel@vger.kernel.org
      Reviewed-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      Acked-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Link: https://lore.kernel.org/r/20230702-eats-scorebook-c951f170d29f@spudSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      aeb71e42
  3. 04 Jul, 2023 5 commits
    • Conor Dooley's avatar
      RISC-V: drop error print from riscv_hartid_to_cpuid() · 52909f17
      Conor Dooley authored
      As of commit 2ac87434 ("RISC-V: split early & late of_node to
      hartid mapping") my CI complains about newly added pr_err() messages
      during boot, for example:
      [    0.000000] Couldn't find cpu id for hartid [0]
      [    0.000000] riscv-intc: unable to find hart id for /cpus/cpu@0/interrupt-controller
      
      Before the split, riscv_of_processor_hartid() contained a check for
      whether the cpu was "available", before calling riscv_hartid_to_cpuid(),
      but after the split riscv_of_processor_hartid() can be called for cpus
      that are disabled.
      
      Most callers of riscv_hartid_to_cpuid() already report custom errors
      where it falls, making this print superfluous in those case. In other
      places, the print adds nothing - see riscv_intc_init() for example.
      
      Fixes: 2ac87434 ("RISC-V: split early & late of_node to hartid mapping")
      Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Link: https://lore.kernel.org/r/20230629-paternity-grafted-b901b76d04a0@wendySigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      52909f17
    • Björn Töpel's avatar
      riscv: Discard vector state on syscalls · 9657e9b7
      Björn Töpel authored
      The RISC-V vector specification states:
        Executing a system call causes all caller-saved vector registers
        (v0-v31, vl, vtype) and vstart to become unspecified.
      
      The vector registers are set to all 1s, vill is set (invalid), and the
      vector status is set to Dirty.
      
      That way we can prevent userspace from accidentally relying on the
      stated save.
      
      Rémi pointed out [1] that writing to the registers might be
      superfluous, and setting vill is sufficient.
      
      Link: https://lore.kernel.org/linux-riscv/12784326.9UPPK3MAeB@basile.remlab.net/ # [1]
      Suggested-by: default avatarDarius Rad <darius@bluespec.com>
      Suggested-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      Suggested-by: default avatarRémi Denis-Courmont <remi@remlab.net>
      Signed-off-by: default avatarBjörn Töpel <bjorn@rivosinc.com>
      Link: https://lore.kernel.org/r/20230629142228.1125715-1-bjorn@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      9657e9b7
    • Woody Zhang's avatar
      riscv: move memblock_allow_resize() after linear mapping is ready · 85fadc0d
      Woody Zhang authored
      The initial memblock metadata is accessed from kernel image mapping. The
      regions arrays need to "reallocated" from memblock and accessed through
      linear mapping to cover more memblock regions. So the resizing should
      not be allowed until linear mapping is ready. Note that there are
      memblock allocations when building linear mapping.
      
      This patch is similar to 24cc61d8 ("arm64: memblock: don't permit
      memblock resizing until linear mapping is up").
      
      In following log, many memblock regions are reserved before
      create_linear_mapping_page_table(). And then it triggered reallocation
      of memblock.reserved.regions and memcpy the old array in kernel image
      mapping to the new array in linear mapping which caused a page fault.
      
      [    0.000000] memblock_reserve: [0x00000000bf01f000-0x00000000bf01ffff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf021000-0x00000000bf021fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf023000-0x00000000bf023fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf025000-0x00000000bf025fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf027000-0x00000000bf027fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf029000-0x00000000bf029fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf02b000-0x00000000bf02bfff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf02d000-0x00000000bf02dfff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf02f000-0x00000000bf02ffff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] memblock_reserve: [0x00000000bf030000-0x00000000bf030fff] early_init_fdt_scan_reserved_mem+0x28c/0x2c6
      [    0.000000] OF: reserved mem: 0x0000000080000000..0x000000008007ffff (512 KiB) map non-reusable mmode_resv0@80000000
      [    0.000000] memblock_reserve: [0x00000000bf000000-0x00000000bf001fed] paging_init+0x19a/0x5ae
      [    0.000000] memblock_phys_alloc_range: 4096 bytes align=0x1000 from=0x0000000000000000 max_addr=0x0000000000000000 alloc_pmd_fixmap+0x14/0x1c
      [    0.000000] memblock_reserve: [0x000000017ffff000-0x000000017fffffff] memblock_alloc_range_nid+0xb8/0x128
      [    0.000000] memblock: reserved is doubled to 256 at [0x000000017fffd000-0x000000017fffe7ff]
      [    0.000000] Unable to handle kernel paging request at virtual address ff600000ffffd000
      [    0.000000] Oops [#1]
      [    0.000000] Modules linked in:
      [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 6.4.0-rc1-00011-g99a670b2 #66
      [    0.000000] Hardware name: riscv-virtio,qemu (DT)
      [    0.000000] epc : __memcpy+0x60/0xf8
      [    0.000000]  ra : memblock_double_array+0x192/0x248
      [    0.000000] epc : ffffffff8081d214 ra : ffffffff80a3dfc0 sp : ffffffff81403bd0
      [    0.000000]  gp : ffffffff814fbb38 tp : ffffffff8140dac0 t0 : 0000000001600000
      [    0.000000]  t1 : 0000000000000000 t2 : 000000008f001000 s0 : ffffffff81403c60
      [    0.000000]  s1 : ffffffff80c0bc98 a0 : ff600000ffffd000 a1 : ffffffff80c0bcd8
      [    0.000000]  a2 : 0000000000000c00 a3 : ffffffff80c0c8d8 a4 : 0000000080000000
      [    0.000000]  a5 : 0000000000080000 a6 : 0000000000000000 a7 : 0000000080200000
      [    0.000000]  s2 : ff600000ffffd000 s3 : 0000000000002000 s4 : 0000000000000c00
      [    0.000000]  s5 : ffffffff80c0bc60 s6 : ffffffff80c0bcc8 s7 : 0000000000000000
      [    0.000000]  s8 : ffffffff814fd0a8 s9 : 000000017fffe7ff s10: 0000000000000000
      [    0.000000]  s11: 0000000000001000 t3 : 0000000000001000 t4 : 0000000000000000
      [    0.000000]  t5 : 000000008f003000 t6 : ff600000ffffd000
      [    0.000000] status: 0000000200000100 badaddr: ff600000ffffd000 cause: 000000000000000f
      [    0.000000] [<ffffffff8081d214>] __memcpy+0x60/0xf8
      [    0.000000] [<ffffffff80a3e1a2>] memblock_add_range.isra.14+0x12c/0x162
      [    0.000000] [<ffffffff80a3e36a>] memblock_reserve+0x6e/0x8c
      [    0.000000] [<ffffffff80a123fc>] memblock_alloc_range_nid+0xb8/0x128
      [    0.000000] [<ffffffff80a1256a>] memblock_phys_alloc_range+0x5e/0x6a
      [    0.000000] [<ffffffff80a04732>] alloc_pmd_fixmap+0x14/0x1c
      [    0.000000] [<ffffffff80a0475a>] alloc_p4d_fixmap+0xc/0x14
      [    0.000000] [<ffffffff80a04a36>] create_pgd_mapping+0x98/0x17c
      [    0.000000] [<ffffffff80a04e9e>] create_linear_mapping_range.constprop.10+0xe4/0x112
      [    0.000000] [<ffffffff80a05bb8>] paging_init+0x3ec/0x5ae
      [    0.000000] [<ffffffff80a03354>] setup_arch+0xb2/0x576
      [    0.000000] [<ffffffff80a00726>] start_kernel+0x72/0x57e
      [    0.000000] Code: b303 0285 b383 0305 be03 0385 be83 0405 bf03 0485 (b023) 00ef
      [    0.000000] ---[ end trace 0000000000000000 ]---
      [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
      [    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
      
      Fixes: 671f9a3e ("RISC-V: Setup initial page tables in two stages")
      Signed-off-by: default avatarWoody Zhang <woodylab@foxmail.com>
      Tested-by: default avatarSong Shuai <songshuaishuai@tinylab.org>
      Link: https://lore.kernel.org/r/tencent_FBB94CE615C5CCE7701CD39C15CCE0EE9706@qq.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      85fadc0d
    • Song Shuai's avatar
      riscv: Enable ARCH_SUSPEND_POSSIBLE for s2idle · c1f048a6
      Song Shuai authored
      With this configuration opened, the basic platform-independent s2idle is
      provided by the sole "s2idle" string in `/sys/power/mem_sleep`.
      
      At the end of s2idle, harts will hit the `wfi` instruction or enter the
      SUSPENDED state through the sbi_cpuidle driver. The interrupt of possible
      wakeup devices will be kept to wake the system up.
      
      And platform-specific sleep states can be provided by future ACPI and
      SBI SUSP extension support.
      Signed-off-by: default avatarSong Shuai <songshuaishuai@tinylab.org>
      Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
      Link: https://lore.kernel.org/r/20230529101524.322076-1-songshuaishuai@tinylab.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      c1f048a6
    • Ben Dooks's avatar
      riscv: vdso: include vdso/vsyscall.h for vdso_data · 54cdede0
      Ben Dooks authored
      Add include of <vdso/vsyscall.h> to pull in the defition of vdso_data
      to remove the following sparse warning:
      
      arch/riscv/kernel/vdso.c:39:18: warning: symbol 'vdso_data' was not declared. Should it be static?
      Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Link: https://lore.kernel.org/r/20230616114357.159601-1-ben.dooks@codethink.co.ukSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      54cdede0
  4. 01 Jul, 2023 6 commits
  5. 30 Jun, 2023 17 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.5-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 533925cb
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Support for ACPI
      
       - Various cleanups to the ISA string parsing, including making them
         case-insensitive
      
       - Support for the vector extension
      
       - Support for independent irq/softirq stacks
      
       - Our CPU DT binding now has "unevaluatedProperties: false"
      
      * tag 'riscv-for-linus-6.5-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (78 commits)
        riscv: hibernate: remove WARN_ON in save_processor_state
        dt-bindings: riscv: cpus: switch to unevaluatedProperties: false
        dt-bindings: riscv: cpus: add a ref the common cpu schema
        riscv: stack: Add config of thread stack size
        riscv: stack: Support HAVE_SOFTIRQ_ON_OWN_STACK
        riscv: stack: Support HAVE_IRQ_EXIT_ON_IRQ_STACK
        RISC-V: always report presence of extensions formerly part of the base ISA
        dt-bindings: riscv: explicitly mention assumption of Zicntr & Zihpm support
        RISC-V: remove decrement/increment dance in ISA string parser
        RISC-V: rework comments in ISA string parser
        RISC-V: validate riscv,isa at boot, not during ISA string parsing
        RISC-V: split early & late of_node to hartid mapping
        RISC-V: simplify register width check in ISA string parsing
        perf: RISC-V: Limit the number of counters returned from SBI
        riscv: replace deprecated scall with ecall
        riscv: uprobes: Restore thread.bad_cause
        riscv: mm: try VMA lock-based page fault handling first
        riscv: mm: Pre-allocate PGD entries for vmalloc/modules area
        RISC-V: hwprobe: Expose Zba, Zbb, and Zbs
        RISC-V: Track ISA extensions per hart
        ...
      533925cb
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d8b0bd57
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Extend KCSAN support to 32-bit and BookE. Add some KCSAN annotations
      
       - Make ELFv2 ABI the default for 64-bit big-endian kernel builds, and
         use the -mprofile-kernel option (kernel specific ftrace ABI) for big
         endian ELFv2 kernels
      
       - Add initial Dynamic Execution Control Register (DEXCR) support, and
         allow the ROP protection instructions to be used on Power 10
      
       - Various other small features and fixes
      
      Thanks to Aditya Gupta, Aneesh Kumar K.V, Benjamin Gray, Brian King,
      Christophe Leroy, Colin Ian King, Dmitry Torokhov, Gaurav Batra, Jean
      Delvare, Joel Stanley, Marco Elver, Masahiro Yamada, Nageswara R Sastry,
      Nathan Chancellor, Naveen N Rao, Nayna Jain, Nicholas Piggin, Paul
      Gortmaker, Randy Dunlap, Rob Herring, Rohan McLure, Russell Currey,
      Sachin Sant, Timothy Pearson, Tom Rix, and Uwe Kleine-König.
      
      * tag 'powerpc-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (76 commits)
        powerpc: remove checks for binutils older than 2.25
        powerpc: Fail build if using recordmcount with binutils v2.37
        powerpc/iommu: TCEs are incorrectly manipulated with DLPAR add/remove of memory
        powerpc/iommu: Only build sPAPR access functions on pSeries
        powerpc: powernv: Annotate data races in opal events
        powerpc: Mark writes registering ipi to host cpu through kvm and polling
        powerpc: Annotate accesses to ipi message flags
        powerpc: powernv: Fix KCSAN datarace warnings on idle_state contention
        powerpc: Mark [h]ssr_valid accesses in check_return_regs_valid
        powerpc: qspinlock: Enforce qnode writes prior to publishing to queue
        powerpc: qspinlock: Mark accesses to qnode lock checks
        powerpc/powernv/pci: Remove last IODA1 defines
        powerpc/powernv/pci: Remove MVE code
        powerpc/powernv/pci: Remove ioda1 support
        powerpc: 52xx: Make immr_id DT match tables static
        powerpc: mpc512x: Remove open coded "ranges" parsing
        powerpc: fsl_soc: Use of_range_to_resource() for "ranges" parsing
        powerpc: fsl: Use of_property_read_reg() to parse "reg"
        powerpc: fsl_rio: Use of_range_to_resource() for "ranges" parsing
        macintosh: Use of_property_read_reg() to parse "reg"
        ...
      d8b0bd57
    • Kees Cook's avatar
      pid: Replace struct pid 1-element array with flex-array · b69f0aeb
      Kees Cook authored
      For pid namespaces, struct pid uses a dynamically sized array member,
      "numbers".  This was implemented using the ancient 1-element fake
      flexible array, which has been deprecated for decades.
      
      Replace it with a C99 flexible array, refactor the array size
      calculations to use struct_size(), and address elements via indexes.
      Note that the static initializer (which defines a single element) works
      as-is, and requires no special handling.
      
      Without this, CONFIG_UBSAN_BOUNDS (and potentially
      CONFIG_FORTIFY_SOURCE) will trigger bounds checks:
      
        https://lore.kernel.org/lkml/20230517-bushaltestelle-super-e223978c1ba6@brauner
      
      Cc: Christian Brauner <brauner@kernel.org>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jeff Xu <jeffxu@google.com>
      Cc: Andreas Gruenbacher <agruenba@redhat.com>
      Cc: Daniel Verkamp <dverkamp@chromium.org>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Jeff Xu <jeffxu@google.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Frederic Weisbecker <frederic@kernel.org>
      Reported-by: syzbot+ac3b41786a2d0565b6d5@syzkaller.appspotmail.com
      [brauner: dropped unrelated changes and remove 0 with NULL cast]
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b69f0aeb
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.5' of... · 112e7e21
      Linus Torvalds authored
      Merge tag 'loongarch-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - preliminary ClangBuiltLinux enablement
      
       - add support to clone a time namespace
      
       - add vector extensions support
      
       - add SMT (Simultaneous Multi-Threading) support
      
       - support dbar with different hints
      
       - introduce hardware page table walker
      
       - add jump-label implementation
      
       - add rethook and uprobes support
      
       - some bug fixes and other small changes
      
      * tag 'loongarch-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (28 commits)
        LoongArch: Remove five DIE_* definitions in kdebug.h
        LoongArch: Add uprobes support
        LoongArch: Use larch_insn_gen_break() for kprobes
        LoongArch: Add larch_insn_gen_break() to generate break insns
        LoongArch: Check for AMO instructions in insns_not_supported()
        LoongArch: Move three functions from kprobes.c to inst.c
        LoongArch: Replace kretprobe with rethook
        LoongArch: Add jump-label implementation
        LoongArch: Select HAVE_DEBUG_KMEMLEAK to support kmemleak
        LoongArch: Export some arch-specific pm interfaces
        LoongArch: Introduce hardware page table walker
        LoongArch: Support dbar with different hints
        LoongArch: Add SMT (Simultaneous Multi-Threading) support
        LoongArch: Add vector extensions support
        LoongArch: Add support to clone a time namespace
        Makefile: Add loongarch target flag for Clang compilation
        LoongArch: Mark Clang LTO as working
        LoongArch: Include KBUILD_CPPFLAGS in CHECKFLAGS invocation
        LoongArch: vDSO: Use CLANG_FLAGS instead of filtering out '--target='
        LoongArch: Tweak CFLAGS for Clang compatibility
        ...
      112e7e21
    • Linus Torvalds's avatar
      csky: fix up lock_mm_and_find_vma() conversion · e55e5df1
      Linus Torvalds authored
      As already mentioned in my merge message for the 'expand-stack' branch,
      we have something like 24 different versions of the page fault path for
      all our different architectures, all just _slightly_ different due to
      various historical reasons (usually related to exactly when they
      branched off the original i386 version, and the details of the other
      architectures they had in their history).
      
      And a few of them had some silly mistake in the conversion.
      
      Most of the architectures call the faulting address 'address' in the
      fault path.  But not all.  Some just call it 'addr'.  And if you end up
      doing a bit too much copy-and-paste, you end up with the wrong version
      in the places that do it differently.
      
      In this case it was csky.
      
      Fixes: a050ba1e ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e55e5df1
    • Linus Torvalds's avatar
      Merge tag 'memblock-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · 075e3335
      Linus Torvalds authored
      Pull memblock updates from Mike Rapoport:
      
       - add test for memblock_alloc_node()
      
       - minor coding style fixes
      
       - add flags and nid info in memblock debugfs
      
      * tag 'memblock-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock: Update nid info in memblock debugfs
        memblock: Add flags and nid info in memblock debugfs
        Fix some coding style errors in memblock.c
        Add tests for memblock_alloc_node()
      075e3335
    • Linus Torvalds's avatar
      parisc: fix expand_stack() conversion · ea3f8272
      Linus Torvalds authored
      In commit 8d7071af ("mm: always expand the stack with the mmap write
      lock held") I tried to deal with the remaining odd page fault handling
      cases.  The oddest one is ia64, which has stacks that grow both up and
      down.  And because ia64 was _so_ odd, I asked people to verify the end
      result.
      
      But a close second oddity is parisc, which is the only one that has a
      main stack growing up (our "CONFIG_STACK_GROWSUP" config option).  But
      it looked obvious enough that I didn't worry about it.
      
      I should have worried a bit more.  Not because it was particularly
      complex, but because I just used the wrong variable name.
      
      The previous vma isn't called "prev", it's called "prev_vma".  Blush.
      
      Fixes: 8d7071af ("mm: always expand the stack with the mmap write lock held")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea3f8272
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.5-2023-06-28' of git://git.infradead.org/users/hch/dma-mapping · 1e6d5dea
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - swiotlb cleanups (Petr Tesarik)
      
       - use kvmalloc_array (gaoxu)
      
       - a small step towards removing is_swiotlb_active (Christoph Hellwig)
      
       - fix a Kconfig typo Sui Jingfeng)
      
      * tag 'dma-mapping-6.5-2023-06-28' of git://git.infradead.org/users/hch/dma-mapping:
        drm/nouveau: stop using is_swiotlb_active
        swiotlb: use the atomic counter of total used slabs if available
        swiotlb: remove unused field "used" from struct io_tlb_mem
        dma-remap: use kvmalloc_array/kvfree for larger dma memory remap
        dma-mapping: fix a Kconfig typo
      1e6d5dea
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 7ede5f78
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This cycle saw a focus on rxe and bnxt_re drivers:
      
         - Code cleanups for irdma, rxe, rtrs, hns, vmw_pvrdma
      
         - rxe uses workqueues instead of tasklets
      
         - rxe has better compliance around access checks for MRs and rereg_mr
      
         - mana supportst he 'v2' FW interface for RX coalescing
      
         - hfi1 bug fix for stale cache entries in its MR cache
      
         - mlx5 buf fix to handle FW failures when destroying QPs
      
         - erdma HW has a new doorbell allocation mechanism for uverbs that is
           secure
      
         - Lots of small cleanups and rework in bnxt_re:
             - Use the common mmap functions
             - Support disassociation
             - Improve FW command flow
             - support for 'low latency push'"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (71 commits)
        RDMA/bnxt_re: Fix an IS_ERR() vs NULL check
        RDMA/bnxt_re: Fix spelling mistake "priviledged" -> "privileged"
        RDMA/bnxt_re: Remove duplicated include in bnxt_re/main.c
        RDMA/bnxt_re: Refactor code around bnxt_qplib_map_rc()
        RDMA/bnxt_re: Remove incorrect return check from slow path
        RDMA/bnxt_re: Enable low latency push
        RDMA/bnxt_re: Reorg the bar mapping
        RDMA/bnxt_re: Move the interface version to chip context structure
        RDMA/bnxt_re: Query function capabilities from firmware
        RDMA/bnxt_re: Optimize the bnxt_re_init_hwrm_hdr usage
        RDMA/bnxt_re: Add disassociate ucontext support
        RDMA/bnxt_re: Use the common mmap helper functions
        RDMA/bnxt_re: Initialize opcode while sending message
        RDMA/cma: Remove NULL check before dev_{put, hold}
        RDMA/rxe: Simplify cq->notify code
        RDMA/rxe: Fixes mr access supported list
        RDMA/bnxt_re: optimize the parameters passed to helper functions
        RDMA/bnxt_re: remove redundant cmdq_bitmap
        RDMA/bnxt_re: use firmware provided max request timeout
        RDMA/bnxt_re: cancel all control path command waiters upon error
        ...
      7ede5f78
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 31929ae0
      Linus Torvalds authored
      Pull iommufd updates from Jason Gunthorpe:
       "Just two syzkaller fixes, both for the same basic issue: using the
        area pointer during an access forced unmap while the locks protecting
        it were let go"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Call iopt_area_contig_done() under the lock
        iommufd: Do not access the area pointer after unlocking
      31929ae0
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · d35ac6ac
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
       "Core changes:
         - iova_magazine_alloc() optimization
         - Make flush-queue an IOMMU driver capability
         - Consolidate the error handling around device attachment
      
        AMD IOMMU changes:
         - AVIC Interrupt Remapping Improvements
         - Some minor fixes and cleanups
      
        Intel VT-d changes from Lu Baolu:
         - Small and misc cleanups
      
        ARM-SMMU changes from Will Deacon:
         - Device-tree binding updates:
            - Add missing clocks for SC8280XP and SA8775 Adreno SMMUs
            - Add two new Qualcomm SMMUs in SDX75 and SM6375
         - Workarounds for Arm MMU-700 errata:
            - 1076982: Avoid use of SEV-based cmdq wakeup
            - 2812531: Terminate command batches with a CMD_SYNC
            - Enforce single-stage translation to avoid nesting-related errata
         - Set the correct level hint for range TLB invalidation on teardown
      
        .. and some other minor fixes and cleanups (including Freescale PAMU
        and virtio-iommu changes)"
      
      * tag 'iommu-updates-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (50 commits)
        iommu/vt-d: Remove commented-out code
        iommu/vt-d: Remove two WARN_ON in domain_context_mapping_one()
        iommu/vt-d: Handle the failure case of dmar_reenable_qi()
        iommu/vt-d: Remove unnecessary (void*) conversions
        iommu/amd: Remove extern from function prototypes
        iommu/amd: Use BIT/BIT_ULL macro to define bit fields
        iommu/amd: Fix DTE_IRQ_PHYS_ADDR_MASK macro
        iommu/amd: Fix compile error for unused function
        iommu/amd: Improving Interrupt Remapping Table Invalidation
        iommu/amd: Do not Invalidate IRT when IRTE caching is disabled
        iommu/amd: Introduce Disable IRTE Caching Support
        iommu/amd: Remove the unused struct amd_ir_data.ref
        iommu/amd: Switch amd_iommu_update_ga() to use modify_irte_ga()
        iommu/arm-smmu-v3: Set TTL invalidation hint better
        iommu/arm-smmu-v3: Document nesting-related errata
        iommu/arm-smmu-v3: Add explicit feature for nesting
        iommu/arm-smmu-v3: Document MMU-700 erratum 2812531
        iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982
        dt-bindings: arm-smmu: Add SDX75 SMMU compatible
        dt-bindings: arm-smmu: Add SM6375 GPU SMMU
        ...
      d35ac6ac
    • Linus Torvalds's avatar
      sparc32: fix lock_mm_and_find_vma() conversion · 0b26eadb
      Linus Torvalds authored
      The sparc32 conversion to lock_mm_and_find_vma() in commit a050ba1e
      ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      missed the fact that we didn't actually have a 'regs' pointer available
      in the 'force_user_fault()' case.
      
      It's there in the regular page fault path ("do_sparc_fault()"), but not
      the window underflow/overflow paths.
      
      Which is all fine - we can just pass in a NULL pointer.  The register
      state is only used to avoid deadlock with kernel faults, which is not
      the case for any of these register window faults.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Fixes: a050ba1e ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0b26eadb
    • Linus Torvalds's avatar
      Merge tag 'sysctl-6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 82a2a510
      Linus Torvalds authored
      Pull sysctl fix from Luis Chamberlain:
       "A missed minor fix which Matthieu Baerts noted I had not picked up"
      
      * tag 'sysctl-6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        sysctl: fix unused proc_cap_handler() function warning
      82a2a510
    • Linus Torvalds's avatar
      Merge tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux · 43ec8a62
      Linus Torvalds authored
      Pull mm fix from David Woodhouse:
       "Fix error return from do_vmi_align_munmap()"
      
      * tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux:
        mm/mmap: Fix error return in do_vmi_align_munmap()
      43ec8a62
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.4-rc7-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 3ad7b12c
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix user event write on buffer disabled.
      
        The user events write currently returns the size of what was supposed
        to be written when tracing is disabled and nothing was written.
      
        Instead, behave like trace_marker and return -EBADF, as that is what
        is returned if a file is opened for read only, and a write is
        performed on it. Writing to the buffer that is disabled is like trying
        to write to a file opened for read only, as the buffer still can be
        read, but just not written to.
      
        This also includes test cases for this use case"
      
      * tag 'trace-v6.4-rc7-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        selftests/user_events: Add test cases when event is disabled
        selftests/user_events: Enable the event before write_fault test in ftrace self-test
        tracing/user_events: Fix incorrect return value for writing operation when events are disabled
      3ad7b12c
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2eb15b42
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix suspend-to-idle breakage on multiple systems introduced by one of
        the recent commits that may cause the affected systems to overheat
        while suspended"
      
      * tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: EC: Fix acpi_ec_dispatch_gpe()
      2eb15b42
    • Ingo Molnar's avatar
      objtool: Remove btrfs_assertfail() from the noreturn exceptions list · 06697ca6
      Ingo Molnar authored
      The objtool merge in commit 6f612579 ("Merge tag 'objtool-core ...")
      generated a semantic conflict that was not resolved.
      
      The btrfs_assertfail() entry was removed from the noreturn list in
      commit b831306b ("btrfs: print assertion failure report and stack
      trace from the same line") because btrfs_assertfail() was changed from a
      noreturn function into a macro.
      
      The noreturn list was then moved from check.c to noreturns.h in commit
      6245ce4a ("objtool: Move noreturn function list to separate file"),
      and should be removed from that post-merge as well.
      
      Do it explicitly.
      
      Cc: David Sterba <dsterba@suse.com>
      Cc: Josh Poimboeuf <jpoimboe@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      06697ca6
  6. 29 Jun, 2023 3 commits
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 632f54b4
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - SLAB deprecation:
      
         Following the discussion at LSF/MM 2023 [1] and no objections, the
         SLAB allocator is deprecated by renaming the config option (to make
         its users notice) to CONFIG_SLAB_DEPRECATED with updated help text.
         SLUB should be used instead. Existing defconfigs with CONFIG_SLAB are
         also updated.
      
       - SLAB_NO_MERGE kmem_cache flag (Jesper Dangaard Brouer):
      
         There are (very limited) cases where kmem_cache merging is
         undesirable, and existing ways to prevent it are hacky. Introduce a
         new flag to do that cleanly and convert the existing hacky users.
         Btrfs plans to use this for debug kernel builds (that use case is
         always fine), networking for performance reasons (that should be very
         rare).
      
       - Replace the usage of weak PRNGs (David Keisar Schmidt):
      
         In addition to using stronger RNGs for the security related features,
         the code is a bit cleaner.
      
       - Misc code cleanups (SeongJae Parki, Xiongwei Song, Zhen Lei, and
         zhaoxinchao)
      
      Link: https://lwn.net/Articles/932201/ [1]
      
      * tag 'slab-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab_common: use SLAB_NO_MERGE instead of negative refcount
        mm/slab: break up RCU readers on SLAB_TYPESAFE_BY_RCU example code
        mm/slab: add a missing semicolon on SLAB_TYPESAFE_BY_RCU example code
        mm/slab_common: reduce an if statement in create_cache()
        mm/slab: introduce kmem_cache flag SLAB_NO_MERGE
        mm/slab: rename CONFIG_SLAB to CONFIG_SLAB_DEPRECATED
        mm/slab: remove HAVE_HARDENED_USERCOPY_ALLOCATOR
        mm/slab_common: Replace invocation of weak PRNG
        mm/slab: Replace invocation of weak PRNG
        slub: Don't read nr_slabs and total_objects directly
        slub: Remove slabs_node() function
        slub: Remove CONFIG_SMP defined check
        slub: Put objects_show() into CONFIG_SLUB_DEBUG enabled block
        slub: Correct the error code when slab_kset is NULL
        mm/slab: correct return values in comment for _kmem_cache_create()
      632f54b4
    • Linus Torvalds's avatar
      Merge tag 'soc-arm-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · bf1fa6f1
      Linus Torvalds authored
      Pull ARM SoC updates from Arnd Bergmann:
       "These are mostly minor cleanups and bugfixes that address harmless
        problems.
      
        The largest branch is a conversion of the omap platform to use GPIO
        descriptors throughout the tree, for any devices that are not fully
        converted to devicetree.
      
        The Samsung Exynos platform gains back support for the Exynos4212 chip
        that was previously unused and removed but is now used for the Samsung
        Galaxy Tab3"
      
      * tag 'soc-arm-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
        ARM: omap2: Fix copy/paste bug
        MAINTAINERS: Replace my email address
        Input: ads7846 - fix pointer cast warning
        Input: ads7846 - Fix usage of match data
        ARM: omap2: Fix checkpatch issues
        arm: omap1: replace printk() with pr_err macro
        ARM: omap: Fix checkpatch issues
        ARM: s3c: Switch i2c drivers back to use .probe()
        ARM: versatile: mark mmc_status() static
        ARM: spear: include "pl080.h" for pl080_get_signal() prototype
        ARM: sa1100: address missing prototype warnings
        ARM: pxa: fix missing-prototypes warnings
        ARM: orion5x: fix d2net gpio initialization
        ARM: omap2: fix missing tick_broadcast() prototype
        ARM: omap1: add missing include
        ARM: lpc32xx: add missing include
        ARM: imx: add missing include
        ARM: highbank: add missing include
        ARM: ep93xx: fix missing-prototype warnings
        ARM: davinci: fix davinci_cpufreq_init() declaration
        ...
      bf1fa6f1
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 0873694a
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "The arm64 defconfig file gets the usual updates to enable addition
        device drivers as well as the sparx5 and realtek SoC platforms.
      
        For arm32, there are only a couple of cleanup patches for imx, renesas
        and rockchips"
      
      * tag 'soc-defconfig-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (23 commits)
        arm64: defconfig: Enable Rockchip I2S TDM and ES8316 drivers
        arm64: defconfig: update RK8XX MFD config
        ARM: multi_v7_defconfig: update MFD_RK808 name
        arm64: defconfig: Enable UBIFS
        arm64: defconfig: enable drivers for Verdin AM62
        arm64: defconfig: Build SM6115 display and GPU clock controller drivers
        arm64: defconfig: Build display clock controller driver for QCM2290
        arm64: defconfig: Build interconnect driver for QCM2290
        arm64: defconfig: Build Global Clock Controller driver for QCM2290
        arm64: defconfig: Build MSM power manager driver
        arm64: defconfig: Enable sc828x0xp lpasscc clock controller
        arm64: defconfig: Enable the TI SN65DSI83 driver
        arm64: defconfig: Enable Renesas MTU3a counter config
        arm64: defconfig: enable Mediatek PMIC key
        arm64: defconfig: enable MT6357 regulator
        ARM: imx_v6_v7_defconfig: Remove KERNEL_LZO config
        arm64: defconfig: Enable ipq6018 apss clock and PLL controller
        arm64: defconfig: Enable ARCH_SPARX5 and ARCH_REALTEK
        arm64: defconfig: enable FSA4480 driver as module
        ARM: shmobile: defconfig: Refresh for v6.4-rc1
        ...
      0873694a