1. 02 Nov, 2023 17 commits
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 91a683cd
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This set of patches has some minor fixes for message handling, some
        misc cleanups, and updates the maintainers entry"
      
      * tag 'dlm-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        MAINTAINERS: Update dlm maintainer and web page
        dlm: slow down filling up processing queue
        dlm: fix no ack after final message
        dlm: be sure we reset all nodes at forced shutdown
        dlm: fix remove member after close call
        dlm: fix creating multiple node structures
        fs: dlm: Remove some useless memset()
        fs: dlm: Fix the size of a buffer in dlm_create_debug_file()
        fs: dlm: Simplify buffer size computation in dlm_create_debug_file()
      91a683cd
    • Andrea Righi's avatar
      module/decompress: use kvmalloc() consistently · 17fc8084
      Andrea Righi authored
      We consistently switched from kmalloc() to vmalloc() in module
      decompression to prevent potential memory allocation failures with large
      modules, however vmalloc() is not as memory-efficient and fast as
      kmalloc().
      
      Since we don't know in general the size of the workspace required by the
      decompression algorithm, it is more reasonable to use kvmalloc()
      consistently, also considering that we don't have special memory
      requirements here.
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Tested-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Signed-off-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17fc8084
    • Linus Torvalds's avatar
      Merge tag 'integrity-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · ca219be0
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "Four integrity changes: two IMA-overlay updates, an integrity Kconfig
        cleanup, and a secondary keyring update"
      
      * tag 'integrity-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        ima: detect changes to the backing overlay file
        certs: Only allow certs signed by keys on the builtin keyring
        integrity: fix indentation of config attributes
        ima: annotate iint mutex to avoid lockdep false positive warnings
      ca219be0
    • Linus Torvalds's avatar
      Merge tag 'modules-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 21e80f38
      Linus Torvalds authored
      Pull modules updates from Luis Chamberlain:
       "The only thing worth highligthing is that gzip moves to use vmalloc()
        instead of kmalloc just as we had a fix for this for zstd on v6.6-rc1.
      
        The rest is regular house keeping, keeping things neat, tidy, and
        boring"
      
      [ The kmalloc -> vmalloc conversion is not the right approach.
      
        Unless you know you need huge areas or know you need to use virtual
        mappings for some reason (playing with protection bits or whatever),
        you should use kvmalloc()/kvfree, which automatically picks the right
        allocation model    - Linus ]
      
      * tag 'modules-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        module: Annotate struct module_notes_attrs with __counted_by
        module: Fix comment typo
        module: Make is_valid_name() return bool
        module: Make is_mapping_symbol() return bool
        module/decompress: use vmalloc() for gzip decompression workspace
        MAINTAINERS: add include/linux/module*.h to modules
        module: Clarify documentation of module_param_call()
      21e80f38
    • Linus Torvalds's avatar
      Merge tag 'sysctl-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 426ee519
      Linus Torvalds authored
      Pull sysctl updates from Luis Chamberlain:
       "To help make the move of sysctls out of kernel/sysctl.c not incur a
        size penalty sysctl has been changed to allow us to not require the
        sentinel, the final empty element on the sysctl array. Joel Granados
        has been doing all this work. On the v6.6 kernel we got the major
        infrastructure changes required to support this. For v6.7-rc1 we have
        all arch/ and drivers/ modified to remove the sentinel. Both arch and
        driver changes have been on linux-next for a bit less than a month. It
        is worth re-iterating the value:
      
         - this helps reduce the overall build time size of the kernel and run
           time memory consumed by the kernel by about ~64 bytes per array
      
         - the extra 64-byte penalty is no longer inncurred now when we move
           sysctls out from kernel/sysctl.c to their own files
      
        For v6.8-rc1 expect removal of all the sentinels and also then the
        unneeded check for procname == NULL.
      
        The last two patches are fixes recently merged by Krister Johansen
        which allow us again to use softlockup_panic early on boot. This used
        to work but the alias work broke it. This is useful for folks who want
        to detect softlockups super early rather than wait and spend money on
        cloud solutions with nothing but an eventual hung kernel. Although
        this hadn't gone through linux-next it's also a stable fix, so we
        might as well roll through the fixes now"
      
      * tag 'sysctl-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux: (23 commits)
        watchdog: move softlockup_panic back to early_param
        proc: sysctl: prevent aliased sysctls from getting passed to init
        intel drm: Remove now superfluous sentinel element from ctl_table array
        Drivers: hv: Remove now superfluous sentinel element from ctl_table array
        raid: Remove now superfluous sentinel element from ctl_table array
        fw loader: Remove the now superfluous sentinel element from ctl_table array
        sgi-xp: Remove the now superfluous sentinel element from ctl_table array
        vrf: Remove the now superfluous sentinel element from ctl_table array
        char-misc: Remove the now superfluous sentinel element from ctl_table array
        infiniband: Remove the now superfluous sentinel element from ctl_table array
        macintosh: Remove the now superfluous sentinel element from ctl_table array
        parport: Remove the now superfluous sentinel element from ctl_table array
        scsi: Remove now superfluous sentinel element from ctl_table array
        tty: Remove now superfluous sentinel element from ctl_table array
        xen: Remove now superfluous sentinel element from ctl_table array
        hpet: Remove now superfluous sentinel element from ctl_table array
        c-sky: Remove now superfluous sentinel element from ctl_talbe array
        powerpc: Remove now superfluous sentinel element from ctl_table arrays
        riscv: Remove now superfluous sentinel element from ctl_table array
        x86/vdso: Remove now superfluous sentinel element from ctl_table array
        ...
      426ee519
    • Linus Torvalds's avatar
      Merge tag 'docs-6.7' of git://git.lwn.net/linux · babe3939
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "The number of commits for documentation is not huge this time around,
        but there are some significant changes nonetheless:
      
         - Some more Spanish-language and Chinese translations
      
         - The much-discussed documentation of the confidential-computing
           threat model
      
         - Powerpc and RISCV documentation move under Documentation/arch -
           these complete this particular bit of documentation churn
      
         - A large traditional-Chinese documentation update
      
         - A new document on backporting and conflict resolution
      
         - Some kernel-doc and Sphinx fixes
      
        Plus the usual smattering of smaller updates and typo fixes"
      
      * tag 'docs-6.7' of git://git.lwn.net/linux: (40 commits)
        scripts/kernel-doc: Fix the regex for matching -Werror flag
        docs: backporting: address feedback
        Documentation: driver-api: pps: Update PPS generator documentation
        speakup: Document USB support
        doc: blk-ioprio: Bring the doc in line with the implementation
        docs: usb: fix reference to nonexistent file in UVC Gadget
        docs: doc-guide: mention 'make refcheckdocs'
        Documentation: fix typo in dynamic-debug howto
        scripts/kernel-doc: match -Werror flag strictly
        Documentation/sphinx: Remove the repeated word "the" in comments.
        docs: sparse: add SPDX-License-Identifier
        docs/zh_CN: Add subsystem-apis Chinese translation
        docs/zh_TW: update contents for zh_TW
        docs: submitting-patches: encourage direct notifications to commenters
        docs: add backporting and conflict resolution document
        docs: move riscv under arch
        docs: update link to powerpc/vmemmap_dedup.rst
        mm/memory-hotplug: fix typo in documentation
        docs: move powerpc under arch
        PCI: Update the devres documentation regarding to pcim_*()
        ...
      babe3939
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-next-6.7-rc1' of... · 7dc0e9c7
      Linus Torvalds authored
      Merge tag 'linux_kselftest-next-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - kbuild kselftest-merge target fixes
      
       - fixes to several tests
      
       - resctrl test fixes and enhancements
      
       - ksft_perror() helper and reporting improvements
      
       - printf attribute to kselftest prints to improve reporting
      
       - documentation and clang build warning fixes
      
      The bulk of the patches are for resctrl fixes and enhancements.
      
      * tag 'linux_kselftest-next-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (51 commits)
        selftests/resctrl: Fix MBM test failure when MBA unavailable
        selftests/clone3: Report descriptive test names
        selftests:modify the incorrect print format
        selftests/efivarfs: create-read: fix a resource leak
        selftests/ftrace: Add riscv support for kprobe arg tests
        selftests/ftrace: add loongarch support for kprobe args char tests
        selftests/amd-pstate: Added option to provide perf binary path
        selftests/amd-pstate: Fix broken paths to run workloads in amd-pstate-ut
        selftests/resctrl: Move run_benchmark() to a more fitting file
        selftests/resctrl: Fix schemata write error check
        selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests
        selftests/resctrl: Fix feature checks
        selftests/resctrl: Refactor feature check to use resource and feature name
        selftests/resctrl: Move _GNU_SOURCE define into Makefile
        selftests/resctrl: Remove duplicate feature check from CMT test
        selftests/resctrl: Extend signal handler coverage to unmount on receiving signal
        selftests/resctrl: Fix uninitialized .sa_flags
        selftests/resctrl: Cleanup benchmark argument parsing
        selftests/resctrl: Remove ben_count variable
        selftests/resctrl: Make benchmark command const and build it with pointers
        ...
      7dc0e9c7
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-kunit-6.7-rc1' of... · 5eda8f25
      Linus Torvalds authored
      Merge tag 'linux_kselftest-kunit-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kunit updates from Shuah Khan:
      
       - string-stream testing enhancements
      
       - several fixes memory leaks
      
       - fix to reset status during parameter handling
      
      * tag 'linux_kselftest-kunit-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: test: Fix the possible memory leak in executor_test
        kunit: Fix possible memory leak in kunit_filter_suites()
        kunit: Fix the wrong kfree of copy for kunit_filter_suites()
        kunit: Fix missed memory release in kunit_free_suite_set()
        kunit: Reset test status on each param iteration
        kunit: string-stream: Test performance of string_stream
        kunit: Use string_stream for test log
        kunit: string-stream: Add tests for freeing resource-managed string_stream
        kunit: string-stream: Decouple string_stream from kunit
        kunit: string-stream: Add kunit_alloc_string_stream()
        kunit: Don't use a managed alloc in is_literal()
        kunit: string-stream-test: Add cases for string_stream newline appending
        kunit: string-stream: Add option to make all lines end with newline
        kunit: string-stream: Improve testing of string_stream
        kunit: string-stream: Don't create a fragment for empty strings
      5eda8f25
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 463f46e1
      Linus Torvalds authored
      Pull iommufd updates from Jason Gunthorpe:
       "This brings three new iommufd capabilities:
      
         - Dirty tracking for DMA.
      
           AMD/ARM/Intel CPUs can now record if a DMA writes to a page in the
           IOPTEs within the IO page table. This can be used to generate a
           record of what memory is being dirtied by DMA activities during a
           VM migration process. A VMM like qemu will combine the IOMMU dirty
           bits with the CPU's dirty log to determine what memory to transfer.
      
           VFIO already has a DMA dirty tracking framework that requires PCI
           devices to implement tracking HW internally. The iommufd version
           provides an alternative that the VMM can select, if available. The
           two are designed to have very similar APIs.
      
         - Userspace controlled attributes for hardware page tables
           (HWPT/iommu_domain). There are currently a few generic attributes
           for HWPTs (support dirty tracking, and parent of a nest). This is
           an entry point for the userspace iommu driver to control the HW in
           detail.
      
         - Nested translation support for HWPTs. This is a 2D translation
           scheme similar to the CPU where a DMA goes through a first stage to
           determine an intermediate address which is then translated trough a
           second stage to a physical address.
      
           Like for CPU translation the first stage table would exist in VM
           controlled memory and the second stage is in the kernel and matches
           the VM's guest to physical map.
      
           As every IOMMU has a unique set of parameter to describe the S1 IO
           page table and its associated parameters the userspace IOMMU driver
           has to marshal the information into the correct format.
      
           This is 1/3 of the feature, it allows creating the nested
           translation and binding it to VFIO devices, however the API to
           support IOTLB and ATC invalidation of the stage 1 io page table,
           and forwarding of IO faults are still in progress.
      
        The series includes AMD and Intel support for dirty tracking. Intel
        support for nested translation.
      
        Along the way are a number of internal items:
      
         - New iommu core items: ops->domain_alloc_user(),
           ops->set_dirty_tracking, ops->read_and_clear_dirty(),
           IOMMU_DOMAIN_NESTED, and iommu_copy_struct_from_user
      
         - UAF fix in iopt_area_split()
      
         - Spelling fixes and some test suite improvement"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd: (52 commits)
        iommufd: Organize the mock domain alloc functions closer to Joerg's tree
        iommufd/selftest: Fix page-size check in iommufd_test_dirty()
        iommufd: Add iopt_area_alloc()
        iommufd: Fix missing update of domains_itree after splitting iopt_area
        iommu/vt-d: Disallow read-only mappings to nest parent domain
        iommu/vt-d: Add nested domain allocation
        iommu/vt-d: Set the nested domain to a device
        iommu/vt-d: Make domain attach helpers to be extern
        iommu/vt-d: Add helper to setup pasid nested translation
        iommu/vt-d: Add helper for nested domain allocation
        iommu/vt-d: Extend dmar_domain to support nested domain
        iommufd: Add data structure for Intel VT-d stage-1 domain allocation
        iommu/vt-d: Enhance capability check for nested parent domain allocation
        iommufd/selftest: Add coverage for IOMMU_HWPT_ALLOC with nested HWPTs
        iommufd/selftest: Add nested domain allocation for mock domain
        iommu: Add iommu_copy_struct_from_user helper
        iommufd: Add a nested HW pagetable object
        iommu: Pass in parent domain with user_data to domain_alloc_user op
        iommufd: Share iommufd_hwpt_alloc with IOMMUFD_OBJ_HWPT_NESTED
        iommufd: Derive iommufd_hwpt_paging from iommufd_hw_pagetable
        ...
      463f46e1
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.7-followup' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · ff269e2c
      Linus Torvalds authored
      Pull more networking updates from Jakub Kicinski:
      
       - Support GRO decapsulation for IPsec ESP in UDP
      
       - Add a handful of MODULE_DESCRIPTION()s
      
       - Drop questionable alignment check in TCP AO to avoid
         build issue after changes in the crypto tree
      
      * tag 'net-next-6.7-followup' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next:
        net: tcp: remove call to obsolete crypto_ahash_alignmask()
        net: fill in MODULE_DESCRIPTION()s under drivers/net/
        net: fill in MODULE_DESCRIPTION()s under net/802*
        net: fill in MODULE_DESCRIPTION()s under net/core
        net: fill in MODULE_DESCRIPTION()s in kuba@'s modules
        xfrm: policy: fix layer 4 flowi decoding
        xfrm Fix use after free in __xfrm6_udp_encap_rcv.
        xfrm: policy: replace session decode with flow dissector
        xfrm: move mark and oif flowi decode into common code
        xfrm: pass struct net to xfrm_decode_session wrappers
        xfrm: Support GRO for IPv6 ESP in UDP encapsulation
        xfrm: Support GRO for IPv4 ESP in UDP encapsulation
        xfrm: Use the XFRM_GRO to indicate a GRO call on input
        xfrm: Annotate struct xfrm_sec_ctx with __counted_by
        xfrm: Remove unused function declarations
      ff269e2c
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 05bf73aa
      Linus Torvalds authored
      Pull probes updates from Masami Hiramatsu:
       "Cleanups:
      
         - kprobes: Fixes typo in kprobes samples
      
         - tracing/eprobes: Remove 'break' after return
      
        kretprobe/fprobe performance improvements:
      
         - lib: Introduce new `objpool`, which is a high performance lockless
           object queue. This uses per-cpu ring array to allocate/release
           objects from the pre-allocated object pool.
      
           Since the index of ring array is a 32bit sequential counter, we can
           retry to push/pop the object pointer from the ring without lock (as
           seq-lock does)
      
         - lib: Add an objpool test module to test the functionality and
           evaluate the performance under some circumstances
      
         - kprobes/fprobe: Improve kretprobe and rethook scalability
           performance with objpool.
      
           This improves both legacy kretprobe and fprobe exit handler (which
           is based on rethook) to be scalable on SMP systems. Even with
           8-threads parallel test, it shows a great scalability improvement
      
         - Remove unneeded freelist.h which is replaced by objpool
      
         - objpool: Add maintainers entry for the objpool
      
         - objpool: Fix to remove unused include header lines"
      
      * tag 'probes-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        kprobes: unused header files removed
        MAINTAINERS: objpool added
        kprobes: freelist.h removed
        kprobes: kretprobe scalability improvement
        lib: objpool test module added
        lib: objpool added: ring-array based lockless MPMC
        tracing/eprobe: drop unneeded breaks
        samples: kprobes: Fixes a typo
      05bf73aa
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 1b10d2c8
      Linus Torvalds authored
      Pull bootconfig updates from Masami Hiramatsu:
      
       - Documentation update for /proc/cmdline, which includes both the
         parameters from bootloader and the embedded parameters in the kernel
      
       - fs/proc: Add bootloader argument as a comment line to
         /proc/bootconfig so that the user can distinguish what parameters
         were passed from bootloader even if bootconfig modified that
      
       - Documentation fix to add /proc/bootconfig to proc.rst
      
      * tag 'bootconfig-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        doc: Add /proc/bootconfig to proc.rst
        fs/proc: Add boot loader arguments as comment to /proc/bootconfig
        doc: Update /proc/cmdline documentation to include boot config
      1b10d2c8
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 1e0c505e
      Linus Torvalds authored
      Pull ia64 removal and asm-generic updates from Arnd Bergmann:
      
       - The ia64 architecture gets its well-earned retirement as planned,
         now that there is one last (mostly) working release that will be
         maintained as an LTS kernel.
      
       - The architecture specific system call tables are updated for the
         added map_shadow_stack() syscall and to remove references to the
         long-gone sys_lookup_dcookie() syscall.
      
      * tag 'asm-generic-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        hexagon: Remove unusable symbols from the ptrace.h uapi
        asm-generic: Fix spelling of architecture
        arch: Reserve map_shadow_stack() syscall number for all architectures
        syscalls: Cleanup references to sys_lookup_dcookie()
        Documentation: Drop or replace remaining mentions of IA64
        lib/raid6: Drop IA64 support
        Documentation: Drop IA64 from feature descriptions
        kernel: Drop IA64 support from sig_fault handlers
        arch: Remove Itanium (IA-64) architecture
      1e0c505e
    • Linus Torvalds's avatar
      Merge tag 'soc-arm-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 4684e928
      Linus Torvalds authored
      Pull ARM SoC code updates from Arnd Bergmann:
       "The AMD Pensando DPU platform gets added to arm64, and some minor
        updates make it into Renesas' 32-bit platforms"
      
      * tag 'soc-arm-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        arm: debug: reuse the config DEBUG_OMAP2UART{1,2} for OMAP{3,4,5}
        arm64: Add config for AMD Pensando SoC platforms
        MAINTAINERS: Add entry for AMD PENSANDO
        ARM: shmobile: sh73a0: Reserve boot area when SMP is enabled
        ARM: shmobile: r8a7779: Reserve boot area when SMP is enabled
        ARM: shmobile: rcar-gen2: Reserve boot area when SMP is enabled
        ARM: shmobile: rcar-gen2: Remove unneeded once handling
      4684e928
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · a39ba9b4
      Linus Torvalds authored
      Pull ARM defconfig updates from Arnd Bergmann:
       "These are the usual trivial changes to enable a couple of newly added
        device drivers and remove lines for Kconfig options that are no longer
        needed"
      
      * tag 'soc-defconfig-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
        arm64: defconfig: enable DisplayPort altmode support
        arm64: defconfig: enable CONFIG_TYPEC_QCOM_PMIC
        arm64: defconfig: add various drivers for Amlogic based boards
        ARM: config: aspeed: Remove FIRMWARE_MEMMAP
        ARM: config: aspeed_g5: Enable SSIF BMC driver
        ARM: config: aspeed: Add Ampere SMPro drivers
        ARM: config: aspeed: Add new FSI drivers
        arm64: defconfig: Enable TPS6593 PMIC for SK-AM62A
        ARM: exynos_defconfig: add driver for ISL29018
        ARM: multi_v7_defconfig: add drivers for S5C73M3 & S5K6A3 camera sensors
        arm64: defconfig: Enable RZ/G3S (R9A08G045) SoC
        ARM: multi_v7_defconfig: add tm2-touchkey driver
        ARM: exynos_defconfig: replace SATA_AHCI_PLATFORM with AHCI_DWC driver
        ARM: multi_v7_defconfig: add AHCI_DWC driver
        ARM: multi_v7_defconfig: make Exynos related PHYs modules
        ARM: s5pv210_defconfig: enable IIO required by MAX17040
        ARM: shmobile: defconfig: Refresh for v6.6-rc3
        ARM: defconfig: cleanup orphaned CONFIGs
        arm64: defconfig: Enable Samsung DSIM driver
        arm64: defconfig: Enable CONFIG_USB_MASS_STORAGE
        ...
      a39ba9b4
    • Linus Torvalds's avatar
      Merge tag 'soc-drivers-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 385903a7
      Linus Torvalds authored
      Pull SoC driver updates from Arnd Bergmann:
       "The highlights for the driver support this time are
      
         - Qualcomm platforms gain support for the Qualcomm Secure Execution
           Environment firmware interface to access EFI variables on certain
           devices, and new features for multiple platform and firmware
           drivers.
      
         - Arm FF-A firmware support gains support for v1.1 specification
           features, in particular notification and memory transaction
           descriptor changes.
      
         - SCMI firmware support now support v3.2 features for clock and DVFS
           configuration and a new transport for Qualcomm platforms.
      
         - Minor cleanups and bugfixes are added to pretty much all the active
           platforms: qualcomm, broadcom, dove, ti-k3, rockchip, sifive,
           amlogic, atmel, tegra, aspeed, vexpress, mediatek, samsung and
           more.
      
           In particular, this contains portions of the treewide conversion to
           use __counted_by annotations and the device_get_match_data helper"
      
      * tag 'soc-drivers-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (156 commits)
        soc: qcom: pmic_glink_altmode: Print return value on error
        firmware: qcom: scm: remove unneeded 'extern' specifiers
        firmware: qcom: scm: add a missing forward declaration for struct device
        firmware: qcom: move Qualcomm code into its own directory
        soc: samsung: exynos-chipid: Convert to platform remove callback returning void
        soc: qcom: apr: Add __counted_by for struct apr_rx_buf and use struct_size()
        soc: qcom: pmic_glink: fix connector type to be DisplayPort
        soc: ti: k3-socinfo: Avoid overriding return value
        soc: ti: k3-socinfo: Fix typo in bitfield documentation
        soc: ti: knav_qmss_queue: Use device_get_match_data()
        firmware: ti_sci: Use device_get_match_data()
        firmware: qcom: qseecom: add missing include guards
        soc/pxa: ssp: Convert to platform remove callback returning void
        soc/mediatek: mtk-mmsys: Convert to platform remove callback returning void
        soc/mediatek: mtk-devapc: Convert to platform remove callback returning void
        soc/loongson: loongson2_guts: Convert to platform remove callback returning void
        soc/litex: litex_soc_ctrl: Convert to platform remove callback returning void
        soc/ixp4xx: ixp4xx-qmgr: Convert to platform remove callback returning void
        soc/ixp4xx: ixp4xx-npe: Convert to platform remove callback returning void
        soc/hisilicon: kunpeng_hccs: Convert to platform remove callback returning void
        ...
      385903a7
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · c035f026
      Linus Torvalds authored
      Pull SoC DT updates from Arnd Bergmann:
       "There are a couple new SoCs that are supported for the first time:
      
         - AMD Pensando Elba is a data processing unit based on Cortex-A72 CPU
           cores
      
         - Sophgo makes RISC-V based chips, and we now support the CV1800B
           chip used in the milkv-duo board and the massive sg2042 chip in the
           milkv-pioneer, a 64-core developer workstation.
      
         - Qualcomm Snapdragon 720G (sm7125) is a close relative of Snapdragon
           7c and gets added with some Xiaomi phones
      
         - Renesas gains support for the R8A779F4 (R-Car S4-8) automotive SoC
           and the RZ/G3S (R9A08G045) embedded SoC.
      
        There are also a bunch of newly supported machines that use already
        supported chips. On the 32-bit side, we have:
      
         - USRobotics USR8200 is a NAS/Firewall/router based on the ancient
           Intel IXP4xx platform
      
         - A couple of machines based on the NXP i.MX5 and i.MX6 platforms
      
         - One machine each for Allwinner V3s, Aspeed AST2600, Microchip
           sama5d29 and ST STM32mp157
      
        The other ones all use arm64 cores on chips from allwinner, amlogic,
        freescale, mediatek, qualcomm and rockchip"
      
      * tag 'soc-dt-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (641 commits)
        ARM: dts: BCM5301X: Set switch ports for Linksys EA9200
        ARM: dts: BCM5301X: Set fixed-link for extra Netgear R8000 CPU ports
        ARM: dts: BCM5301X: Explicitly disable unused switch CPU ports
        ARM: dts: BCM5301X: Relicense Vivek's code to the GPL 2.0+ / MIT
        ARM: dts: BCM5301X: Relicense Felix's code to the GPL 2.0+ / MIT
        ARM: dts: BCM5301X: Set MAC address for Asus RT-AC87U
        arm64: dts: socionext: add missing cache properties
        riscv: dts: thead: convert isa detection to new properties
        arm64: dts: Update cache properties for socionext
        arm64: dts: ti: k3-am654-idk: Add ICSSG Ethernet ports
        arm64: dts: ti: k3-am654-icssg2: add ICSSG2 Ethernet support
        arm64: dts: ti: k3-am65-main: Add ICSSG IEP nodes
        arm64: dts: ti: k3-am62p5-sk: Updates for SK EVM
        arm64: dts: ti: k3-am62p: Add nodes for more IPs
        arm64: dts: rockchip: Add Turing RK1 SoM support
        dt-bindings: arm: rockchip: Add Turing RK1
        dt-bindings: vendor-prefixes: add turing
        arm64: dts: rockchip: Add DFI to rk3588s
        arm64: dts: rockchip: Add DFI to rk356x
        arm64: dts: rockchip: Always enable DFI on rk3399
        ...
      c035f026
  2. 01 Nov, 2023 23 commits
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.7-rc1' of https://github.com/awilliam/linux-vfio · deefd502
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Add support for "chunk mode" in the mlx5-vfio-pci variant driver,
         which allows both larger device image sizes for migration, beyond the
         previous 4GB limit, and also read-ahead support for improved
         migration performance (Yishai Hadas)
      
       - A new bus master control interface for the CDX bus driver where there
         is no in-band mechanism to toggle device DMA as there is through
         config space on PCI devices (Nipun Gupta)
      
       - Add explicit alignment directives to vfio data structures to reduce
         the chance of breaking 32-bit userspace. In most cases this is
         transparent and the remaining cases where data structures are padded
         work within the existing rules for extending data structures within
         vfio (Stefan Hajnoczi)
      
       - Resolve a bug in the cdx bus driver noted when compiled with clang
         where missing parenthesis result in the wrong operation (Nathan
         Chancellor)
      
       - Resolve errors reported by smatch for a function when dealing with
         invalid inputs (Alex Williamson)
      
       - Add migration support to the mtty vfio/mdev sample driver for testing
         and integration purposes, allowing CI of migration without specific
         hardware requirements. Also resolve many of the short- comings of
         this driver relative to implementation of the vfio interrupt ioctl
         along the way (Alex Williamson)
      
      * tag 'vfio-v6.7-rc1' of https://github.com/awilliam/linux-vfio:
        vfio/mtty: Enable migration support
        vfio/mtty: Overhaul mtty interrupt handling
        vfio: Fix smatch errors in vfio_combine_iova_ranges()
        vfio/cdx: Add parentheses between bitwise AND expression and logical NOT
        vfio/mlx5: Activate the chunk mode functionality
        vfio/mlx5: Add support for READING in chunk mode
        vfio/mlx5: Add support for SAVING in chunk mode
        vfio/mlx5: Pre-allocate chunks for the STOP_COPY phase
        vfio/mlx5: Rename some stuff to match chunk mode
        vfio/mlx5: Enable querying state size which is > 4GB
        vfio/mlx5: Refactor the SAVE callback to activate a work only upon an error
        vfio/mlx5: Wake up the reader post of disabling the SAVING migration file
        vfio: use __aligned_u64 in struct vfio_device_ioeventfd
        vfio: use __aligned_u64 in struct vfio_device_gfx_plane_info
        vfio: trivially use __aligned_u64 for ioctl structs
        vfio-cdx: add bus mastering device feature support
        vfio: add bus master feature to device feature ioctl
        cdx: add support for bus mastering
      deefd502
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.7-2023-10-30' of git://git.infradead.org/users/hch/dma-mapping · 009fbfc9
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - get rid of the fake support for coherent DMA allocation on coldfire
         with caches (Christoph Hellwig)
      
       - add a few Kconfig dependencies so that Kconfig catches the use of
         invalid configurations (Christoph Hellwig)
      
       - fix a type in dma-debug output (Chuck Lever)
      
       - rewrite a comment in swiotlb (Sean Christopherson)
      
      * tag 'dma-mapping-6.7-2023-10-30' of git://git.infradead.org/users/hch/dma-mapping:
        dma-debug: Fix a typo in a debugging eye-catcher
        swiotlb: rewrite comment explaining why the source is preserved on DMA_FROM_DEVICE
        m68k: remove unused includes from dma.c
        m68k: don't provide arch_dma_alloc for nommu/coldfire
        net: fec: use dma_alloc_noncoherent for data cache enabled coldfire
        m68k: use the coherent DMA code for coldfire without data cache
        dma-direct: warn when coherent allocations aren't supported
        dma-direct: simplify the use atomic pool logic in dma_direct_alloc
        dma-direct: add a CONFIG_ARCH_HAS_DMA_ALLOC symbol
        dma-direct: add dependencies to CONFIG_DMA_GLOBAL_POOL
      009fbfc9
    • Linus Torvalds's avatar
      Merge tag 'pmdomain-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm · 3c86a44d
      Linus Torvalds authored
      Pull pmdomain updates from Ulf Hansson:
      
       - Move Kconfig files into the pmdomain subsystem
      
       - Drop use of genpd's redundant ->opp_to_performance_state() callback
      
       - amlogic:
          - Add support for the T7 power-domains controller
          - Fix mask for the second NNA mem power-domain
      
       - bcm: Fixup ASB register read and comparison for bcm2835-power
      
       - imx: Fix device link problem for consumers of the pgc power-domain
      
       - mediatek: Add support for the MT8365 power domains
      
       - qcom:
          - Add support for the rpmhpds for SC8380XP power-domains
          - Add support for the rpmhpds for SM8650 power-domains
          - Add support for the rpmhpd clocks for SM7150
          - Add support for the rpmpds for MSM8917 (families) power-domains
      
       - starfive: Add support for the JH7110 AON PMU
      
      * tag 'pmdomain-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (56 commits)
        pmdomain: amlogic: Fix mask for the second NNA mem PD domain
        pmdomain: qcom: rpmhpd: Add SC8380XP power domains
        pmdomain: qcom: rpmhpd: Add SM8650 RPMh Power Domains
        dt-bindings: power: rpmpd: Add SC8380XP support
        dt-bindings: power: qcom,rpmhpd: Add GMXC PD index
        dt-bindings: power: qcom,rpmpd: document the SM8650 RPMh Power Domains
        pmdomain: imx: Make imx pgc power domain also set the fwnode
        pmdomain: qcom: rpmpd: Add QM215 power domains
        pmdomain: qcom: rpmpd: Add MSM8917 power domains
        dt-bindings: power: rpmpd: Add MSM8917, MSM8937 and QM215
        pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable
        pmdomain: qcom: rpmhpd: Drop the ->opp_to_performance_state() callback
        pmdomain: qcom: rpmpd: Drop the ->opp_to_performance_state() callback
        pmdomain: qcom: cpr: Drop the ->opp_to_performance_state() callback
        pmdomain: Use device_get_match_data()
        pmdomain: ti: add missing of_node_put
        pmdomain: mediatek: Add support for MT8365
        pmdomain: mediatek: Add support for MTK_SCPD_STRICT_BUS_PROTECTION cap
        pmdomain: mediatek: Add support for WAY_EN operations
        pmdomain: mediatek: Unify configuration for infracfg and smi
        ...
      3c86a44d
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 40aa597c
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
      " MMC core:
         - Enable host caps to be modified via debugfs to test speed-modes
         - Improve random I/O writes for 4k buffers for hsq enabled hosts
      
        MMC host:
         - atmel-mci/sdhci-of-at91: Aubin Constans takes over as maintainer
         - dw_mmc-starfive: Re-work tuning support
         - meson-gx: Fix bogus IRQ when using CMD_CFG_ERROR
         - mmci: Use peripheral flow control for the STM32 variant
         - renesas,sdhi: Add support for the RZ/G3S variant
         - sdhci-esdhc-imx: Optimize the manual tuning logic
         - sdhci-msm: Add support for the SM8650 variant
         - sdhci-npcm: Add driver to support the Nuvoton NPCM BMC variant
         - sdhci-pci-gli: Add workaround to allow GL9750 to enter ASPM L1.2"
      
      * tag 'mmc-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (25 commits)
        dt-bindings: mmc: sdhci-msm: document the SM8650 SDHCI Controller
        mmc: meson-gx: Remove setting of CMD_CFG_ERROR
        MAINTAINERS: mmc: take over as maintainer of MCI & SDHCI MICROCHIP DRIVERS
        mmc: jz4740: Use device_get_match_data()
        mmc: sdhci-npcm: Add NPCM SDHCI driver
        dt-bindings: mmc: npcm,sdhci: Document NPCM SDHCI controller
        mmc: sdhci-pltfm: Make driver OF independent
        mmc: sdhci-pltfm: Drop unnecessary error messages in sdhci_pltfm_init()
        mmc: sdhci-pci: Switch to use acpi_evaluate_dsm_typed()
        mmc: debugfs: Allow host caps to be modified
        mmc: core: Always reselect card type
        mmc: mmci: use peripheral flow control for STM32
        mmc: vub300: replace deprecated strncpy with strscpy
        memstick: jmb38x_ms: Annotate struct jmb38x_ms with __counted_by
        mmc: starfive: Change tuning implementation
        dt-bindings: mmc: starfive: Remove properties from required
        mmc: hsq: Improve random I/O write performance for 4k buffers
        mmc: core: Allow dynamical updates of the number of requests for hsq
        mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2
        dt-bindings: mmc: renesas,sdhi: Document RZ/G3S support
        ...
      40aa597c
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/dm-changes' of... · 0364249d
      Linus Torvalds authored
      Merge tag 'for-6.7/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Update DM core to directly call the map function for both the linear
         and stripe targets; which are provided by DM core
      
       - Various updates to use new safer string functions
      
       - Update DM core to respect REQ_NOWAIT flag in normal bios so that
         memory allocations are always attempted with GFP_NOWAIT
      
       - Add Mikulas Patocka to MAINTAINERS as a DM maintainer!
      
       - Improve DM delay target's handling of short delays (< 50ms) by using
         a kthread to check expiration of IOs rather than timers and a wq
      
       - Update the DM error target so that it works with zoned storage. This
         helps xfstests to provide proper IO error handling coverage when
         testing a filesystem with native zoned storage support
      
       - Update both DM crypt and integrity targets to improve performance by
         using crypto_shash_digest() rather than init+update+final sequence
      
       - Fix DM crypt target by backfilling missing memory allocation
         accounting for compound pages
      
      * tag 'for-6.7/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm crypt: account large pages in cc->n_allocated_pages
        dm integrity: use crypto_shash_digest() in sb_mac()
        dm crypt: use crypto_shash_digest() in crypt_iv_tcw_whitening()
        dm error: Add support for zoned block devices
        dm delay: for short delays, use kthread instead of timers and wq
        MAINTAINERS: add Mikulas Patocka as a DM maintainer
        dm: respect REQ_NOWAIT flag in normal bios issued to DM
        dm: enhance alloc_multiple_bios() to be more versatile
        dm: make __send_duplicate_bios return unsigned int
        dm log userspace: replace deprecated strncpy with strscpy
        dm ioctl: replace deprecated strncpy with strscpy_pad
        dm crypt: replace open-coded kmemdup_nul
        dm cache metadata: replace deprecated strncpy with strscpy
        dm: shortcut the calls to linear_map and stripe_map
      0364249d
    • Linus Torvalds's avatar
      Merge tag 'ata-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 39714efc
      Linus Torvalds authored
      Pull ATA updates from Damien Le Moal:
      
       - Modify the AHCI driver to print the link power management policy used
         on scan, to help with debugging issues (Niklas)
      
       - Add support for the ASM2116 series adapters to the AHCI driver
         (Szuying)
      
       - Prepare libata for the coming gcc and Clang __counted_by attribute
         (Kees)
      
       - Following the recent estensive fixing of libata suspend/resume
         handling, several patches further cleanup and improve disk power
         state management (me)
      
       - Reduce the verbosity of some error messages for non-fatal temporary
         errors, e.g. slow response to device reset when scanning a port, and
         warning messages that are in fact normal, e.g. disabling a device on
         suspend or when removing it (me)
      
       - Cleanup DMA helper functions (me)
      
       - Fix sata_mv drive handling of potential errors durring probe (Ma)
      
       - Cleanup the xgene and imx drivers using the functions
         of_device_get_match_data() and device_get_match_data() (Rob)
      
       - Improve the tegra driver device tree (Rob)
      
      * tag 'ata-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata: (22 commits)
        dt-bindings: ata: tegra: Disallow undefined properties
        ata: libata-core: Improve ata_dev_power_set_active()
        ata: libata-eh: Spinup disk on resume after revalidation
        ata: imx: Use device_get_match_data()
        ata: xgene: Use of_device_get_match_data()
        ata: sata_mv: aspeed: fix value check in mv_platform_probe()
        ata: ahci: Add Intel Alder Lake-P AHCI controller to low power chipsets list
        ata: libata: Cleanup inline DMA helper functions
        ata: libata-eh: Reduce "disable device" message verbosity
        ata: libata-eh: Improve reset error messages
        ata: libata-sata: Improve ata_sas_slave_configure()
        ata: libata-core: Do not resume runtime suspended ports
        ata: libata-core: Do not poweroff runtime suspended ports
        ata: libata-core: Remove ata_port_resume_async()
        ata: libata-core: Remove ata_port_suspend_async()
        ata: libata-core: Detach a port devices on shutdown
        ata: libata-core: Synchronize ata_port_detach() with hotplug
        ata: libata-scsi: Cleanup ata_scsi_start_stop_xlat()
        scsi: Remove scsi device no_start_on_resume flag
        ata: libata: Annotate struct ata_cpr_log with __counted_by
        ...
      39714efc
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/block-2023-10-30' of git://git.kernel.dk/linux · 90d624af
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - Improvements to the queue_rqs() support, and adding null_blk support
         for that as well (Chengming)
      
       - Series improving badblocks support (Coly)
      
       - Key store support for sed-opal (Greg)
      
       - IBM partition string handling improvements (Jan)
      
       - Make number of ublk devices supported configurable (Mike)
      
       - Cancelation improvements for ublk (Ming)
      
       - MD pull requests via Song:
           - Handle timeout in md-cluster, by Denis Plotnikov
           - Cleanup pers->prepare_suspend, by Yu Kuai
           - Rewrite mddev_suspend(), by Yu Kuai
           - Simplify md_seq_ops, by Yu Kuai
           - Reduce unnecessary locking array_state_store(), by Mariusz
             Tkaczyk
           - Make rdev add/remove independent from daemon thread, by Yu Kuai
           - Refactor code around quiesce() and mddev_suspend(), by Yu Kuai
      
       - NVMe pull request via Keith:
           - nvme-auth updates (Mark)
           - nvme-tcp tls (Hannes)
           - nvme-fc annotaions (Kees)
      
       - Misc cleanups and improvements (Jiapeng, Joel)
      
      * tag 'for-6.7/block-2023-10-30' of git://git.kernel.dk/linux: (95 commits)
        block: ublk_drv: Remove unused function
        md: cleanup pers->prepare_suspend()
        nvme-auth: allow mixing of secret and hash lengths
        nvme-auth: use transformed key size to create resp
        nvme-auth: alloc nvme_dhchap_key as single buffer
        nvmet-tcp: use 'spin_lock_bh' for state_lock()
        powerpc/pseries: PLPKS SED Opal keystore support
        block: sed-opal: keystore access for SED Opal keys
        block:sed-opal: SED Opal keystore
        ublk: simplify aborting request
        ublk: replace monitor with cancelable uring_cmd
        ublk: quiesce request queue when aborting queue
        ublk: rename mm_lock as lock
        ublk: move ublk_cancel_dev() out of ub->mutex
        ublk: make sure io cmd handled in submitter task context
        ublk: don't get ublk device reference in ublk_abort_queue()
        ublk: Make ublks_max configurable
        ublk: Limit dev_id/ub_number values
        md-cluster: check for timeout while a new disk adding
        nvme: rework NVME_AUTH Kconfig selection
        ...
      90d624af
    • Linus Torvalds's avatar
      Merge tag 'io_uring-futex-2023-10-30' of git://git.kernel.dk/linux · 4de520f1
      Linus Torvalds authored
      Pull io_uring futex support from Jens Axboe:
       "This adds support for using futexes through io_uring - first futex
        wake and wait, and then the vectored variant of waiting, futex waitv.
      
        For both wait/wake/waitv, we support the bitset variant, as the
        'normal' variants can be easily implemented on top of that.
      
        PI and requeue are not supported through io_uring, just the above
        mentioned parts. This may change in the future, but in the spirit of
        keeping this small (and based on what people have been asking for),
        this is what we currently have.
      
        Wake support is pretty straight forward, most of the thought has gone
        into the wait side to avoid needing to offload wait operations to a
        blocking context. Instead, we rely on the usual callbacks to retry and
        post a completion event, when appropriate.
      
        As far as I can recall, the first request for futex support with
        io_uring came from Andres Freund, working on postgres. His aio rework
        of postgres was one of the early adopters of io_uring, and futex
        support was a natural extension for that. This is relevant from both a
        usability point of view, as well as for effiency and performance. In
        Andres's words, for the former:
      
           Futex wait support in io_uring makes it a lot easier to avoid
           deadlocks in concurrent programs that have their own buffer pool:
           Obviously pages in the application buffer pool have to be locked
           during IO. If the initiator of IO A needs to wait for a held lock
           B, the holder of lock B might wait for the IO A to complete. The
           ability to wait for a lock and IO completions at the same time
           provides an efficient way to avoid such deadlocks
      
        and in terms of effiency, even without unlocking the full potential
        yet, Andres says:
      
           Futex wake support in io_uring is useful because it allows for more
           efficient directed wakeups. For some "locks" postgres has queues
           implemented in userspace, with wakeup logic that cannot easily be
           implemented with FUTEX_WAKE_BITSET on a single "futex word"
           (imagine waiting for journal flushes to have completed up to a
           certain point).
      
           Thus a "lock release" sometimes need to wake up many processes in a
           row. A quick-and-dirty conversion to doing these wakeups via
           io_uring lead to a 3% throughput increase, with 12% fewer context
           switches, albeit in a fairly extreme workload"
      
      * tag 'io_uring-futex-2023-10-30' of git://git.kernel.dk/linux:
        io_uring: add support for vectored futex waits
        futex: make the vectored futex operations available
        futex: make futex_parse_waitv() available as a helper
        futex: add wake_data to struct futex_q
        io_uring: add support for futex wake and wait
        futex: abstract out a __futex_wake_mark() helper
        futex: factor out the futex wake handling
        futex: move FUTEX2_VALID_MASK to futex.h
      4de520f1
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/io_uring-sockopt-2023-10-30' of git://git.kernel.dk/linux · f5277ad1
      Linus Torvalds authored
      Pull io_uring {get,set}sockopt support from Jens Axboe:
       "This adds support for using getsockopt and setsockopt via io_uring.
      
        The main use cases for this is to enable use of direct descriptors,
        rather than first instantiating a normal file descriptor, doing the
        option tweaking needed, then turning it into a direct descriptor. With
        this support, we can avoid needing a regular file descriptor
        completely.
      
        The net and bpf bits have been signed off on their side"
      
      * tag 'for-6.7/io_uring-sockopt-2023-10-30' of git://git.kernel.dk/linux:
        selftests/bpf/sockopt: Add io_uring support
        io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT
        io_uring/cmd: Introduce SOCKET_URING_OP_GETSOCKOPT
        io_uring/cmd: return -EOPNOTSUPP if net is disabled
        selftests/net: Extract uring helpers to be reusable
        tools headers: Grab copy of io_uring.h
        io_uring/cmd: Pass compat mode in issue_flags
        net/socket: Break down __sys_getsockopt
        net/socket: Break down __sys_setsockopt
        bpf: Add sockptr support for setsockopt
        bpf: Add sockptr support for getsockopt
      f5277ad1
    • Linus Torvalds's avatar
      Merge tag 'for-6.7/io_uring-2023-10-30' of git://git.kernel.dk/linux · ffa059b2
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "This contains the core io_uring updates, of which there are not many,
        and adds support for using WAITID through io_uring and hence not
        needing to block on these kinds of events.
      
        Outside of that, tweaks to the legacy provided buffer handling and
        some cleanups related to cancelations for uring_cmd support"
      
      * tag 'for-6.7/io_uring-2023-10-30' of git://git.kernel.dk/linux:
        io_uring/poll: use IOU_F_TWQ_LAZY_WAKE for wakeups
        io_uring/kbuf: Use slab for struct io_buffer objects
        io_uring/kbuf: Allow the full buffer id space for provided buffers
        io_uring/kbuf: Fix check of BID wrapping in provided buffers
        io_uring/rsrc: cleanup io_pin_pages()
        io_uring: cancelable uring_cmd
        io_uring: retain top 8bits of uring_cmd flags for kernel internal use
        io_uring: add IORING_OP_WAITID support
        exit: add internal include file with helpers
        exit: add kernel_waitid_prepare() helper
        exit: move core of do_wait() into helper
        exit: abstract out should_wake helper for child_wait_callback()
        io_uring/rw: add support for IORING_OP_READ_MULTISHOT
        io_uring/rw: mark readv/writev as vectored in the opcode definition
        io_uring/rw: split io_read() into a helper
      ffa059b2
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.7-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · ca995ce4
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - two small cleanup patches
      
       - a fix for PCI passthrough under Xen
      
       - a four patch series speeding up virtio under Xen with user space
         backends
      
      * tag 'for-linus-6.7-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
        xen: privcmd: Add support for ioeventfd
        xen: evtchn: Allow shared registration of IRQ handers
        xen: irqfd: Use _IOW instead of the internal _IOC() macro
        xen: Make struct privcmd_irqfd's layout architecture independent
        xen/xenbus: Add __counted_by for struct read_buffer and use struct_size()
        xenbus: fix error exit in xenbus_init()
      ca995ce4
    • Linus Torvalds's avatar
      Merge tag 'x86_tdx_for_6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8999ad99
      Linus Torvalds authored
      Pull x86 TDX updates from Dave Hansen:
       "The majority of this is a rework of the assembly and C wrappers that
        are used to talk to the TDX module and VMM. This is a nice cleanup in
        general but is also clearing the way for using this code when Linux is
        the TDX VMM.
      
        There are also some tidbits to make TDX guests play nicer with Hyper-V
        and to take advantage the hardware TSC.
      
        Summary:
      
         - Refactor and clean up TDX hypercall/module call infrastructure
      
         - Handle retrying/resuming page conversion hypercalls
      
         - Make sure to use the (shockingly) reliable TSC in TDX guests"
      
      [ TLA reminder: TDX is "Trust Domain Extensions", Intel's guest VM
        confidentiality technology ]
      
      * tag 'x86_tdx_for_6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tdx: Mark TSC reliable
        x86/tdx: Fix __noreturn build warning around __tdx_hypercall_failed()
        x86/virt/tdx: Make TDX_MODULE_CALL handle SEAMCALL #UD and #GP
        x86/virt/tdx: Wire up basic SEAMCALL functions
        x86/tdx: Remove 'struct tdx_hypercall_args'
        x86/tdx: Reimplement __tdx_hypercall() using TDX_MODULE_CALL asm
        x86/tdx: Make TDX_HYPERCALL asm similar to TDX_MODULE_CALL
        x86/tdx: Extend TDX_MODULE_CALL to support more TDCALL/SEAMCALL leafs
        x86/tdx: Pass TDCALL/SEAMCALL input/output registers via a structure
        x86/tdx: Rename __tdx_module_call() to __tdcall()
        x86/tdx: Make macros of TDCALLs consistent with the spec
        x86/tdx: Skip saving output regs when SEAMCALL fails with VMFailInvalid
        x86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro
        x86/tdx: Retry partially-completed page conversion hypercalls
      8999ad99
    • Linus Torvalds's avatar
      Merge tag 'parisc-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · f00593e0
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "Usual fixes and updates:
      
         - Add up to 12 nops after TLB inserts for PA8x00 CPUs as the
           specification requires (Dave Anglin)
      
         - Simplify the parisc smp_prepare_boot_cpu() code (Russell King)
      
         - Use 64-bit little-endian values in SBA IOMMU PDIR table for AGP
      
        Since there is upcoming support for booting a 64-bit kernel on QEMU,
        some corner cases were fixed and improvements added:
      
         - Fix 64-bit kernel crash in STI (graphics console) font setup code
           which miscalculated the font start address as it gets signed vs
           unsigned offsets wrong
      
         - Support building an uncompressed Linux kernel
      
         - Add support for soft power-off in qemu"
      
      * tag 'parisc-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
        parisc: Show default CPU PSW.W setting as reported by PDC
        parisc/pdc: Add width field to struct pdc_model
        parisc: Add nop instructions after TLB inserts
        parisc: simplify smp_prepare_boot_cpu()
        parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table
        parisc/firmware: Use PDC constants for narrow/wide firmware
        parisc: Move parisc_narrow_firmware variable to header file
        parisc/power: Trivial whitespace cleanups and license update
        parisc/power: Add power soft-off when running on qemu
        parisc: Allow building uncompressed Linux kernel
        parisc: Add some missing PDC functions and constants
        parisc: sba-iommu: Fix comment when calculating IOC number
      f00593e0
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 979ff1e5
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - misc aesthetical improvements for the floating point emulator
      
       - remove the last user of strlcpy()
      
       - use kernel's generic libgcc functions
      
       - misc fixes for W=1 builds
      
       - misc indentation fixes
      
       - misc fixes and improvements
      
       - defconfig updates
      
      * tag 'm68k-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (72 commits)
        m68k: lib: Include <linux/libgcc.h> for __muldi3()
        m68k: fpsp040: Fix indentation by 5 spaces
        m68k: Fix indentation by 2 or 5 spaces in <asm/page_mm.h>
        m68k: kernel: Fix indentation by 7 spaces in traps.c
        m68k: sun3: Fix indentation by 5 or 7 spaces
        m68k: Fix indentation by 7 spaces in <asm/io_mm.h>
        m68k: defconfig: Update virt_defconfig for v6.6-rc3
        m68k: defconfig: Update defconfigs for v6.6-rc1
        m68k: io: Mark mmio read addresses as const
        m68k: Replace GPL 2.0+ README.legal boilerplate with SPDX
        m68k: sun3: Change led_pattern[] to unsigned char
        m68k: Add missing types to asm/irq.h
        m68k: sun3/3x: Add and use "sun3.h"
        m68k: sun3x: Make dvma_print() static
        m68k: sun3x: Make sun3x_halt() static
        m68k: sun3x: Do not mark dvma_map_iommu() inline
        m68k: sun3x: Fix signature of sun3_leds()
        m68k: sun3: Make sun3_platform_init() static
        m68k: sun3: Make print_pte() static
        m68k: sun3: Annotate prom_printf() with __printf()
        ...
      979ff1e5
    • Kees Cook's avatar
      module: Annotate struct module_notes_attrs with __counted_by · ea0b0bce
      Kees Cook authored
      Prepare for the coming implementation by GCC and Clang of the __counted_by
      attribute. Flexible array members annotated with __counted_by can have
      their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
      (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
      functions).
      
      As found with Coccinelle[1], add __counted_by for struct module_notes_attrs.
      
      [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: linux-modules@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      ea0b0bce
    • Zhu Mao's avatar
      module: Fix comment typo · fd06da77
      Zhu Mao authored
      Delete duplicated word in comment.
      Signed-off-by: default avatarZhu Mao <zhumao001@208suo.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      fd06da77
    • Tiezhu Yang's avatar
      module: Make is_valid_name() return bool · 04311b9b
      Tiezhu Yang authored
      The return value of is_valid_name() is true or false,
      so change its type to reflect that.
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      04311b9b
    • Tiezhu Yang's avatar
      module: Make is_mapping_symbol() return bool · 60da3640
      Tiezhu Yang authored
      The return value of is_mapping_symbol() is true or false,
      so change its type to reflect that.
      Suggested-by: default avatarXi Zhang <zhangxi@kylinos.cn>
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      60da3640
    • Andrea Righi's avatar
      module/decompress: use vmalloc() for gzip decompression workspace · 3737df78
      Andrea Righi authored
      Use a similar approach as commit a419beac ("module/decompress: use
      vmalloc() for zstd decompression workspace") and replace kmalloc() with
      vmalloc() also for the gzip module decompression workspace.
      
      In this case the workspace is represented by struct inflate_workspace
      that can be fairly large for kmalloc() and it can potentially lead to
      allocation errors on certain systems:
      
      $ pahole inflate_workspace
      struct inflate_workspace {
      	struct inflate_state       inflate_state;        /*     0  9544 */
      	/* --- cacheline 149 boundary (9536 bytes) was 8 bytes ago --- */
      	unsigned char              working_window[32768]; /*  9544 32768 */
      
      	/* size: 42312, cachelines: 662, members: 2 */
      	/* last cacheline: 8 bytes */
      };
      
      Considering that there is no need to use continuous physical memory,
      simply switch to vmalloc() to provide a more reliable in-kernel module
      decompression.
      
      Fixes: b1ae6dc4 ("module: add in-kernel support for decompressing")
      Signed-off-by: default avatarAndrea Righi <andrea.righi@canonical.com>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      3737df78
    • Luis Chamberlain's avatar
      MAINTAINERS: add include/linux/module*.h to modules · 62eedac2
      Luis Chamberlain authored
      Use glob include/linux/module*.h to capture all module changes.
      Suggested-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      62eedac2
    • Kees Cook's avatar
      module: Clarify documentation of module_param_call() · 2c7ccb3c
      Kees Cook authored
      Commit 9bbb9e5a ("param: use ops in struct kernel_param, rather than
      get and set fns directly") added the comment that module_param_call()
      was deprecated, during a large scale refactoring to bring sanity to type
      casting back then. In 2017 following more cleanups, it became useful
      again as it wraps a common pattern of creating an ops struct for a
      given get/set pair:
      
        b2f270e8 ("module: Prepare to convert all module_param_call() prototypes")
        ece1996a ("module: Do not paper over type mismatches in module_param_call()")
      
              static const struct kernel_param_ops __param_ops_##name = \
                      { .flags = 0, .set = _set, .get = _get }; \
              __module_param_call(MODULE_PARAM_PREFIX, \
                                  name, &__param_ops_##name, arg, perm, -1, 0)
      
              __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)
      
      Many users of module_param_cb() appear to be almost universally
      open-coding the same thing that module_param_call() does now. Don't
      discourage[1] people from using module_param_call(): clarify the comment
      to show that module_param_cb() is useful if you repeatedly use the same
      pair of get/set functions.
      
      [1] https://lore.kernel.org/lkml/202308301546.5C789E5EC@keescook/
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Johan Hovold <johan@kernel.org>
      Cc: Jessica Yu <jeyu@kernel.org>
      Cc: Sagi Grimberg <sagi@grimberg.me>
      Cc: Nick Desaulniers <ndesaulniers@gooogle.com>
      Cc: Miguel Ojeda <ojeda@kernel.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: linux-modules@vger.kernel.org
      Reviewed-by: default avatarMiguel Ojeda <ojeda@kernel.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      2c7ccb3c
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 56ec8e4c
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "No major architecture features this time around, just some new HWCAP
        definitions, support for the Ampere SoC PMUs and a few fixes/cleanups.
      
        The bulk of the changes is reworking of the CPU capability checking
        code (cpus_have_cap() etc).
      
         - Major refactoring of the CPU capability detection logic resulting
           in the removal of the cpus_have_const_cap() function and migrating
           the code to "alternative" branches where possible
      
         - Backtrace/kgdb: use IPIs and pseudo-NMI
      
         - Perf and PMU:
      
            - Add support for Ampere SoC PMUs
      
            - Multi-DTC improvements for larger CMN configurations with
              multiple Debug & Trace Controllers
      
            - Rework the Arm CoreSight PMU driver to allow separate
              registration of vendor backend modules
      
            - Fixes: add missing MODULE_DEVICE_TABLE to the amlogic perf
              driver; use device_get_match_data() in the xgene driver; fix
              NULL pointer dereference in the hisi driver caused by calling
              cpuhp_state_remove_instance(); use-after-free in the hisi driver
      
         - HWCAP updates:
      
            - FEAT_SVE_B16B16 (BFloat16)
      
            - FEAT_LRCPC3 (release consistency model)
      
            - FEAT_LSE128 (128-bit atomic instructions)
      
         - SVE: remove a couple of pseudo registers from the cpufeature code.
           There is logic in place already to detect mismatched SVE features
      
         - Miscellaneous:
      
            - Reduce the default swiotlb size (currently 64MB) if no ZONE_DMA
              bouncing is needed. The buffer is still required for small
              kmalloc() buffers
      
            - Fix module PLT counting with !RANDOMIZE_BASE
      
            - Restrict CPU_BIG_ENDIAN to LLVM IAS 15.x or newer move
              synchronisation code out of the set_ptes() loop
      
            - More compact cpufeature displaying enabled cores
      
            - Kselftest updates for the new CPU features"
      
       * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (83 commits)
        arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer
        arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n
        arm64, irqchip/gic-v3, ACPI: Move MADT GICC enabled check into a helper
        perf: hisi: Fix use-after-free when register pmu fails
        drivers/perf: hisi_pcie: Initialize event->cpu only on success
        drivers/perf: hisi_pcie: Check the type first in pmu::event_init()
        arm64: cpufeature: Change DBM to display enabled cores
        arm64: cpufeature: Display the set of cores with a feature
        perf/arm-cmn: Enable per-DTC counter allocation
        perf/arm-cmn: Rework DTC counters (again)
        perf/arm-cmn: Fix DTC domain detection
        drivers: perf: arm_pmuv3: Drop some unused arguments from armv8_pmu_init()
        drivers: perf: arm_pmuv3: Read PMMIR_EL1 unconditionally
        drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for hisi_hns3_pmu uninit process
        clocksource/drivers/arm_arch_timer: limit XGene-1 workaround
        arm64: Remove system_uses_lse_atomics()
        arm64: Mark the 'addr' argument to set_ptes() and __set_pte_at() as unused
        drivers/perf: xgene: Use device_get_match_data()
        perf/amlogic: add missing MODULE_DEVICE_TABLE
        arm64/mm: Hoist synchronization out of set_ptes() loop
        ...
      56ec8e4c
    • Krister Johansen's avatar
      watchdog: move softlockup_panic back to early_param · 8b793bcd
      Krister Johansen authored
      Setting softlockup_panic from do_sysctl_args() causes it to take effect
      later in boot.  The lockup detector is enabled before SMP is brought
      online, but do_sysctl_args runs afterwards.  If a user wants to set
      softlockup_panic on boot and have it trigger should a softlockup occur
      during onlining of the non-boot processors, they could do this prior to
      commit f117955a ("kernel/watchdog.c: convert {soft/hard}lockup boot
      parameters to sysctl aliases").  However, after this commit the value
      of softlockup_panic is set too late to be of help for this type of
      problem.  Restore the prior behavior.
      Signed-off-by: default avatarKrister Johansen <kjlx@templeofstupid.com>
      Cc: stable@vger.kernel.org
      Fixes: f117955a ("kernel/watchdog.c: convert {soft/hard}lockup boot parameters to sysctl aliases")
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      8b793bcd