1. 30 Jun, 2023 9 commits
    • 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
  2. 29 Jun, 2023 27 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
    • Linus Torvalds's avatar
      Merge tag 'soc-drivers-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · e4c8d018
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "Nothing surprising in the SoC specific drivers, with the usual
        updates:
      
         - Added or improved SoC driver support for Tegra234, Exynos4121,
           RK3588, as well as multiple Mediatek and Qualcomm chips
      
         - SCMI firmware gains support for multiple SMC/HVC transport and
           version 3.2 of the protocol
      
         - Cleanups amd minor changes for the reset controller, memory
           controller, firmware and sram drivers
      
         - Minor changes to amd/xilinx, samsung, tegra, nxp, ti, qualcomm,
           amlogic and renesas SoC specific drivers"
      
      * tag 'soc-drivers-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (118 commits)
        dt-bindings: interrupt-controller: Convert Amlogic Meson GPIO interrupt controller binding
        MAINTAINERS: add PHY-related files to Amlogic SoC file list
        drivers: meson: secure-pwrc: always enable DMA domain
        tee: optee: Use kmemdup() to replace kmalloc + memcpy
        soc: qcom: geni-se: Do not bother about enable/disable of interrupts in secondary sequencer
        dt-bindings: sram: qcom,imem: document qdu1000
        soc: qcom: icc-bwmon: Fix MSM8998 count unit
        dt-bindings: soc: qcom,rpmh-rsc: Require power-domains
        soc: qcom: socinfo: Add Soc ID for IPQ5300
        dt-bindings: arm: qcom,ids: add SoC ID for IPQ5300
        soc: qcom: Fix a IS_ERR() vs NULL bug in probe
        soc: qcom: socinfo: Add support for new fields in revision 19
        soc: qcom: socinfo: Add support for new fields in revision 18
        dt-bindings: firmware: scm: Add compatible for SDX75
        soc: qcom: mdt_loader: Fix split image detection
        dt-bindings: memory-controllers: drop unneeded quotes
        soc: rockchip: dtpm: use C99 array init syntax
        firmware: tegra: bpmp: Add support for DRAM MRQ GSCs
        soc/tegra: pmc: Use devm_clk_notifier_register()
        soc/tegra: pmc: Simplify debugfs initialization
        ...
      e4c8d018
    • Arnd Bergmann's avatar
      sysctl: fix unused proc_cap_handler() function warning · 554588e8
      Arnd Bergmann authored
      Since usermodehelper_table() is marked static now, we get a
      warning about it being unused when SYSCTL is disabled:
      
      kernel/umh.c:497:12: error: 'proc_cap_handler' defined but not used [-Werror=unused-function]
      
      Just move it inside of the same #ifdef.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Fixes: 861dc0b4 ("sysctl: move umh sysctl registration to its own file")
      Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Tested-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
      [mcgrof: adjust new commit ID for Fixes tag]
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      554588e8
    • Linus Torvalds's avatar
      Merge tag 'soc-newsoc-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · a9025a5f
      Linus Torvalds authored
      Pull new ARM SoC support from Arnd Bergmann:
       "There are two new SoC families this time, and both appear fairly
        similar: The Nuvoton MA35D1 and the STMicroelectronics STM32MP2 are
        both dual-core Cortex-A35 based chips for the low-power industrial
        embedded market, and they mark the first 64-bit product in a widely
        used family of 32-bit Arm MCUs and SoCs.
      
        The way into the kernel is completely different here: The team at ST
        has a long history of working upstream with their STM32MP1 and other
        SoCs, and they produced a complete port to arm64 together with the
        initial announcement. Nuvoton also has multiple SoC product lines with
        current or previous upstream support, but those are maintained by
        third parties and are unrelated. The patch series from Nuvoton's Jacky
        Huang had to go through many revisisions to get to this point and is
        still missing a few drivers including the serial port for the moment.
      
        The branch contains the devicetree files as well as all the code
        changes, in order to have something that can be tested standalone"
      
      * tag 'soc-newsoc-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (25 commits)
        clk: nuvoton: Use clk_parent_data instead of string for parent clock
        clk: nuvoton: Update all constant hex values to lowercase
        clk: nuvoton: Add clk-ma35d1.h for driver extern functions
        remoteproc: stm32: use correct format strings on 64-bit
        MAINTAINERS: add entry for ARM/STM32 ARCHITECTURE
        arm64: defconfig: enable ARCH_STM32 and STM32 serial driver
        arm64: dts: st: add stm32mp257f-ev1 board support
        dt-bindings: stm32: document stm32mp257f-ev1 board
        arm64: dts: st: introduce stm32mp25 pinctrl files
        arm64: dts: st: introduce stm32mp25 SoCs family
        arm64: introduce STM32 family on Armv8 architecture
        dt-bindings: stm32: add st,stm32mp25-syscfg compatible for syscon
        pinctrl: stm32: add stm32mp257 pinctrl support
        dt-bindings: pinctrl: stm32: support for stm32mp257 and additional packages
        Documentation/process: add soc maintainer handbook
        reset: RESET_NUVOTON_MA35D1 should depend on ARCH_MA35
        reset: Add Nuvoton ma35d1 reset driver support
        clk: nuvoton: Add clock driver for ma35d1 clock controller
        arm64: dts: nuvoton: Add initial ma35d1 device tree
        dt-bindings: serial: Document ma35d1 uart controller
        ...
      a9025a5f
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 6c1561fb
      Linus Torvalds authored
      Pull ARM SoC devicetree updates from Arnd Bergmann:
       "The biggest change this time is for the 32-bit devicetree files, which
        are all moved to a new location, using separate subdirectories for
        each SoC vendor, following the same scheme that is used on arm64, mips
        and riscv. This has been discussed for many years, but so far we never
        did this as there was a plan to move the files out of the kernel
        entirely, which has never happened.
      
        The impact of this will be that all external patches no longer apply,
        and anything depending on the location of the dtb files in the build
        directory will have to change. The installed files after 'make
        dtbs_install' keep the current location.
      
        There are six added SoCs here that are largely variants of previously
        added chips. Two other chips are added in a separate branch along with
        their device drivers.
      
         - The Samsung Exynos 4212 makes its return after the Samsung Galaxy
           Express phone is addded at last. The SoC support was originally
           added in 2012 but removed again in 2017 as it was unused at the
           time.
      
         - Amlogic C3 is a Cortex-A35 based smart IP camera chip
      
         - Qualcomm MSM8939 (Snapdragon 615) is a more featureful variant of
           the still common MSM8916 (Snapdragon 410) phone chip that has been
           supported for a long time.
      
         - Qualcomm SC8180x (Snapdragon 8cx) is one of their earlier high-end
           laptop chips, used in the Lenovo Flex 5G, which is added along with
           the reference board.
      
         - Qualcomm SDX75 is the latest generation modem chip that is used as
           a peripherial in phones but can also run a standalone Linux. Unlike
           the prior 32-bit SDX65 and SDX55, this now has a 64-bit Cortex-A55.
      
         - Alibaba T-Head TH1520 is a quad-core RISC-V chip based on the
           Xuantie C910 core, a step up from all previously added rv64 chips.
      
        All of the above come with reference board implementations, those
        included there are 39 new board files, but only five more 32-bit this
        time, probably a new low:
      
         - Marantec Maveo board based on dhcor imx6ull module
      
         - Endian 4i Edge 200, based on the armv5 Marvell Kirkwood chip
      
         - Epson Moverio BT-200 AR glasses based on TI OMAP4
      
         - PHYTEC STM32MP1-3 Dev board based on STM32MP15 PHYTEC SOM
      
         - ICnova ADB4006 board based on Allwinner A20
      
        On the 64-bit side, there are also fewer addded machines than we had
        in the recent releases:
      
         - Three boards based on NXP i.MX8: Emtop SoM & Baseboard, NXP i.MX8MM
           EVKB board and i.MX8MP based Gateworks Venice gw7905-2x device.
      
         - NVIDIA IGX Orin and Jetson Orin Nano boards, both based on tegra234
      
         - Qualcomm gains support for 6 reference boards on various members of
           their IPQ networking SoC series, as well as the Sony Xperia M4 Aqua
           phone, the Acer Aspire 1 laptop, and the Fxtec Pro1X board on top
           of the various reference platforms for their new chips.
      
         - Rockchips support for several newer boards: Indiedroid Nova
           (rk3588), Edgeble Neural Compute Module 6B (rk3588), FriendlyARM
           NanoPi R2C Plus (rk3328), Anbernic RG353PS (rk3566), Lunzn
           Fastrhino R66S/R68S (rk3568)
      
         - TI K3/AM625 based PHYTEC phyBOARD-Lyra-AM625 board and Toradex
           Verdin family with AM62 COM, carrier and dev boards
      
        Other changes to existing boards contain the usual minor improvements
        along with
      
         - continued updates to clean up dts files based on dtc warnings and
           binding checks, in particular cache properties and node names
      
         - support for devicetree overlays on at91, bcm283x
      
         - significant additions to existing SoC support on mediatek,
           qualcomm, ti k3 family, starfive jh71xx, NXP i.MX6 and i.MX8, ST
           STM32MP1
      
        As usual, a lot more detail is available in the individual merge
        commits"
      
      * tag 'soc-dt-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (926 commits)
        ARM: mvebu: fix unit address on armada-390-db flash
        ARM: dts: Move .dts files to vendor sub-directories
        kbuild: Support flat DTBs install
        ARM: dts: Add .dts files missing from the build
        ARM: dts: allwinner: Use quoted #include
        ARM: dts: lan966x: kontron-d10: add PHY interrupts
        ARM: dts: lan966x: kontron-d10: fix SPI CS
        ARM: dts: lan966x: kontron-d10: fix board reset
        ARM: dts: at91: Enable device-tree overlay support for AT91 boards
        arm: dts: Enable device-tree overlay support for AT91 boards
        arm64: dts: exynos: Remove clock from Exynos850 pmu_system_controller
        ARM: dts: at91: use generic name for shutdown controller
        ARM: dts: BCM5301X: Add cells sizes to PCIe nodes
        dt-bindings: firmware: brcm,kona-smc: convert to YAML
        riscv: dts: sort makefile entries by directory
        riscv: defconfig: enable T-HEAD SoC
        MAINTAINERS: add entry for T-HEAD RISC-V SoC
        riscv: dts: thead: add sipeed Lichee Pi 4A board device tree
        riscv: dts: add initial T-HEAD TH1520 SoC device tree
        riscv: Add the T-HEAD SoC family Kconfig option
        ...
      6c1561fb
    • Linus Torvalds's avatar
      Merge tag 'mips_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · b775d6c5
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - add support for TP-Link HC220 G5 v1
      
       - add support for Wifi/Bluetooth on CI20
      
       - rework Ralink clock and reset handling
      
       - cleanups and fixes
      
      * tag 'mips_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (58 commits)
        MIPS: Loongson64: DTS: Add RTC support to Loongson-2K1000
        MIPS: Loongson64: DTS: Add RTC support to LS7A PCH
        MIPS: OCTEON: octeon-usb: cleanup divider calculation
        MIPS: OCTEON: octeon-usb: introduce dwc3_octeon_{read,write}q
        MIPS: OCTEON: octeon-usb: move gpio config to separate function
        MIPS: OCTEON: octeon-usb: use bitfields for shim register
        MIPS: OCTEON: octeon-usb: use bitfields for host config register
        MIPS: OCTEON: octeon-usb: use bitfields for control register
        MIPS: OCTEON: octeon-usb: add all register offsets
        mips: ralink: match all supported system controller compatible strings
        MIPS: dec: prom: Address -Warray-bounds warning
        MIPS: DTS: CI20: Raise VDDCORE voltage to 1.125 volts
        clk: ralink: mtmips: Fix uninitialized use of ret in mtmips_register_{fixed,factor}_clocks()
        mips: ralink: introduce commonly used remap node function
        mips: pci-mt7620: use dev_info() to log PCIe device detection result
        mips: pci-mt7620: do not print NFTS register value as error log
        MAINTAINERS: add Mediatek MTMIPS Clock maintainer
        mips: ralink: get cpu rate from new driver code
        mips: ralink: remove reset related code
        mips: ralink: mt7620: remove clock related code
        ...
      b775d6c5
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 18f38fed
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "Bindings:
      
         - Add some missing type definitions to properties
      
         - Drop unneeded quotes and use absolute paths in bindings
      
         - Remove redundant "binding" or "schema" in binding titles
      
         - Add bindings for Ralink SoCs interrupt controller, QCA2066
           Bluetooth, infineon,irps5401, new NXP i.MX GPT variants, shineworld
           lh133k MIPI SPI panel, Socionext Synquacer platforms, RK3588 PCIe,
           ST M95640 EEPROM, and FSL DCP crypto variants, and Arm Cortex-R52
      
        DT core:
      
         - Improve the reserved-memory range allocation to maximize contiguous
           space
      
         - Use device_set_node() helper in place of open coding"
      
      * tag 'devicetree-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (40 commits)
        dt-bindings: interrupt-controller: add Ralink SoCs interrupt controller
        dt-bindings: PCI: dwc: rockchip: Update for RK3588
        dt-bindings: auxdisplay: holtek: Add missing type for "linux,no-autorepeat"
        dt-bindings: input: mediatek,pmic-keys: Fix typo in "linux,keycodes" property name
        dt-bindings: pwm: drop unneeded quotes
        dt-bindings: crypto: drop unneeded quotes
        dt-bindings: arm: socionext: add Synquacer platforms
        dt-bindings: connector: usb: allow a single HS port
        dt-bindings: bus: ti-sysc: fix typo
        of: reserved_mem: Use stable allocation order
        of: reserved_mem: Try to keep range allocations contiguous
        dt-bindings: arm: drop unneeded quotes and use absolute /schemas path
        dt-bindings: firmware: arm,scmi: drop unneeded quotes and use absolute /schemas path
        dt-bindings: dvfs: drop unneeded quotes
        dt-bindings: gpu: drop unneeded quotes
        dt-bindings: i3c: silvaco,i3c-master: drop unneeded quotes
        dt-bindings: rockchip: grf: drop unneeded quotes
        dt-bindings: spmi: mtk,spmi-mtk-pmif: drop unneeded quotes
        dt-bindings: Remove last usage of "binding" or "schema" in titles
        dt-bindings: display: panel: mipi-dbi-spi: add spi-3wire property
        ...
      18f38fed
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · c6b02710
      Linus Torvalds authored
      Pull misc filesystem updates from Jan Kara:
      
       - Rewrite kmap_local() handling in ext2
      
       - Convert ext2 direct IO path to iomap (with some infrastructure tweaks
         associated with that)
      
       - Convert two boilerplate licenses in udf to SPDX identifiers
      
       - Other small udf, ext2, and quota fixes and cleanups
      
      * tag 'fs_for_v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix uninitialized array access for some pathnames
        ext2: Drop fragment support
        quota: fix warning in dqgrab()
        quota: Properly disable quotas when add_dquot_ref() fails
        fs: udf: udftime: Replace LGPL boilerplate with SPDX identifier
        fs: udf: Replace GPL 2.0 boilerplate license notice with SPDX identifier
        fs: Drop wait_unfrozen wait queue
        ext2_find_entry()/ext2_dotdot(): callers don't need page_addr anymore
        ext2_{set_link,delete_entry}(): don't bother with page_addr
        ext2_put_page(): accept any pointer within the page
        ext2_get_page(): saner type
        ext2: use offset_in_page() instead of open-coding it as subtraction
        ext2_rename(): set_link and delete_entry may fail
        ext2: Add direct-io trace points
        ext2: Move direct-io to use iomap
        ext2: Use generic_buffers_fsync() implementation
        ext4: Use generic_buffers_fsync_noflush() implementation
        fs/buffer.c: Add generic_buffers_fsync*() implementation
        ext2/dax: Fix ext2_setsize when len is page aligned
      c6b02710
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 18c9901d
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
      
       - Support for fanotify events returning file handles for filesystems
         not exportable via NFS
      
       - Improved error handling exportfs functions
      
       - Add missing FS_OPEN events when unusual open helpers are used
      
      * tag 'fsnotify_for_v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: move fsnotify_open() hook into do_dentry_open()
        exportfs: check for error return value from exportfs_encode_*()
        fanotify: support reporting non-decodeable file handles
        exportfs: allow exporting non-decodeable file handles to userspace
        exportfs: add explicit flag to request non-decodeable file handles
        exportfs: change connectable argument to bit flags
      18c9901d
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 0a37714f
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "The dlm posix lock handling (for gfs2) has three notable changes:
      
         - Local pids returned from GETLK are no longer negated. A previous
           patch negating remote pids mistakenly changed local pids also.
      
         - SETLKW operations can now be interrupted only when the process is
           killed, and not from other signals. General interruption was
           resulting in previously acquired locks being cleared, not just the
           in-progress lock. Handling this correctly will require extending a
           cancel capability to user space (a future feature.)
      
         - If multiple threads are requesting posix locks (with SETLKW), fix
           incorrect matching of results to the requests.
      
        The dlm networking has several minor cleanups, and one notable change:
      
         - Avoid delaying ack messages for too long (used for message
           reliability), resulting in a backlog of un-acked messages. These
           could previously be delayed as a result of either too many or too
           few other messages being sent. Now an upper and lower threshold is
           used to determine when an ack should be sent"
      
      * tag 'dlm-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        fs: dlm: remove filter local comms on close
        fs: dlm: add send ack threshold and append acks to msgs
        fs: dlm: handle sequence numbers as atomic
        fs: dlm: handle lkb wait count as atomic_t
        fs: dlm: filter ourself midcomms calls
        fs: dlm: warn about messages from left nodes
        fs: dlm: move dlm_purge_lkb_callbacks to user module
        fs: dlm: cleanup STOP_IO bitflag set when stop io
        fs: dlm: don't check othercon twice
        fs: dlm: unregister memory at the very last
        fs: dlm: fix missing pending to false
        fs: dlm: clear pending bit when queue was empty
        fs: dlm: revert check required context while close
        fs: dlm: fix mismatch of plock results from userspace
        fs: dlm: make F_SETLK use unkillable wait_event
        fs: dlm: interrupt posix locks only when process is killed
        fs: dlm: fix cleanup pending ops when interrupted
        fs: dlm: return positive pid value for F_GETLK
        dlm: Replace all non-returning strlcpy with strscpy
      0a37714f
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.5-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 9e06150d
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "There's not much going on this cycle -- the large extent counts
        feature graduated, so now users can create more extremely fragmented
        files! :P
      
        The rest are bug fixes; and I'll be sending more next week.
      
         - Fix a problem where shrink would blow out the space reserve by
           declining to shrink the filesystem
      
         - Drop the EXPERIMENTAL tag for the large extent counts feature
      
         - Set FMODE_CAN_ODIRECT and get rid of an address space op
      
         - Fix an AG count overflow bug in growfs if the new device size is
           redonkulously large"
      
      * tag 'xfs-6.5-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix ag count overflow during growfs
        xfs: set FMODE_CAN_ODIRECT instead of a dummy direct_IO method
        xfs: drop EXPERIMENTAL tag for large extent counts
        xfs: don't deplete the reserve pool when trying to shrink the fs
      9e06150d
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 53ea167b
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Various cleanups and bug fixes in ext4's extent status tree,
        journalling, and block allocator subsystems.
      
        Also improve performance for parallel DIO overwrites"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (55 commits)
        ext4: avoid updating the superblock on a r/o mount if not needed
        jbd2: skip reading super block if it has been verified
        ext4: fix to check return value of freeze_bdev() in ext4_shutdown()
        ext4: refactoring to use the unified helper ext4_quotas_off()
        ext4: turn quotas off if mount failed after enabling quotas
        ext4: update doc about journal superblock description
        ext4: add journal cycled recording support
        jbd2: continue to record log between each mount
        jbd2: remove j_format_version
        jbd2: factor out journal initialization from journal_get_superblock()
        jbd2: switch to check format version in superblock directly
        jbd2: remove unused feature macros
        ext4: ext4_put_super: Remove redundant checking for 'sbi->s_journal_bdev'
        ext4: Fix reusing stale buffer heads from last failed mounting
        ext4: allow concurrent unaligned dio overwrites
        ext4: clean up mballoc criteria comments
        ext4: make ext4_zeroout_es() return void
        ext4: make ext4_es_insert_extent() return void
        ext4: make ext4_es_insert_delayed_block() return void
        ext4: make ext4_es_remove_extent() return void
        ...
      53ea167b
    • Linus Torvalds's avatar
      Merge tag 'jfs-6.5' of github.com:kleikamp/linux-shaggy · b9d02c22
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "Minor bug fixes and cleanups"
      
      * tag 'jfs-6.5' of github.com:kleikamp/linux-shaggy:
        FS: JFS: Check for read-only mounted filesystem in txBegin
        FS: JFS: Fix null-ptr-deref Read in txBegin
        fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev
        fs: jfs: (trivial) Fix typo in dbInitTree function
        jfs: jfs_dmap: Validate db_l2nbperpage while mounting
      b9d02c22
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs · be3c2131
      Linus Torvalds authored
      Pull overlayfs update from Amir Goldstein:
      
       - fix two NULL pointer deref bugs (Zhihao Cheng)
      
       - add support for "data-only" lower layers destined to be used by
         composefs
      
       - port overlayfs to the new mount api (Christian Brauner)
      
      * tag 'ovl-update-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs: (26 commits)
        ovl: add Amir as co-maintainer
        ovl: reserve ability to reconfigure mount options with new mount api
        ovl: modify layer parameter parsing
        ovl: port to new mount api
        ovl: factor out ovl_parse_options() helper
        ovl: store enum redirect_mode in config instead of a string
        ovl: pass ovl_fs to xino helpers
        ovl: clarify ovl_get_root() semantics
        ovl: negate the ofs->share_whiteout boolean
        ovl: check type and offset of struct vfsmount in ovl_entry
        ovl: implement lazy lookup of lowerdata in data-only layers
        ovl: prepare for lazy lookup of lowerdata inode
        ovl: prepare to store lowerdata redirect for lazy lowerdata lookup
        ovl: implement lookup in data-only layers
        ovl: introduce data-only lower layers
        ovl: remove unneeded goto instructions
        ovl: deduplicate lowerdata and lowerstack[]
        ovl: deduplicate lowerpath and lowerstack[]
        ovl: move ovl_entry into ovl_inode
        ovl: factor out ovl_free_entry() and ovl_stack_*() helpers
        ...
      be3c2131
    • Linus Torvalds's avatar
      gup: avoid stack expansion warning for known-good case · eee9c708
      Linus Torvalds authored
      In commit a425ac53 ("gup: add warning if some caller would seem to
      want stack expansion") I added a temporary warning to catch any strange
      GUP users that would be impacted by the fact that GUP no longer extends
      the stack.
      
      But it turns out that the warning is most easily triggered through
      __access_remote_vm(), that already knows to expand the stack - it just
      does it *after* calling GUP.  So the warning is easy to trigger by just
      running gdb (or similar) and accessing things remotely under the stack.
      
      This just adds a temporary extra "expand stack early" to avoid the
      warning for the already converted case - not because the warning is bad,
      but because getting the warning for this known good case would then hide
      any subsequent warnings for any actually interesting cases.
      
      Let's try to remember to revert this change when we remove the warnings.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eee9c708
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2023-06-29' of git://anongit.freedesktop.org/drm/drm · 1b722407
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There is one set of patches to misc for a i915 gsc/mei proxy driver.
      
        Otherwise it's mostly amdgpu/i915/msm, lots of hw enablement and lots
        of refactoring.
      
        core:
         - replace strlcpy with strscpy
         - EDID changes to support further conversion to struct drm_edid
         - Move i915 DSC parameter code to common DRM helpers
         - Add Colorspace functionality
      
        aperture:
         - ignore framebuffers with non-primary devices
      
        fbdev:
         - use fbdev i/o helpers
         - add Kconfig options for fb_ops helpers
         - use new fb io helpers directly in drivers
      
        sysfs:
         - export DRM connector ID
      
        scheduler:
         - Avoid an infinite loop
      
        ttm:
         - store function table in .rodata
         - Add query for TTM mem limit
         - Add NUMA awareness to pools
         - Export ttm_pool_fini()
      
        bridge:
         - fsl-ldb: support i.MX6SX
         - lt9211, lt9611: remove blanking packets
         - tc358768: implement input bus formats, devm cleanups
         - ti-snd65dsi86: implement wait_hpd_asserted
         - analogix: fix endless probe loop
         - samsung-dsim: support swapped clock, fix enabling, support var
           clock
         - display-connector: Add support for external power supply
         - imx: Fix module linking
         - tc358762: Support reset GPIO
      
        panel:
         - nt36523: Support Lenovo J606F
         - st7703: Support Anbernic RG353V-V2
         - InnoLux G070ACE-L01 support
         - boe-tv101wum-nl6: Improve initialization
         - sharp-ls043t1le001: Mode fixes
         - simple: BOE EV121WXM-N10-1850, S6D7AA0
         - Ampire AM-800480L1TMQW-T00H
         - Rocktech RK043FN48H
         - Starry himax83102-j02
         - Starry ili9882t
      
        amdgpu:
         - add new ctx query flag to handle reset better
         - add new query/set shadow buffer for rdna3
         - DCN 3.2/3.1.x/3.0.x updates
         - Enable DC_FP on loongarch
         - PCIe fix for RDNA2
         - improve DC FAMS/SubVP support for better power management
         - partition support for lots of engines
         - Take NUMA into account when allocating memory
         - Add new DRM_AMDGPU_WERROR config parameter to help with CI
         - Initial SMU13 overdrive support
         - Add support for new colorspace KMS API
         - W=1 fixes
      
        amdkfd:
         - Query TTM mem limit rather than hardcoding it
         - GC 9.4.3 partition support
         - Handle NUMA for partitions
         - Add debugger interface for enabling gdb
         - Add KFD event age tracking
      
        radeon:
         - Fix possible UAF
      
        i915:
         - new getparam for PXP support
         - GSC/MEI proxy driver
         - Meteorlake display enablement
         - avoid clearing preallocated framebuffers with TTM
         - implement framebuffer mmap support
         - Disable sampler indirect state in bindless heap
         - Enable fdinfo for GuC backends
         - GuC loading and firmware table handling fixes
         - Various refactors for multi-tile enablement
         - Define MOCS and PAT tables for MTL
         - GSC/MEI support for Meteorlake
         - PMU multi-tile support
         - Large driver kernel doc cleanup
         - Allow VRR toggling and arbitrary refresh rates
         - Support async flips on linear buffers on display ver 12+
         - Expose CRTC CTM property on ILK/SNB/VLV
         - New debugfs for display clock frequencies
         - Hotplug refactoring
         - Display refactoring
         - I915_GEM_CREATE_EXT_SET_PAT for Mesa on Meteorlake
         - Use large rings for compute contexts
         - HuC loading for MTL
         - Allow user to set cache at BO creation
         - MTL powermanagement enhancements
         - Switch to dedicated workqueues to stop using flush_scheduled_work()
         - Move display runtime init under display/
         - Remove 10bit gamma on desktop gen3 parts, they don't support it
      
        habanalabs:
         - uapi: return 0 for user queries if there was a h/w or f/w error
         - Add pci health check when we lose connection with the firmware.
           This can be used to distinguish between pci link down and firmware
           getting stuck.
         - Add more info to the error print when TPC interrupt occur.
         - Firmware fixes
      
        msm:
         - Adreno A660 bindings
         - SM8350 MDSS bindings fix
         - Added support for DPU on sm6350 and sm6375 platforms
         - Implemented tearcheck support to support vsync on SM150 and newer
           platforms
         - Enabled missing features (DSPP, DSC, split display) on sc8180x,
           sc8280xp, sm8450
         - Added support for DSI and 28nm DSI PHY on MSM8226 platform
         - Added support for DSI on sm6350 and sm6375 platforms
         - Added support for display controller on MSM8226 platform
         - A690 GPU support
         - Move cmdstream dumping out of fence signaling path
         - a610 support
         - Support for a6xx devices without GMU
      
        nouveau:
         - NULL ptr before deref fixes
      
        armada:
         - implement fbdev emulation as client
      
        sun4i:
         - fix mipi-dsi dotclock
         - release clocks
      
        vc4:
         - rgb range toggle property
         - BT601 / BT2020 HDMI support
      
        vkms:
         - convert to drmm helpers
         - add reflection and rotation support
         - fix rgb565 conversion
      
        gma500:
         - fix iomem access
      
        shmobile:
         - support renesas soc platform
         - enable fbdev
      
        mxsfb:
         - Add support for i.MX93 LCDIF
      
        stm:
         - dsi: Use devm_ helper
         - ltdc: Fix potential invalid pointer deref
      
        renesas:
         - Group drivers in renesas subdirectory to prepare for new platform
         - Drop deprecated R-Car H3 ES1.x support
      
        meson:
         - Add support for MIPI DSI displays
      
        virtio:
         - add sync object support
      
        mediatek:
         - Add display binding document for MT6795"
      
      * tag 'drm-next-2023-06-29' of git://anongit.freedesktop.org/drm/drm: (1791 commits)
        drm/i915: Fix a NULL vs IS_ERR() bug
        drm/i915: make i915_drm_client_fdinfo() reference conditional again
        drm/i915/huc: Fix missing error code in intel_huc_init()
        drm/i915/gsc: take a wakeref for the proxy-init-completion check
        drm/msm/a6xx: Add A610 speedbin support
        drm/msm/a6xx: Add A619_holi speedbin support
        drm/msm/a6xx: Use adreno_is_aXYZ macros in speedbin matching
        drm/msm/a6xx: Use "else if" in GPU speedbin rev matching
        drm/msm/a6xx: Fix some A619 tunables
        drm/msm/a6xx: Add A610 support
        drm/msm/a6xx: Add support for A619_holi
        drm/msm/adreno: Disable has_cached_coherent in GMU wrapper configurations
        drm/msm/a6xx: Introduce GMU wrapper support
        drm/msm/a6xx: Move CX GMU power counter enablement to hw_init
        drm/msm/a6xx: Extend and explain UBWC config
        drm/msm/a6xx: Remove both GBIF and RBBM GBIF halt on hw init
        drm/msm/a6xx: Add a helper for software-resetting the GPU
        drm/msm/a6xx: Improve a6xx_bus_clear_pending_transactions()
        drm/msm/a6xx: Move a6xx_bus_clear_pending_transactions to a6xx_gpu
        drm/msm/a6xx: Move force keepalive vote removal to a6xx_gmu_force_off()
        ...
      1b722407
    • Linus Torvalds's avatar
      Merge tag 'sound-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · f8824e15
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "Lots of changes as usual, but the only significant stuff in ALSA core
        part is the MIDI 2.0 support, while ASoC core kept receiving the code
        refactoring. The majority of changes are seen rather in device
        drivers, and quite a few new drivers can be found there.
      
        Here we go, some highlights:
      
        ALSA and ASoC Core:
         - Support of MIDI 2.0 devices: rawmidi and sequencer API have been
           extended for the support of the new UMP (Universal MIDI Packet)
           protocol, USB audio driver got the USB MIDI 2.0 interface support
         - Continued refactoring around ASoC DAI links and the ordering of
           trigger callbacks
         - PCM ABI extension for better drain support
      
        ASoC Drivers:
         - Conversions of many drivers to use maple tree based caches
         - Everlasting improvement works on ASoC Intel drivers
         - Compressed audio support for Qualcomm
         - Support for AMD SoundWire, Analog Devices SSM3515, Google
           Chameleon, Ingenic X1000, Intel systems with various CODECs,
           Loongson platforms, Maxim MAX98388, Mediatek MT8188, Nuvoton
           NAU8825C, NXP platforms with NAU8822, Qualcomm WSA884x, StarFive
           JH7110, Texas Instruments TAS2781
      
        HD-audio:
         - Quirks for HP and ASUS machines
         - CS35L41 HD-audio codec fixes
         - Loongson HD-audio support
      
        Misc:
         - A new virtual PCM test driver for kselftests
         - Continued refactoring and improvements on the legacy emu10k1
           driver"
      
      * tag 'sound-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (556 commits)
        ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on EliteBook
        ASoC: hdmi-codec: fix channel info for compressed formats
        ALSA: pcm: fix ELD constraints for (E)AC3, DTS(-HD) and MLP formats
        ASoC: core: Always store of_node when getting DAI link component
        ASoC: tas2781: Fix error code in tas2781_load_calibration()
        ASoC: amd: update pm_runtime enable sequence
        ALSA: ump: Export MIDI1 / UMP conversion helpers
        ASoC: tas2781: fix Kconfig dependencies
        ASoC: amd: acp: remove acp poweroff function
        ASoC: amd: acp: clear pdm dma interrupt mask
        ASoC: codecs: max98090: Allow dsp_a mode
        ASoC: qcom: common: add default jack dapm pins
        ASoC: loongson: fix address space confusion
        ASoC: dt-bindings: microchip,sama7g5-pdmc: Simplify "microchip,mic-pos" constraints
        ASoC: tegra: Remove stale comments in AHUB
        ASoC: tegra: Use normal system sleep for ASRC
        ALSA: hda/realtek: Add quirks for ROG ALLY CS35l41 audio
        ASoC: fsl-asoc-card: Allow passing the number of slots in use
        ASoC: codecs: wsa884x: Add WSA884x family of speakers
        ASoC: dt-bindings: qcom,wsa8840: Add WSA884x family of speakers
        ...
      f8824e15
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.5-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 86e203ed
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - improvements to PS/2 handling for case when EC has already latched a
         scancode in the data register, but the kernel expects to receive an
         ACK to a command it sent to a device (such as keyboard LED toggle)
      
       - input drivers for devices connected over I2C bus have been switched
         back to using [new] .probe()
      
       - uinput allows userspace to inject timestamps for input events
      
       - support for capacitive keys in Atmel touch controller driver
      
       - assorted fixes to drv260x, pwm-vibra, ili210x, adxl34x, and other
         drivers
      
      * tag 'input-for-v6.5-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (40 commits)
        Input: pm8941-powerkey - fix debounce on gen2+ PMICs
        MAINTAINERS: Adjust Qualcomm driver globbing
        Input: gameport - provide default trigger() and read()
        Input: tps65219-pwrbutton - use regmap_set_bits()
        Input: tps65219-pwrbutton - convert to .remove_new()
        Input: tests - add test to cover all input_grab_device() function
        Input: gpio-keys - use input_report_key()
        Input: xpad - spelling fixes for "Xbox"
        Input: add HAS_IOPORT dependencies
        Input: libps2 - do not discard non-ack bytes when controlling LEDs
        Input: libps2 - introduce common interrupt handler
        Input: libps2 - fix aborting PS/2 commands
        Input: libps2 - fix NAK handling
        Input: libps2 - rework handling of command response
        Input: libps2 - remove special handling of ACK for command byte
        Input: libps2 - attach ps2dev instances as serio port's drvdata
        Input: Switch i2c drivers back to use .probe()
        dt-bindings: input: cypress,cyapa: convert to dtschema
        Input: adxl34x - do not hardcode interrupt trigger type
        Input: pwm-vibra - add support for enable GPIO
        ...
      86e203ed
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2023062701' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 0e382fa7
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - more bullet-proof handling of devres-managed resources in HID core
         (Dmitry Torokhov)
      
       - conversion of hid-wacom to use ktime_t (Jason Gerecke)
      
       - touch selftests for hid-wacom (Joshua Dickens)
      
       - support for nVidia Thunderstrike (SHIELD 2017) controller (Rahul
         Rameshbabu)
      
       - power management reset-during-suspend fix for goodix Chromebook
         devices (Fei Shao)
      
       - assorted device ID additions, device-specific quirks and code
         cleanups
      
      * tag 'for-linus-2023062701' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (27 commits)
        HID: wacom: Use ktime_t rather than int when dealing with timestamps
        HID: hidraw: fix data race on device refcount
        HID: intel-ish-hid: ipc: Add Arrow Lake PCI device ID
        HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651.
        HID: add quirk for 03f0:464a HP Elite Presenter Mouse
        HID: nvidia-shield: Support LED functionality for Thunderstrike
        HID: nvidia-shield: Add mappings for consumer HID USAGE buttons
        HID: nvidia-shield: Initial driver implementation with Thunderstrike support
        HID: apple: Option to swap only left side mod keys
        HID: uclogic: Modular KUnit tests should not depend on KUNIT=y
        HID: fix an error code in hid_check_device_match()
        HID: logitech-hidpp: Add USB and Bluetooth IDs for the Logitech G915 TKL Keyboard
        HID: i2c-hid: Switch i2c drivers back to use .probe()
        HID: i2c-hid: goodix: Add support for "goodix,no-reset-during-suspend" property
        dt-bindings: input: goodix: Add "goodix,no-reset-during-suspend" property
        HID: microsoft: Add rumble support to latest xbox controllers
        selftests: hid: Add touch tests for Wacom devices
        HID: ensure timely release of driver-allocated resources
        HID: split apart hid_device_probe to make logic more apparent
        HID: amd_sfh: Split sensor and HID initialization for SFH1.1
        ...
      0e382fa7
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · 675285ad
      Linus Torvalds authored
      Pull fbdev updates from Helge Deller:
       "Some fbdev fixes & cleanups.
      
        Includes is a fix for a potential out-of-bound memory access
        in fast_imageblit() and the switch of the VIA fbdev driver to
        use GPIO descriptors.
      
        Summary:
         - fix potential OOB read in fast_imageblit()
         - fbdev/media: Use GPIO descriptors for VIA GPIO
         - broadsheetfb & metronomefb: Add MODULE_FIRMWARE macro
         - omapfb: error handling fix in mipid_spi_probe()
         - sh_mobile_lcdcfb, sh7760fb: Typo and warning fixes
         - hitfb: code cleanups"
      
      * tag 'fbdev-for-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        fbdev: fix potential OOB read in fast_imageblit()
        MAINTAINERS: adjust entry in VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
        fbdev: sh7760fb: Fix -Wimplicit-fallthrough warnings
        fbdev: sh_mobile_lcdcfb: Fix ARGB32 overlay format typo
        fbdev: hitfb: Use NULL for pointers
        fbdev: hitfb: Fix integer-to-pointer cast
        fbdev/media: Use GPIO descriptors for VIA GPIO
        video/hdmi: Reorder fields in 'struct hdmi_avi_infoframe'
        fbdev: broadsheetfb: Add MODULE_FIRMWARE macro
        fbdev: metronomefb: Add MODULE_FIRMWARE macro
        fbdev: hitfb: Declare hitfb_blank() as static
        fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe()
      675285ad
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · e5476f57
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "We have two new drivers, some improvements to the core code, lots of
        different updates to existing GPIO drivers and some dt-bindings on
        top.
      
        There's nothing controversial in here and almost everything has been
        in next for more than a week (95% a lot longer than this). The only
        thing that has spent less time in next is a new driver so no risk of
        regressions.
      
        The single merge pulls in changes that remove all usage of global GPIO
        numbers from arch/arm/mach-omap.
      
        Core GPIO library:
         - remove unused symbols
         - don't spam the kernel log with messages about hogs
         - remove old sysfs API cruft
         - improve handling of GPIO masks
      
        New drivers:
         - add a driver for the BlueField-3 GPIO controller
         - add GPIO support for the TPS65219 PMIC
      
        Driver improvements:
         - extend the gpio-aggregator driver to support ramp-up/ramp-down
           delay
         - remove unnecessary CONFIG_OF guards from gpio-aggregator
         - readability improvements in gpio-tangier
         - switch i2c drivers back to using probe() now that it's been
           converted in the i2c subsystem to not taking the id parameter
         - remove unused inclusions of of_gpio.h in several drivers
         - make pm ops static in gpio-davinci and fix a comment
         - use more devres in drivers to shrink and simplify the code
         - add missing include in gpio-sa1100
         - add HAS_IOPORT KConfig dependency where needed
         - add permissions checks before accessing pins in gpio-tegra186
         - convert the gpio-zynq driver to using immutable irqchips
         - preserve output settings set by the bootloader in gpio-mpc8xxx
      
        Selftests:
         - tweak the variable naming in script tests
      
        Device tree updates:
         - convert gpio-mmio and gpio-stmpe to YAML
         - add parsing of GPIO hogs to gpio-vf610
         - add bindings for the Cirrus EP93xx GPIO controller
         - add gpio-line-names property to the gpio-pca9570 bindings
         - extend the binding for x-powers,axp209 with another block"
      
      * tag 'gpio-updates-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (58 commits)
        of: unittest: drop assertions for GPIO hog messages
        gpiolib: Drop unused domain_ops memeber of GPIO IRQ chip
        gpio: synq: remove unused zynq_gpio_irq_reqres/zynq_gpio_irq_relres
        dt-bindings: gpio: gpio-vf610: Add parsing of hogs
        gpio: lpc18xx: Remove unused of_gpio.h inclusion
        gpio: xra1403: Remove unused of_gpio.h inclusion
        gpio: mpc8xxx: Remove unused of_gpio.h inclusion
        dt-bindings: gpio: Add Cirrus EP93xx
        gpio: mpc8xxx: latch GPIOs state on module load when configured as output
        selftests: gpio: gpio-sim: Use same variable name for sysfs pathname
        gpio: mlxbf3: Add gpio driver support
        gpio: delay: Remove duplicative functionality
        gpio: aggregator: Set up a parser of delay line parameters
        gpio: aggregator: Support delay for setting up individual GPIOs
        gpio: aggregator: Remove CONFIG_OF and of_match_ptr() protections
        dt-bindings: gpio: pca9570: add gpio-line-names property
        gpiolib: remove unused gpio_cansleep()
        gpio: tps65219: add GPIO support for TPS65219 PMIC
        gpio: zynq: fix zynqmp_gpio not an immutable chip warning
        gpio: davinci: make davinci_gpio_dev_pm_ops static
        ...
      e5476f57
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · ff7ddcf0
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This batch of clk driver updates contains almost no new SoC support.
        Instead there's a treewide patch series from Maxime that makes
        clk_ops::determine_rate mandatory for muxes.
      
        Beyond that core framework change we have the usual pile of clk driver
        updates such as migrating i2c drivers to use .probe() again or
        YAMLfication of clk DT bindings so we can validate DTBs.
      
        Overall the SoCs that got the most updates this time around in terms
        of diffstat are the Amlogic and Mediatek drivers because they added
        new SoC support or fixed up various drivers to have proper data.
      
        In general things look kinda quiet. I suspect the core framework
        change may still shake out some problems after the merge window,
        mostly because not everyone tests linux-next where that series has
        been for some number of weeks. I saw that there's at least one pending
        fix for Tegra that needs to be wrapped up into a proper patch. I'll
        try to catch those bits before the window closes so that -rc1 is
        bootable. More details below.
      
        Core:
         - Make clk_ops::determine_rate mandatory for muxes
      
        New Drivers:
         - Add amlogic a1 SoC family PLL and peripheral clock controller support
      
        Updates:
         - Handle allocation failures from kasprintf() and friends
         - Migrate platform clk drivers to .remove_new()
         - Migrate i2c clk drivers to .probe() instead of .probe_new()
         - Remove CLK_SET_PARENT from all Mediatek MSDC core clocks
         - Add infra_ao reset support for Mediatek MT8188 SoCs
         - Align driver_data to i2c_device_id tables in some i2c clk drivers
         - Use device_get_match_data() in vc5 clk driver
         - New Kconfig symbol name (SOC_MICROCHIP_POLARFIRE) for Microchip
           FPGA clock drivers
         - Use of_property_read_bool() to read "microchip,pic32mzda-sosc"
           boolean DT property in clk-pic32mzda
         - Convert AT91 clock dt-bindings to YAML
         - Remove CLK_SET_RATE_PARENT flag from LDB clocks on i.MX6SX
         - Keep i.MX UART clocks enabled during kernel boot if earlycon is set
         - Drop imx_unregister_clocks() as there are no users anymore
         - Switch to _safe iterator on imx_clk_scu_unregister() to avoid use
           after free
         - Add determine_rate op to the imx8m composite clock
         - Use device managed API for iomap and kzalloc for i.MXRT1050,
           i.MX8MN, i.MX8MP and i.MX93 clock controller drivers
         - Add missing interrupt DT property for the i.MX8M clock controller
         - Re-add support for Exynos4212 clock controller because we are
           re-introducing the SoC in the mainline
         - Add CONFIG_OF dependency to Samsung clk Kconfig symbols to solve
           some objtool warnings
         - Preselect PLL MIPI as TCON0 parent for Allwinner A64 SoC
         - Convert the Renesas clock drivers to readl_poll_timeout_atomic()
         - Add PWM clock on Renesas R-Car V3U
         - Fix PLL5 on Renesas RZ/G2L and RZ/V2L"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (149 commits)
        clk: fix typo in clk_hw_register_fixed_rate_parent_data() macro
        clk: Fix memory leak in devm_clk_notifier_register()
        clk: mvebu: Iterate over possible CPUs instead of DT CPU nodes
        clk: mvebu: Use of_get_cpu_hwid() to read CPU ID
        MAINTAINERS: Add Marvell mvebu clock drivers
        clk: clocking-wizard: check return value of devm_kasprintf()
        clk: ti: clkctrl: check return value of kasprintf()
        clk: keystone: sci-clk: check return value of kasprintf()
        clk: si5341: free unused memory on probe failure
        clk: si5341: check return value of {devm_}kasprintf()
        clk: si5341: return error if one synth clock registration fails
        clk: cdce925: check return value of kasprintf()
        clk: vc5: check memory returned by kasprintf()
        clk: mediatek: clk-mt8173-apmixedsys: Fix iomap not released issue
        clk: mediatek: clk-mt8173-apmixedsys: Fix return value for of_iomap() error
        clk: mediatek: clk-mtk: Grab iomem pointer for divider clocks
        clk: keystone: syscon-clk: Add support for audio refclk
        dt-bindings: clock: Add binding documentation for TI Audio REFCLK
        dt-bindings: clock: ehrpwm: Remove unneeded syscon compatible
        clk: keystone: syscon-clk: Allow the clock node to not be of type syscon
        ...
      ff7ddcf0
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · acd1d46b
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
      
         - Driver for MAX31827
      
         - Driver to support HP WMI Sensors
      
        Added support to existing drivers:
      
         - aht10: Support for AHT20
      
         - aquacomputer_d5next: Support for Aquacomputer Leakshield
      
         - asus-ec-sensors: Support for ROG Crosshair X670E Hero
      
         - corsair-psu: Cleanups and support for series 2022 and 2023
      
         - it87: Various improvements and support for IT8732F
      
         - nct6683: Support customer ID of some MSI boards.
      
         - nct6755: Support for NCT6799D
      
         - oxp-sensors: Various cleanups; support for AYANEO 2, Geek, OXP
           Mini, and AOKZOE A1 PRO
      
         - pmbus/max16601: Support for new revisions of MAX16508
      
         - pmbus/adm1275: Disable ADC while updating PMON_CONFIG, and fix
           problems with temperature monitoring on ADM1272
      
         - sht3x: Various cleanups; support for medium repeatability
      
        Other notable changes:
      
         - Switched regmap drivers to Maple tree support where appropriate
      
        Various other minor fixes and improvements"
      
      * tag 'hwmon-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (54 commits)
        hwmon: max31827: Switch back to use struct i2c_driver::probe
        hwmon: (oxp-sensors) Add support for AOKZOE A1 PRO
        hwmon: (corsair-psu) update Series 2022 and 2023 support
        hwmon: (corsair-psu) various cleanups
        hwmon: (corsair-psu) add support for reading PWM values and mode
        hwmon: (pmbus/adm1275) Disable ADC while updating PMON_CONFIG
        hwmon: (pmbus/adm1275) Prepare for protected write to PMON_CONFIG
        hwmon: (oxp-sensors) Simplify logic of error return
        hwmon: (oxp-sensors) Remove unused header
        hwmon: (nct6755) Add support for NCT6799D
        hwmon: (oxp-sensors) Add tt_toggle attribute on supported boards
        hwmon: (sht3x) complement sysfs interface for sts3x
        hwmon: (sht3x) Add new non-stardard sysfs attribute
        hwmon: (sht3x) add medium repeatability support
        hwmon: (sht3x)replace "high-precision" property to "repeatability"
        hwmon: (sht3x) remove blocking_io property
        hwmon: (sht3x) remove sht3x_platform_data
        hwmon: (pmbus/max16601) Add support for new revisions of MAX16508
        Documentation/hwmon: Fix description of devm_hwmon_device_unregister()
        hwmon: (tmp464) Use maple tree register cache
        ...
      acd1d46b
    • Hugh Dickins's avatar
      mm/khugepaged: fix regression in collapse_file() · e8c716bc
      Hugh Dickins authored
      There is no xas_pause(&xas) in collapse_file()'s main loop, at the points
      where it does xas_unlock_irq(&xas) and then continues.
      
      That would explain why, once two weeks ago and twice yesterday, I have
      hit the VM_BUG_ON_PAGE(page != xas_load(&xas), page) since "mm/khugepaged:
      fix iteration in collapse_file" removed the xas_set(&xas, index) just
      before it: xas.xa_node could be left pointing to a stale node, if there
      was concurrent activity on the file which transformed its xarray.
      
      I tried inserting xas_pause()s, but then even bootup crashed on that
      VM_BUG_ON_PAGE(): there appears to be a subtle "nextness" implicit in
      xas_pause().
      
      xas_next() and xas_pause() are good for use in simple loops, but not in
      this one: xas_set() worked well until now, so use xas_set(&xas, index)
      explicitly at the head of the loop; and change that VM_BUG_ON_PAGE() not
      to need its own xas_set(), and not to interfere with the xa_state (which
      would probably stop the crashes from xas_pause(), but I trust that less).
      
      The user-visible effects of this bug (if VM_BUG_ONs are configured out)
      would be data loss and data leak - potentially - though in practice I
      expect it is more likely that a subsequent check (e.g. on mapping or on
      nr_none) would notice an inconsistency, and just abandon the collapse.
      
      Link: https://lore.kernel.org/linux-mm/f18e4b64-3f88-a8ab-56cc-d1f5f9c58d4@google.com/
      Fixes: c8a8f3b4 ("mm/khugepaged: fix iteration in collapse_file")
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Cc: stable@kernel.org
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: David Stevens <stevensd@chromium.org>
      Cc: Peter Xu <peterx@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e8c716bc
    • Linus Torvalds's avatar
      Merge branch 'expand-stack' · 9471f1f2
      Linus Torvalds authored
      This modifies our user mode stack expansion code to always take the
      mmap_lock for writing before modifying the VM layout.
      
      It's actually something we always technically should have done, but
      because we didn't strictly need it, we were being lazy ("opportunistic"
      sounds so much better, doesn't it?) about things, and had this hack in
      place where we would extend the stack vma in-place without doing the
      proper locking.
      
      And it worked fine.  We just needed to change vm_start (or, in the case
      of grow-up stacks, vm_end) and together with some special ad-hoc locking
      using the anon_vma lock and the mm->page_table_lock, it all was fairly
      straightforward.
      
      That is, it was all fine until Ruihan Li pointed out that now that the
      vma layout uses the maple tree code, we *really* don't just change
      vm_start and vm_end any more, and the locking really is broken.  Oops.
      
      It's not actually all _that_ horrible to fix this once and for all, and
      do proper locking, but it's a bit painful.  We have basically three
      different cases of stack expansion, and they all work just a bit
      differently:
      
       - the common and obvious case is the page fault handling. It's actually
         fairly simple and straightforward, except for the fact that we have
         something like 24 different versions of it, and you end up in a maze
         of twisty little passages, all alike.
      
       - the simplest case is the execve() code that creates a new stack.
         There are no real locking concerns because it's all in a private new
         VM that hasn't been exposed to anybody, but lockdep still can end up
         unhappy if you get it wrong.
      
       - and finally, we have GUP and page pinning, which shouldn't really be
         expanding the stack in the first place, but in addition to execve()
         we also use it for ptrace(). And debuggers do want to possibly access
         memory under the stack pointer and thus need to be able to expand the
         stack as a special case.
      
      None of these cases are exactly complicated, but the page fault case in
      particular is just repeated slightly differently many many times.  And
      ia64 in particular has a fairly complicated situation where you can have
      both a regular grow-down stack _and_ a special grow-up stack for the
      register backing store.
      
      So to make this slightly more manageable, the bulk of this series is to
      first create a helper function for the most common page fault case, and
      convert all the straightforward architectures to it.
      
      Thus the new 'lock_mm_and_find_vma()' helper function, which ends up
      being used by x86, arm, powerpc, mips, riscv, alpha, arc, csky, hexagon,
      loongarch, nios2, sh, sparc32, and xtensa.  So we not only convert more
      than half the architectures, we now have more shared code and avoid some
      of those twisty little passages.
      
      And largely due to this common helper function, the full diffstat of
      this series ends up deleting more lines than it adds.
      
      That still leaves eight architectures (ia64, m68k, microblaze, openrisc,
      parisc, s390, sparc64 and um) that end up doing 'expand_stack()'
      manually because they are doing something slightly different from the
      normal pattern.  Along with the couple of special cases in execve() and
      GUP.
      
      So there's a couple of patches that first create 'locked' helper
      versions of the stack expansion functions, so that there's a obvious
      path forward in the conversion.  The execve() case is then actually
      pretty simple, and is a nice cleanup from our old "grow-up stackls are
      special, because at execve time even they grow down".
      
      The #ifdef CONFIG_STACK_GROWSUP in that code just goes away, because
      it's just more straightforward to write out the stack expansion there
      manually, instead od having get_user_pages_remote() do it for us in some
      situations but not others and have to worry about locking rules for GUP.
      
      And the final step is then to just convert the remaining odd cases to a
      new world order where 'expand_stack()' is called with the mmap_lock held
      for reading, but where it might drop it and upgrade it to a write, only
      to return with it held for reading (in the success case) or with it
      completely dropped (in the failure case).
      
      In the process, we remove all the stack expansion from GUP (where
      dropping the lock wouldn't be ok without special rules anyway), and add
      it in manually to __access_remote_vm() for ptrace().
      
      Thanks to Adrian Glaubitz and Frank Scheiner who tested the ia64 cases.
      Everything else here felt pretty straightforward, but the ia64 rules for
      stack expansion are really quite odd and very different from everything
      else.  Also thanks to Vegard Nossum who caught me getting one of those
      odd conditions entirely the wrong way around.
      
      Anyway, I think I want to actually move all the stack expansion code to
      a whole new file of its own, rather than have it split up between
      mm/mmap.c and mm/memory.c, but since this will have to be backported to
      the initial maple tree vma introduction anyway, I tried to keep the
      patches _fairly_ minimal.
      
      Also, while I don't think it's valid to expand the stack from GUP, the
      final patch in here is a "warn if some crazy GUP user wants to try to
      expand the stack" patch.  That one will be reverted before the final
      release, but it's left to catch any odd cases during the merge window
      and release candidates.
      Reported-by: default avatarRuihan Li <lrh2000@pku.edu.cn>
      
      * branch 'expand-stack':
        gup: add warning if some caller would seem to want stack expansion
        mm: always expand the stack with the mmap write lock held
        execve: expand new process stack manually ahead of time
        mm: make find_extend_vma() fail if write lock not held
        powerpc/mm: convert coprocessor fault to lock_mm_and_find_vma()
        mm/fault: convert remaining simple cases to lock_mm_and_find_vma()
        arm/mm: Convert to using lock_mm_and_find_vma()
        riscv/mm: Convert to using lock_mm_and_find_vma()
        mips/mm: Convert to using lock_mm_and_find_vma()
        powerpc/mm: Convert to using lock_mm_and_find_vma()
        arm64/mm: Convert to using lock_mm_and_find_vma()
        mm: make the page fault mmap locking killable
        mm: introduce new 'lock_mm_and_find_vma()' page fault helper
      9471f1f2
  3. 28 Jun, 2023 4 commits
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 3a8a670e
      Linus Torvalds authored
      Pull networking changes from Jakub Kicinski:
       "WiFi 7 and sendpage changes are the biggest pieces of work for this
        release. The latter will definitely require fixes but I think that we
        got it to a reasonable point.
      
        Core:
      
         - Rework the sendpage & splice implementations
      
           Instead of feeding data into sockets page by page extend sendmsg
           handlers to support taking a reference on the data, controlled by a
           new flag called MSG_SPLICE_PAGES
      
           Rework the handling of unexpected-end-of-file to invoke an
           additional callback instead of trying to predict what the right
           combination of MORE/NOTLAST flags is
      
           Remove the MSG_SENDPAGE_NOTLAST flag completely
      
         - Implement SCM_PIDFD, a new type of CMSG type analogous to
           SCM_CREDENTIALS, but it contains pidfd instead of plain pid
      
         - Enable socket busy polling with CONFIG_RT
      
         - Improve reliability and efficiency of reporting for ref_tracker
      
         - Auto-generate a user space C library for various Netlink families
      
        Protocols:
      
         - Allow TCP to shrink the advertised window when necessary, prevent
           sk_rcvbuf auto-tuning from growing the window all the way up to
           tcp_rmem[2]
      
         - Use per-VMA locking for "page-flipping" TCP receive zerocopy
      
         - Prepare TCP for device-to-device data transfers, by making sure
           that payloads are always attached to skbs as page frags
      
         - Make the backoff time for the first N TCP SYN retransmissions
           linear. Exponential backoff is unnecessarily conservative
      
         - Create a new MPTCP getsockopt to retrieve all info
           (MPTCP_FULL_INFO)
      
         - Avoid waking up applications using TLS sockets until we have a full
           record
      
         - Allow using kernel memory for protocol ioctl callbacks, paving the
           way to issuing ioctls over io_uring
      
         - Add nolocalbypass option to VxLAN, forcing packets to be fully
           encapsulated even if they are destined for a local IP address
      
         - Make TCPv4 use consistent hash in TIME_WAIT and SYN_RECV. Ensure
           in-kernel ECMP implementation (e.g. Open vSwitch) select the same
           link for all packets. Support L4 symmetric hashing in Open vSwitch
      
         - PPPoE: make number of hash bits configurable
      
         - Allow DNS to be overwritten by DHCPACK in the in-kernel DHCP client
           (ipconfig)
      
         - Add layer 2 miss indication and filtering, allowing higher layers
           (e.g. ACL filters) to make forwarding decisions based on whether
           packet matched forwarding state in lower devices (bridge)
      
         - Support matching on Connectivity Fault Management (CFM) packets
      
         - Hide the "link becomes ready" IPv6 messages by demoting their
           printk level to debug
      
         - HSR: don't enable promiscuous mode if device offloads the proto
      
         - Support active scanning in IEEE 802.15.4
      
         - Continue work on Multi-Link Operation for WiFi 7
      
        BPF:
      
         - Add precision propagation for subprogs and callbacks. This allows
           maintaining verification efficiency when subprograms are used, or
           in fact passing the verifier at all for complex programs,
           especially those using open-coded iterators
      
         - Improve BPF's {g,s}setsockopt() length handling. Previously BPF
           assumed the length is always equal to the amount of written data.
           But some protos allow passing a NULL buffer to discover what the
           output buffer *should* be, without writing anything
      
         - Accept dynptr memory as memory arguments passed to helpers
      
         - Add routing table ID to bpf_fib_lookup BPF helper
      
         - Support O_PATH FDs in BPF_OBJ_PIN and BPF_OBJ_GET commands
      
         - Drop bpf_capable() check in BPF_MAP_FREEZE command (used to mark
           maps as read-only)
      
         - Show target_{obj,btf}_id in tracing link fdinfo
      
         - Addition of several new kfuncs (most of the names are
           self-explanatory):
            - Add a set of new dynptr kfuncs: bpf_dynptr_adjust(),
              bpf_dynptr_is_null(), bpf_dynptr_is_rdonly(), bpf_dynptr_size()
              and bpf_dynptr_clone().
            - bpf_task_under_cgroup()
            - bpf_sock_destroy() - force closing sockets
            - bpf_cpumask_first_and(), rework bpf_cpumask_any*() kfuncs
      
        Netfilter:
      
         - Relax set/map validation checks in nf_tables. Allow checking
           presence of an entry in a map without using the value
      
         - Increase ip_vs_conn_tab_bits range for 64BIT builds
      
         - Allow updating size of a set
      
         - Improve NAT tuple selection when connection is closing
      
        Driver API:
      
         - Integrate netdev with LED subsystem, to allow configuring HW
           "offloaded" blinking of LEDs based on link state and activity
           (i.e. packets coming in and out)
      
         - Support configuring rate selection pins of SFP modules
      
         - Factor Clause 73 auto-negotiation code out of the drivers, provide
           common helper routines
      
         - Add more fool-proof helpers for managing lifetime of MDIO devices
           associated with the PCS layer
      
         - Allow drivers to report advanced statistics related to Time Aware
           scheduler offload (taprio)
      
         - Allow opting out of VF statistics in link dump, to allow more VFs
           to fit into the message
      
         - Split devlink instance and devlink port operations
      
        New hardware / drivers:
      
         - Ethernet:
            - Synopsys EMAC4 IP support (stmmac)
            - Marvell 88E6361 8 port (5x1GE + 3x2.5GE) switches
            - Marvell 88E6250 7 port switches
            - Microchip LAN8650/1 Rev.B0 PHYs
            - MediaTek MT7981/MT7988 built-in 1GE PHY driver
      
         - WiFi:
            - Realtek RTL8192FU, 2.4 GHz, b/g/n mode, 2T2R, 300 Mbps
            - Realtek RTL8723DS (SDIO variant)
            - Realtek RTL8851BE
      
         - CAN:
            - Fintek F81604
      
        Drivers:
      
         - Ethernet NICs:
            - Intel (100G, ice):
               - support dynamic interrupt allocation
               - use meta data match instead of VF MAC addr on slow-path
            - nVidia/Mellanox:
               - extend link aggregation to handle 4, rather than just 2 ports
               - spawn sub-functions without any features by default
            - OcteonTX2:
               - support HTB (Tx scheduling/QoS) offload
               - make RSS hash generation configurable
               - support selecting Rx queue using TC filters
            - Wangxun (ngbe/txgbe):
               - add basic Tx/Rx packet offloads
               - add phylink support (SFP/PCS control)
            - Freescale/NXP (enetc):
               - report TAPRIO packet statistics
            - Solarflare/AMD:
               - support matching on IP ToS and UDP source port of outer
                 header
               - VxLAN and GENEVE tunnel encapsulation over IPv4 or IPv6
               - add devlink dev info support for EF10
      
         - Virtual NICs:
            - Microsoft vNIC:
               - size the Rx indirection table based on requested
                 configuration
               - support VLAN tagging
            - Amazon vNIC:
               - try to reuse Rx buffers if not fully consumed, useful for ARM
                 servers running with 16kB pages
            - Google vNIC:
               - support TCP segmentation of >64kB frames
      
         - Ethernet embedded switches:
            - Marvell (mv88e6xxx):
               - enable USXGMII (88E6191X)
            - Microchip:
               - lan966x: add support for Egress Stage 0 ACL engine
               - lan966x: support mapping packet priority to internal switch
                 priority (based on PCP or DSCP)
      
         - Ethernet PHYs:
            - Broadcom PHYs:
               - support for Wake-on-LAN for BCM54210E/B50212E
               - report LPI counter
            - Microsemi PHYs: support RGMII delay configuration (VSC85xx)
            - Micrel PHYs: receive timestamp in the frame (LAN8841)
            - Realtek PHYs: support optional external PHY clock
            - Altera TSE PCS: merge the driver into Lynx PCS which it is a
              variant of
      
         - CAN: Kvaser PCIEcan:
            - support packet timestamping
      
         - WiFi:
            - Intel (iwlwifi):
               - major update for new firmware and Multi-Link Operation (MLO)
               - configuration rework to drop test devices and split the
                 different families
               - support for segmented PNVM images and power tables
               - new vendor entries for PPAG (platform antenna gain) feature
            - Qualcomm 802.11ax (ath11k):
               - Multiple Basic Service Set Identifier (MBSSID) and Enhanced
                 MBSSID Advertisement (EMA) support in AP mode
               - support factory test mode
            - RealTek (rtw89):
               - add RSSI based antenna diversity
               - support U-NII-4 channels on 5 GHz band
            - RealTek (rtl8xxxu):
               - AP mode support for 8188f
               - support USB RX aggregation for the newer chips"
      
      * tag 'net-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1602 commits)
        net: scm: introduce and use scm_recv_unix helper
        af_unix: Skip SCM_PIDFD if scm->pid is NULL.
        net: lan743x: Simplify comparison
        netlink: Add __sock_i_ino() for __netlink_diag_dump().
        net: dsa: avoid suspicious RCU usage for synced VLAN-aware MAC addresses
        Revert "af_unix: Call scm_recv() only after scm_set_cred()."
        phylink: ReST-ify the phylink_pcs_neg_mode() kdoc
        libceph: Partially revert changes to support MSG_SPLICE_PAGES
        net: phy: mscc: fix packet loss due to RGMII delays
        net: mana: use vmalloc_array and vcalloc
        net: enetc: use vmalloc_array and vcalloc
        ionic: use vmalloc_array and vcalloc
        pds_core: use vmalloc_array and vcalloc
        gve: use vmalloc_array and vcalloc
        octeon_ep: use vmalloc_array and vcalloc
        net: usb: qmi_wwan: add u-blox 0x1312 composition
        perf trace: fix MSG_SPLICE_PAGES build error
        ipvlan: Fix return value of ipvlan_queue_xmit()
        netfilter: nf_tables: fix underflow in chain reference counter
        netfilter: nf_tables: unbind non-anonymous set if rule construction fails
        ...
      3a8a670e
    • Linus Torvalds's avatar
      Merge tag 'v6.5-rc1-sysctl-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 6a8cbd92
      Linus Torvalds authored
      Pull sysctl updates from Luis Chamberlain:
       "The changes for sysctl are in line with prior efforts to stop usage of
        deprecated routines which incur recursion and also make it hard to
        remove the empty array element in each sysctl array declaration.
      
        The most difficult user to modify was parport which required a bit of
        re-thinking of how to declare shared sysctls there, Joel Granados has
        stepped up to the plate to do most of this work and eventual removal
        of register_sysctl_table(). That work ended up saving us about 1465
        bytes according to bloat-o-meter. Since we gained a few bloat-o-meter
        karma points I moved two rather small sysctl arrays from
        kernel/sysctl.c leaving us only two more sysctl arrays to move left.
      
        Most changes have been tested on linux-next for about a month. The
        last straggler patches are a minor parport fix, changes to the sysctl
        kernel selftest so to verify correctness and prevent regressions for
        the future change he made to provide an alternative solution for the
        special sysctl mount point target which was using the now deprecated
        sysctl child element.
      
        This is all prep work to now finally be able to remove the empty array
        element in all sysctl declarations / registrations which is expected
        to save us a bit of bytes all over the kernel. That work will be
        tested early after v6.5-rc1 is out"
      
      * tag 'v6.5-rc1-sysctl-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        sysctl: replace child with an enumeration
        sysctl: Remove debugging dump_stack
        test_sysclt: Test for registering a mount point
        test_sysctl: Add an option to prevent test skip
        test_sysctl: Add an unregister sysctl test
        test_sysctl: Group node sysctl test under one func
        test_sysctl: Fix test metadata getters
        parport: plug a sysctl register leak
        sysctl: move security keys sysctl registration to its own file
        sysctl: move umh sysctl registration to its own file
        signal: move show_unhandled_signals sysctl to its own file
        sysctl: remove empty dev table
        sysctl: Remove register_sysctl_table
        sysctl: Refactor base paths registrations
        sysctl: stop exporting register_sysctl_table
        parport: Removed sysctl related defines
        parport: Remove register_sysctl_table from parport_default_proc_register
        parport: Remove register_sysctl_table from parport_device_proc_register
        parport: Remove register_sysctl_table from parport_proc_register
        parport: Move magic number "15" to a define
      6a8cbd92
    • Linus Torvalds's avatar
      Merge tag 'v6.5-rc1-modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 4e3c09e9
      Linus Torvalds authored
      Pull module updates from Luis Chamberlain:
       "The changes queued up for modules are pretty tame, mostly code removal
        of moving of code.
      
        Only two minor functional changes are made, the only one which stands
        out is Sebastian Andrzej Siewior's simplification of module reference
        counting by removing preempt_disable() and that has been tested on
        linux-next for well over a month without no regressions.
      
        I'm now, I guess, also a kitchen sink for some kallsyms changes"
      
      [ There was a mis-communication about the concurrent module load changes
        that I had expected to come through Luis despite me authoring the
        patch. So some of the module updates were left hanging in the email
        ether, and I just committed them separately.
      
        It's my bad - I should have made it more clear that I expected my
        own patches to come through the module tree too. Now they missed
        linux-next, but hopefully that won't cause any issues    - Linus ]
      
      * tag 'v6.5-rc1-modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        kallsyms: make kallsyms_show_value() as generic function
        kallsyms: move kallsyms_show_value() out of kallsyms.c
        kallsyms: remove unsed API lookup_symbol_attrs
        kallsyms: remove unused arch_get_kallsym() helper
        module: Remove preempt_disable() from module reference counting.
      4e3c09e9
    • Linus Torvalds's avatar
      modules: catch concurrent module loads, treat them as idempotent · 9b9879fc
      Linus Torvalds authored
      This is the new-and-improved attempt at avoiding huge memory load spikes
      when the user space boot sequence tries to load hundreds (or even
      thousands) of redundant duplicate modules in parallel.
      
      See commit 9828ed3f ("module: error out early on concurrent load of
      the same module file") for background and an earlier failed attempt that
      was reverted.
      
      That earlier attempt just said "concurrently loading the same module is
      silly, just open the module file exclusively and return -ETXTBSY if
      somebody else is already loading it".
      
      While it is true that concurrent module loads of the same module is
      silly, the reason that earlier attempt then failed was that the
      concurrently loaded module would often be a prerequisite for another
      module.
      
      Thus failing to load the prerequisite would then cause cascading
      failures of the other modules, rather than just short-circuiting that
      one unnecessary module load.
      
      At the same time, we still really don't want to load the contents of the
      same module file hundreds of times, only to then wait for an eventually
      successful load, and have everybody else return -EEXIST.
      
      As a result, this takes another approach, and treats concurrent module
      loads from the same file as "idempotent" in the inode.  So if one module
      load is ongoing, we don't start a new one, but instead just wait for the
      first one to complete and return the same return value as it did.
      
      So unlike the first attempt, this does not return early: the intent is
      not to speed up the boot, but to avoid a thundering herd problem in
      allocating memory (both physical and virtual) for a module more than
      once.
      
      Also note that this does change behavior: it used to be that when you
      had concurrent loads, you'd have one "winner" that would return success,
      and everybody else would return -EEXIST.
      
      In contrast, this idempotent logic goes all Oprah on the problem, and
      says "You are a winner! And you are a winner! We are ALL winners".  But
      since there's no possible actual real semantic difference between "you
      loaded the module" and "somebody else already loaded the module", this
      is more of a feel-good change than an actual honest-to-goodness semantic
      change.
      
      Of course, any true Johnny-come-latelies that don't get caught in the
      concurrency filter will still return -EEXIST.  It's no different from
      not even getting a seat at an Oprah taping.  That's life.
      
      See the long thread on the kernel mailing list about this all, which
      includes some numbers for memory use before and after the patch.
      
      Link: https://lore.kernel.org/lkml/20230524213620.3509138-1-mcgrof@kernel.org/Reviewed-by: default avatarJohan Hovold <johan@kernel.org>
      Tested-by: default avatarJohan Hovold <johan@kernel.org>
      Tested-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      Tested-by: default avatarDan Williams <dan.j.williams@intel.com>
      Tested-by: default avatarRudi Heitbaum <rudi@heitbaum..com>
      Tested-by: default avatarDavid Hildenbrand <david@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9b9879fc