1. 13 May, 2024 9 commits
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2024.05.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · ee202601
      Linus Torvalds authored
      Pull LKMM documentation updates from Paul McKenney:
       "This upgrades LKMM documentation, perhaps most notably adding a number
        of litmus tests illustrating cmpxchg() ordering properties.
      
        TL;DR: Failing cmpxchg() operations provide no ordering"
      
      * tag 'lkmm.2024.05.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        Documentation/litmus-tests: Make cmpxchg() tests safe for klitmus
        Documentation/atomic_t: Emphasize that failed atomic operations give no ordering
        Documentation/litmus-tests: Demonstrate unordered failing cmpxchg
        Documentation/litmus-tests: Add locking tests to README
      ee202601
    • Linus Torvalds's avatar
      Merge tag 'cmpxchg.2024.05.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 2e57d1d6
      Linus Torvalds authored
      Pull cmpxchg updates from Paul McKenney:
       "Provide one-byte and two-byte cmpxchg() support on sparc32, parisc,
        and csky
      
        This provides native one-byte and two-byte cmpxchg() support for
        sparc32 and parisc, courtesy of Al Viro. This support is provided by
        the same hashed-array-of-locks technique used for the other atomic
        operations provided for these two platforms.
      
        There is also emulated one-byte cmpxchg() support for csky using a new
        cmpxchg_emu_u8() function that uses a four-byte cmpxchg() to emulate
        the one-byte variant.
      
        Similar patches for emulation of one-byte cmpxchg() for arc, sh, and
        xtensa have not yet received maintainer acks, so they are slated for
        the v6.11 merge window"
      
      * tag 'cmpxchg.2024.05.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        csky: Emulate one-byte cmpxchg
        lib: Add one-byte emulation function
        parisc: add u16 support to cmpxchg()
        parisc: add missing export of __cmpxchg_u8()
        parisc: unify implementations of __cmpxchg_u{8,32,64}
        parisc: __cmpxchg_u32(): lift conversion into the callers
        sparc32: add __cmpxchg_u{8,16}() and teach __cmpxchg() to handle those sizes
        sparc32: unify __cmpxchg_u{32,64}
        sparc32: make the first argument of __cmpxchg_u64() volatile u64 *
        sparc32: make __cmpxchg_u32() return u32
      2e57d1d6
    • Linus Torvalds's avatar
      Merge tag 'rcu.next.v6.10' of https://github.com/urezki/linux · c0b9620b
      Linus Torvalds authored
      Pull RCU updates from Uladzislau Rezki:
      
       - Fix a lockdep complain for lazy-preemptible kernel, remove redundant
         BH disable for TINY_RCU, remove redundant READ_ONCE() in tree.c, fix
         false positives KCSAN splat and fix buffer overflow in the
         print_cpu_stall_info().
      
       - Misc updates related to bpf, tracing and update the MAINTAINERS file.
      
       - An improvement of a normal synchronize_rcu() call in terms of
         latency. It maintains a separate track for sync. users only. This
         approach bypasses per-cpu nocb-lists thus sync-users do not depend on
         nocb-list length and how fast regular callbacks are processed.
      
       - RCU tasks: switch tasks RCU grace periods to sleep at TASK_IDLE
         priority, fix some comments, add some diagnostic warning to the
         exit_tasks_rcu_start() and fix a buffer overflow in the
         show_rcu_tasks_trace_gp_kthread().
      
       - RCU torture: Increase memory to guest OS, fix a Tasks Rude RCU
         testing, some updates for TREE09, dump mode information to debug GP
         kthread state, remove redundant READ_ONCE(), fix some comments about
         RCU_TORTURE_PIPE_LEN and pipe_count, remove some redundant pointer
         initialization, fix a hung splat task by when the rcutorture tests
         start to exit, fix invalid context warning, add '--do-kvfree'
         parameter to torture test and use slow register unregister callbacks
         only for rcutype test.
      
      * tag 'rcu.next.v6.10' of https://github.com/urezki/linux: (48 commits)
        rcutorture: Use rcu_gp_slow_register/unregister() only for rcutype test
        torture: Scale --do-kvfree test time
        rcutorture: Fix invalid context warning when enable srcu barrier testing
        rcutorture: Make stall-tasks directly exit when rcutorture tests end
        rcutorture: Removing redundant function pointer initialization
        rcutorture: Make rcutorture support print rcu-tasks gp state
        rcutorture: Use the gp_kthread_dbg operation specified by cur_ops
        rcutorture: Re-use value stored to ->rtort_pipe_count instead of re-reading
        rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment
        rcutorture: Remove extraneous rcu_torture_pipe_update_one() READ_ONCE()
        rcu: Allocate WQ with WQ_MEM_RECLAIM bit set
        rcu: Support direct wake-up of synchronize_rcu() users
        rcu: Add a trace event for synchronize_rcu_normal()
        rcu: Reduce synchronize_rcu() latency
        rcu: Fix buffer overflow in print_cpu_stall_info()
        rcu: Mollify sparse with RCU guard
        rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow
        rcu-tasks: Fix the comments for tasks_rcu_exit_srcu_stall_timer
        rcu-tasks: Replace exit_tasks_rcu_start() initialization with WARN_ON_ONCE()
        rcu: Remove redundant CONFIG_PROVE_RCU #if condition
        ...
      c0b9620b
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 736676f5
      Linus Torvalds authored
      Pull alpha updates from Arnd Bergmann:
       "I had investigated dropping support for alpha EV5 and earlier a while
        ago after noticing that this is the only supported CPU family in the
        kernel without native byte access and that Debian has already dropped
        support for this generation last year [1] in order to improve
        performance for the newer machines.
      
        This topic came up again when Paul McKenney noticed that parts of the
        RCU code already rely on byte access and do not work on alpha EV5
        reliably, so we decided on using my series to avoid the problem
        entirely.
      
        Al Viro did another series for alpha to address all the known build
        issues. I rebased his patches without any further changes and included
        it as a baseline for my work here to avoid conflicts and allow
        backporting the fixes to stable kernels for the now removed hardware
        support as well"
      
      [ I dearly loved alpha back in the days, but the lack of byte and word
        operations was a horrible mistake and made everything worse -
        including very much the crazy IO contortions that resulted from it.
      
        It certainly wasn't the only mistake in the architecture, but it's the
        first-order issue.
      
        So while it's a bit sad to see the support for my first alpha go away,
        if you want to run museum hardware, maybe you should use museum
        kernels..    - Linus ]
      
      * tag 'asm-generic-alpha' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        alpha: drop pre-EV56 support
        alpha: cabriolet: remove EV5 CPU support
        alpha: remove LCA and APECS based machines
        alpha: sable: remove early machine support
        alpha: remove DECpc AXP150 (Jensen) support
        alpha: trim the unused stuff from asm-offsets.c
        alpha: jensen, t2 - make __EXTERN_INLINE same as for the rest
        alpha: core_lca: take the unused functions out
        alpha: missing includes
        alpha: sys_sio: fix misspelled ifdefs
        alpha: don't make functions public without a reason
        alpha: add clone3() support
        alpha: fix modversions for strcpy() et.al.
        alpha: sort scr_mem{cpy,move}w() out
      736676f5
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 6d1346f1
      Linus Torvalds authored
      Pull SoC defconfig updates from Arnd Bergmann:
       "Most of the changes enable additional device driver modules and arm64
        platforms. In addition, the usb onboard-device support and ext4
        security labels are turned on"
      
      * tag 'soc-defconfig-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (23 commits)
        arm64: defconfig: enable Airoha platform
        arm64: defconfig: enable Khadas TS050 panel as module
        arm64: defconfig: select INTERCONNECT_QCOM_SM6115 as built-in
        arm64: defconfig: Enable Tegra Security Engine
        arm64: defconfig: enable REGULATOR_QCOM_USB_VBUS
        ARM: imx_v6_v7_defconfig: Update ONBOARD_USB_HUB to ONBOAD_USB_DEV
        arm64: defconfig: enable ext4 security labels
        arm64: defconfig: qcom: enable X1E80100 sound card
        ARM: configs: sunxi: Enable DRM_DW_HDMI
        arm64: defconfig: build snd_bcm2835 as module
        arm64: defconfig: enable Rockchip Samsung USBDP PHY
        ARM: shmobile: defconfig: Refresh for v6.9-rc1
        arm64: defconfig: build ath12k as a module
        arm64: defconfig: Enable sc7280 display and gpu clock controllers
        ARM: imx_v6_v7_defconfig: Select CONFIG_USB_ONBOARD_HUB
        arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module
        arm64: defconfig: support Mali CSF-based GPUs
        arm64: defconfig: enable Rockchip RK3308 internal audio codec driver
        arm64: defconfig: Enable R9A09G057 SoC
        arm64: defconfig: Enable Renesas DA9062 PMIC
        ...
      6d1346f1
    • Linus Torvalds's avatar
      Merge tag 'soc-arm-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 0c221292
      Linus Torvalds authored
      Pull ARM SoC code changes from Arnd Bergmann:
       "The code changes are fairly minimal, there is a bit of conversion of
        the old orion5x platform to modern gpio descriptors, the Kconfig entry
        for the added EN7581 platform and a sysfs change for the i.MX PMU
        device"
      
      * tag 'soc-arm-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        arm64: add Airoha EN7581 platform
        ARM: orion5x: Convert TS409 board to GPIO descriptors for LEDs
        ARM: orion5x: Convert Net2big board to GPIO descriptors for LEDs
        ARM: orion5x: Convert MV2120 board to GPIO descriptors for LEDs
        ARM: orion5x: Convert DNS323 board to GPIO descriptors for LEDs
        ARM: orion5x: Convert D2Net board to GPIO descriptors for LEDs
        ARM: imx: Assign parents for mmdc event_source devices
      0c221292
    • Linus Torvalds's avatar
      Merge tag 'soc-drivers-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 14a60290
      Linus Torvalds authored
      Pull SoC driver updates from Arnd Bergmann:
       "As usual, these are updates for drivers that are specific to certain
        SoCs or firmware running on them.
      
        Notable updates include
      
         - The new STMicroelectronics STM32 "firewall" bus driver that is used
           to provide a barrier between different parts of an SoC
      
         - Lots of updates for the Qualcomm platform drivers, in particular
           SCM, which gets a rewrite of its initialization code
      
         - Firmware driver updates for Arm FF-A notification interrupts and
           indirect messaging, SCMI firmware support for pin control and
           vendor specific interfaces, and TEE firmware interface changes
           across multiple TEE drivers
      
         - A larger cleanup of the Mediatek CMDQ driver and some related bits
      
         - Kconfig changes for riscv drivers to prepare for adding Kanaan k230
           support
      
         - Multiple minor updates for the TI sysc bus driver, memory
           controllers, hisilicon hccs and more"
      
      * tag 'soc-drivers-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (103 commits)
        firmware: qcom: uefisecapp: Allow on sc8180x Primus and Flex 5G
        soc: qcom: pmic_glink: Make client-lock non-sleeping
        dt-bindings: soc: qcom,wcnss: fix bluetooth address example
        soc/tegra: pmc: Add EQOS wake event for Tegra194 and Tegra234
        bus: stm32_firewall: fix off by one in stm32_firewall_get_firewall()
        bus: etzpc: introduce ETZPC firewall controller driver
        firmware: arm_ffa: Avoid queuing work when running on the worker queue
        bus: ti-sysc: Drop legacy idle quirk handling
        bus: ti-sysc: Drop legacy quirk handling for smartreflex
        bus: ti-sysc: Drop legacy quirk handling for uarts
        bus: ti-sysc: Add a description and copyrights
        bus: ti-sysc: Move check for no-reset-on-init
        soc: hisilicon: kunpeng_hccs: replace MAILBOX dependency with PCC
        soc: hisilicon: kunpeng_hccs: Add the check for obtaining complete port attribute
        firmware: arm_ffa: Fix memory corruption in ffa_msg_send2()
        bus: rifsc: introduce RIFSC firewall controller driver
        of: property: fw_devlink: Add support for "access-controller"
        soc: mediatek: mtk-socinfo: Correct the marketing name for MT8188GV
        soc: mediatek: mtk-socinfo: Add entry for MT8395AV/ZA Genio 1200
        soc: mediatek: mtk-mutex: Add support for MT8188 VPPSYS
        ...
      14a60290
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 6c60000f
      Linus Torvalds authored
      Pull SoC devicetree updates from Arnd Bergmann:
       "The updates this time are a bit smaller than most times, mainly
        because it is not totally dominated by new Qualcomm hardware support.
      
        Instead, we larger than average updates for Rockchips, NXP, Allwinner
        and TI. The only two new SoCs this time are both from NXP and are
        minor variants of already supported ones.
      
        The updates for aspeed, amlogic and mediatek came a little late, so
        I'm saving those for part 2 in a few days if everything turns out
        fine.
      
        New machines this time contain:
      
         - two Broadcom SoC based wireless routers from Asus
      
         - Five allwinner based consumer devices for gaming, set-top-box and
           eboot reader applications
      
         - Three older phones based on Qualcomm chips, plus the more recent
           Sony Xperia 1 V
      
         - 14 industrial and embedded boards based on NXP i.MX6, i.MX8,
           layerscape and s32g3 SoCs
      
         - six rockchips boards including another handheld game console and a
           few single-board computers
      
        On top of these, we have the usual cleanups for dtc warnings and
        updates to add more features to already merged machines"
      
      * tag 'soc-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (612 commits)
        arm64: dts: marvell: espressobin-ultra: fix Ethernet Switch unit address
        arm64: dts: marvell: turris-mox: drop unneeded flash address/size-cells
        arm64: dts: marvell: eDPU: drop redundant address/size-cells
        arm64: dts: qcom: pm6150: correct USB VBUS regulator compatible
        arm64: dts: rockchip: add rk3588 pcie and php IOMMUs
        arm64: dts: rockchip: enable onboard spi flash for rock-3a
        arm64: dts: rockchip: add USB-C support to rk3588s-orangepi-5
        arm64: dts: rockchip: Enable GPU on Orange Pi 5
        arm64: dts: rockchip: enable GPU on khadas-edge2
        arm64: dts: rockchip: Add USB3 on Edgeble NCM6A-IO board
        arm64: dts: rockchip: Support poweroff on Edgeble Neural Compute Module
        arm64: dts: rockchip: Add Radxa ROCK 3C
        dt-bindings: arm: rockchip: add Radxa ROCK 3C
        arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
        arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
        arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
        arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
        arm64: dts: Add/fix /memory node unit-addresses
        arm64: dts: qcom: qcs404: fix bluetooth device address
        arm64: dts: qcom: sc8280xp-x13s: enable USB MP and fingerprint reader
        ...
      6c60000f
    • Linus Torvalds's avatar
      Merge tag 's390-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · d65e1a0f
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Store AP Query Configuration Information in a static buffer
      
       - Rework the AP initialization and add missing cleanups to the error
         path
      
       - Swap IRQ and AP bus/device registration to avoid race conditions
      
       - Export prot_virt_guest symbol
      
       - Introduce AP configuration changes notifier interface to facilitate
         modularization of the AP bus
      
       - Add CONFIG_AP kernel configuration option to allow modularization of
         the AP bus
      
       - Rework CONFIG_ZCRYPT_DEBUG kernel configuration option description
         and dependency and rename it to CONFIG_AP_DEBUG
      
       - Convert sprintf() and snprintf() to sysfs_emit() in CIO code
      
       - Adjust indentation of RELOCS command build step
      
       - Make crypto performance counters upward compatible
      
       - Convert make_page_secure() and gmap_make_secure() to use folio
      
       - Rework channel-utilization-block (CUB) handling in preparation of
         introducing additional CUBs
      
       - Use attribute groups to simplify registration, removal and extension
         of measurement-related channel-path sysfs attributes
      
       - Add a per-channel-path binary "ext_measurement" sysfs attribute that
         provides access to extended channel-path measurement data
      
       - Export measurement data for all channel-measurement-groups (CMG), not
         only for a specific ones. This enables support of new CMG data
         formats in userspace without the need for kernel changes
      
       - Add a per-channel-path sysfs attribute "speed_bps" that provides the
         operating speed in bits per second or 0 if the operating speed is not
         available
      
       - The CIO tracepoint subchannel-type field "st" is incorrectly set to
         the value of subchannel-enabled SCHIB "ena" field. Fix that
      
       - Do not forcefully limit vmemmap starting address to MAX_PHYSMEM_BITS
      
       - Consider the maximum physical address available to a DCSS segment
         (512GB) when memory layout is set up
      
       - Simplify the virtual memory layout setup by reducing the size of
         identity mapping vs vmemmap overlap
      
       - Swap vmalloc and Lowcore/Real Memory Copy areas in virtual memory.
         This will allow to place the kernel image next to kernel modules
      
       - Move everyting KASLR related from <asm/setup.h> to <asm/page.h>
      
       - Put virtual memory layout information into a structure to improve
         code generation
      
       - Currently __kaslr_offset is the kernel offset in both physical and
         virtual memory spaces. Uncouple these offsets to allow uncoupling of
         the addresses spaces
      
       - Currently the identity mapping base address is implicit and is always
         set to zero. Make it explicit by putting into __identity_base
         persistent boot variable and use it in proper context
      
       - Introduce .amode31 section start and end macros AMODE31_START and
         AMODE31_END
      
       - Introduce OS_INFO entries that do not reference any data in memory,
         but rather provide only values
      
       - Store virtual memory layout in OS_INFO. It is read out by
         makedumpfile, crash and other tools
      
       - Store virtual memory layout in VMCORE_INFO. It is read out by crash
         and other tools when /proc/kcore device is used
      
       - Create additional PT_LOAD ELF program header that covers kernel image
         only, so that vmcore tools could locate kernel text and data when
         virtual and physical memory spaces are uncoupled
      
       - Uncouple physical and virtual address spaces
      
       - Map kernel at fixed location when KASLR mode is disabled. The
         location is defined by CONFIG_KERNEL_IMAGE_BASE kernel configuration
         value.
      
       - Rework deployment of kernel image for both compressed and
         uncompressed variants as defined by CONFIG_KERNEL_UNCOMPRESSED kernel
         configuration value
      
       - Move .vmlinux.relocs section in front of the compressed kernel. The
         interim section rescue step is avoided as result
      
       - Correct modules thunk offset calculation when branch target is more
         than 2GB away
      
       - Kernel modules contain their own set of expoline thunks. Now that the
         kernel modules area is less than 4GB away from kernel expoline
         thunks, make modules use kernel expolines. Also make EXPOLINE_EXTERN
         the default if the compiler supports it
      
       - userfaultfd can insert shared zeropages into processes running VMs,
         but that is not allowed for s390. Fallback to allocating a fresh
         zeroed anonymous folio and insert that instead
      
       - Re-enable shared zeropages for non-PV and non-skeys KVM guests
      
       - Rename hex2bitmap() to ap_hex2bitmap() and export it for external use
      
       - Add ap_config sysfs attribute to provide the means for setting or
         displaying adapters, domains and control domains assigned to a
         vfio-ap mediated device in a single operation
      
       - Make vfio_ap_mdev_link_queue() ignore duplicate link requests
      
       - Add write support to ap_config sysfs attribute to allow atomic update
         a vfio-ap mediated device state
      
       - Document ap_config sysfs attribute
      
       - Function os_info_old_init() is expected to be called only from a
         regular kdump kernel. Enable it to be called from a stand-alone dump
         kernel
      
       - Address gcc -Warray-bounds warning and fix array size in struct
         os_info
      
       - s390 does not support SMBIOS, so drop unneeded CONFIG_DMI checks
      
       - Use unwinder instead of __builtin_return_address() with ftrace to
         prevent returning of undefined values
      
       - Sections .hash and .gnu.hash are only created when CONFIG_PIE_BUILD
         kernel is enabled. Drop these for the case CONFIG_PIE_BUILD is
         disabled
      
       - Compile kernel with -fPIC and link with -no-pie to allow kpatch
         feature always succeed and drop the whole CONFIG_PIE_BUILD
         option-enabled code
      
       - Add missing virt_to_phys() converter for VSIE facility and crypto
         control blocks
      
      * tag 's390-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (54 commits)
        Revert "s390: Relocate vmlinux ELF data to virtual address space"
        KVM: s390: vsie: Use virt_to_phys for crypto control block
        s390: Relocate vmlinux ELF data to virtual address space
        s390: Compile kernel with -fPIC and link with -no-pie
        s390: vmlinux.lds.S: Drop .hash and .gnu.hash for !CONFIG_PIE_BUILD
        s390/ftrace: Use unwinder instead of __builtin_return_address()
        s390/pci: Drop unneeded reference to CONFIG_DMI
        s390/os_info: Fix array size in struct os_info
        s390/os_info: Initialize old os_info in standalone dump kernel
        docs: Update s390 vfio-ap doc for ap_config sysfs attribute
        s390/vfio-ap: Add write support to sysfs attr ap_config
        s390/vfio-ap: Ignore duplicate link requests in vfio_ap_mdev_link_queue
        s390/vfio-ap: Add sysfs attr, ap_config, to export mdev state
        s390/ap: Externalize AP bus specific bitmap reading function
        s390/mm: Re-enable the shared zeropage for !PV and !skeys KVM guests
        mm/userfaultfd: Do not place zeropages when zeropages are disallowed
        s390/expoline: Make modules use kernel expolines
        s390/nospec: Correct modules thunk offset calculation
        s390/boot: Do not rescue .vmlinux.relocs section
        s390/boot: Rework deployment of the kernel image
        ...
      d65e1a0f
  2. 12 May, 2024 5 commits
  3. 11 May, 2024 11 commits
  4. 10 May, 2024 15 commits