1. 05 Nov, 2023 5 commits
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 3d05e493
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "I2C has largely driver updates for 6.7, i.e. feature additions (like
        adding transfers while in atomic mode), using new helpers (like
        devm_clk_get_enabled), new IDs, documentation fixes and additions...
        you name it.
      
        The core got a memleak fix and better support for nested muxes"
      
      * tag 'i2c-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (53 commits)
        i2c: s3c2410: make i2c_s3c_irq_nextbyte() void
        i2c: qcom-geni: add ACPI device id for sc8180x
        Documentation: i2c: add fault code for not supporting 10 bit addresses
        i2c: sun6i-p2wi: Prevent potential division by zero
        i2c: mux: demux-pinctrl: Convert to use sysfs_emit_at() API
        i2c: i801: Use new helper acpi_use_parent_companion
        ACPI: Add helper acpi_use_parent_companion
        MAINTAINERS: add YAML file for i2c-demux-pinctrl
        i2c: core: fix lockdep warning for sparsely nested adapter chain
        i2c: axxia: eliminate kernel-doc warnings
        dt-bindings: i2c: i2c-demux-pinctrl: Convert to json-schema
        i2c: stm32f7: Use devm_clk_get_enabled()
        i2c: stm32f4: Use devm_clk_get_enabled()
        i2c: stm32f7: add description of atomic in struct stm32f7_i2c_dev
        i2c: fix memleak in i2c_new_client_device()
        i2c: exynos5: Calculate t_scl_l, t_scl_h according to i2c spec
        i2c: i801: Simplify class-based client device instantiation
        i2c: exynos5: add support for atomic transfers
        i2c: at91-core: Use devm_clk_get_enabled()
        eeprom: at24: add ST M24C64-D Additional Write lockable page support
        ...
      3d05e493
    • Linus Torvalds's avatar
      Merge tag 'ubifs-for-linus-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs · 2153fc3d
      Linus Torvalds authored
      Pull UBI and UBIFS updates from Richard Weinberger:
      
       - UBI Fastmap improvements
      
       - Minor issues found by static analysis bots in both UBI and UBIFS
      
       - Fix for wrong dentry length UBIFS in fscrypt mode
      
      * tag 'ubifs-for-linus-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
        ubifs: ubifs_link: Fix wrong name len calculating when UBIFS is encrypted
        ubi: block: Fix use-after-free in ubiblock_cleanup
        ubifs: fix possible dereference after free
        ubi: fastmap: Add control in 'UBI_IOCATT' ioctl to reserve PEBs for filling pools
        ubi: fastmap: Add module parameter to control reserving filling pool PEBs
        ubi: fastmap: Fix lapsed wear leveling for first 64 PEBs
        ubi: fastmap: Get wl PEB even ec beyonds the 'max' if free PEBs are run out
        ubi: fastmap: may_reserve_for_fm: Don't reserve PEB if fm_anchor exists
        ubi: fastmap: Remove unneeded break condition while filling pools
        ubi: fastmap: Wait until there are enough free PEBs before filling pools
        ubi: fastmap: Use free pebs reserved for bad block handling
        ubi: Replace erase_block() with sync_erase()
        ubi: fastmap: Allocate memory with GFP_NOFS in ubi_update_fastmap
        ubi: fastmap: erase_block: Get erase counter from wl_entry rather than flash
        ubi: fastmap: Fix missed ec updating after erasing old fastmap data block
        ubifs: Fix missing error code err
        ubifs: Fix memory leak of bud->log_hash
        ubifs: Fix some kernel-doc comments
      2153fc3d
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 1c410411
      Linus Torvalds authored
      Pull i3c updates from Alexandre Belloni:
       "There are now more fixes because as stated in my previous pull
        request, people now have access to actual hardware.
      
        Core:
      
         - handle IBI in the proper order
      
        Drivers:
      
         - cdns: fix status register access
      
         - mipi-i3c-hci: many fixes now that the driver has been actually
           tested
      
         - svc: many IBI fixes, correct compatible string, fix hot join corner
           cases"
      
      * tag 'i3c/for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux: (29 commits)
        i3c: master: handle IBIs in order they came
        i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data.
        i3c: master: svc: fix compatibility string mismatch with binding doc
        i3c: master: svc: fix random hot join failure since timeout error
        i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen
        i3c: master: svc: fix check wrong status register in irq handler
        i3c: master: svc: fix ibi may not return mandatory data byte
        i3c: master: svc: fix wrong data return when IBI happen during start frame
        i3c: master: svc: fix race condition in ibi work thread
        i3c: Fix typo "Provisional ID" to "Provisioned ID"
        i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs
        i3c: mipi-i3c-hci: Resume controller after aborted transfer
        i3c: mipi-i3c-hci: Resume controller explicitly
        i3c: mipi-i3c-hci: Fix missing xfer->completion in hci_cmd_v1_daa()
        i3c: mipi-i3c-hci: Do not unmap region not mapped for transfer
        i3c: mipi-i3c-hci: Set number of SW enabled Ring Bundles earlier
        i3c: mipi-i3c-hci: Fix race between bus cleanup and interrupt
        i3c: mipi-i3c-hci: Set ring start request together with enable
        i3c: mipi-i3c-hci: Remove BUG() when Ring Abort request times out
        i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler
        ...
      1c410411
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · b8cc56d0
      Linus Torvalds authored
      Pull CXL (Compute Express Link) updates from Dan Williams:
       "The main new functionality this time is work to allow Linux to
        natively handle CXL link protocol errors signalled via PCIe AER for
        current generation CXL platforms. This required some enlightenment of
        the PCIe AER core to workaround the fact that current generation RCH
        (Restricted CXL Host) platforms physically hide topology details and
        registers via a mechanism called RCRB (Root Complex Register Block).
      
        The next major highlight is reworks to address bugs in parsing region
        configurations for next generation VH (Virtual Host) topologies. The
        old broken algorithm is replaced with a simpler one that significantly
        increases the number of region configurations supported by Linux. This
        is again relevant for error handling so that forward and reverse
        address translation of memory errors can be carried out by Linux for
        memory regions instantiated by platform firmware.
      
        As for other cross-tree work, the ACPI table parsing code has been
        refactored for reuse parsing the "CDAT" structure which is an
        ACPI-like data structure that is reported by CXL devices. That work is
        in preparation for v6.8 support for CXL QoS. Think of this as dynamic
        generation of NUMA node topology information generated by Linux rather
        than platform firmware.
      
        Lastly, a number of internal object lifetime issues have been resolved
        along with misc. fixes and feature updates (decoders_committed sysfs
        ABI).
      
        Summary:
      
         - Add support for RCH (Restricted CXL Host) Error recovery
      
         - Fix several region assembly bugs
      
         - Fix mem-device lifetime issues relative to the sanitize command and
           RCH topology.
      
         - Refactor ACPI table parsing for CDAT parsing re-use in preparation
           for CXL QOS support"
      
      * tag 'cxl-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (50 commits)
        lib/fw_table: Remove acpi_parse_entries_array() export
        cxl/pci: Change CXL AER support check to use native AER
        cxl/hdm: Remove broken error path
        cxl/hdm: Fix && vs || bug
        acpi: Move common tables helper functions to common lib
        cxl: Add support for reading CXL switch CDAT table
        cxl: Add checksum verification to CDAT from CXL
        cxl: Export QTG ids from CFMWS to sysfs as qos_class attribute
        cxl: Add decoders_committed sysfs attribute to cxl_port
        cxl: Add cxl_decoders_committed() helper
        cxl/core/regs: Rework cxl_map_pmu_regs() to use map->dev for devm
        cxl/core/regs: Rename phys_addr in cxl_map_component_regs()
        PCI/AER: Unmask RCEC internal errors to enable RCH downstream port error handling
        PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem dev handler
        cxl/pci: Disable root port interrupts in RCH mode
        cxl/pci: Add RCH downstream port error logging
        cxl/pci: Map RCH downstream AER registers for logging protocol errors
        cxl/pci: Update CXL error logging to use RAS register address
        PCI/AER: Refactor cper_print_aer() for use by CXL driver module
        cxl/pci: Add RCH downstream port AER register discovery
        ...
      b8cc56d0
    • Linus Torvalds's avatar
      Merge tag 'tsm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/linux · 5e2cb28d
      Linus Torvalds authored
      Pull unified attestation reporting from Dan Williams:
       "In an ideal world there would be a cross-vendor standard attestation
        report format for confidential guests along with a common device
        definition to act as the transport.
      
        In the real world the situation ended up with multiple platform
        vendors inventing their own attestation report formats with the
        SEV-SNP implementation being a first mover to define a custom
        sev-guest character device and corresponding ioctl(). Later, this
        configfs-tsm proposal intercepted an attempt to add a tdx-guest
        character device and a corresponding new ioctl(). It also anticipated
        ARM and RISC-V showing up with more chardevs and more ioctls().
      
        The proposal takes for granted that Linux tolerates the vendor report
        format differentiation until a standard arrives. From talking with
        folks involved, it sounds like that standardization work is unlikely
        to resolve anytime soon. It also takes the position that kernfs ABIs
        are easier to maintain than ioctl(). The result is a shared configfs
        mechanism to return per-vendor report-blobs with the option to later
        support a standard when that arrives.
      
        Part of the goal here also is to get the community into the
        "uncomfortable, but beneficial to the long term maintainability of the
        kernel" state of talking to each other about their differentiation and
        opportunities to collaborate. Think of this like the device-driver
        equivalent of the common memory-management infrastructure for
        confidential-computing being built up in KVM.
      
        As for establishing an "upstream path for cross-vendor
        confidential-computing device driver infrastructure" this is something
        I want to discuss at Plumbers. At present, the multiple vendor
        proposals for assigning devices to confidential computing VMs likely
        needs a new dedicated repository and maintainer team, but that is a
        discussion for v6.8.
      
        For now, Greg and Thomas have acked this approach and this is passing
        is AMD, Intel, and Google tests.
      
        Summary:
      
         - Introduce configfs-tsm as a shared ABI for confidential computing
           attestation reports
      
         - Convert sev-guest to additionally support configfs-tsm alongside
           its vendor specific ioctl()
      
         - Added signed attestation report retrieval to the tdx-guest driver
           forgoing a new vendor specific ioctl()
      
         - Misc cleanups and a new __free() annotation for kvfree()"
      
      * tag 'tsm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/linux:
        virt: tdx-guest: Add Quote generation support using TSM_REPORTS
        virt: sevguest: Add TSM_REPORTS support for SNP_GET_EXT_REPORT
        mm/slab: Add __free() support for kvfree
        virt: sevguest: Prep for kernel internal get_ext_report()
        configfs-tsm: Introduce a shared ABI for attestation reports
        virt: coco: Add a coco/Makefile and coco/Kconfig
        virt: sevguest: Fix passing a stack buffer as a scatterlist target
      5e2cb28d
  2. 04 Nov, 2023 20 commits
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · b1dfbda8
      Linus Torvalds authored
      Pull mtd updates from Miquel Raynal:
       "The main set of changes is related to Uwe's work converting platform
        remove callbacks to return void. Comes next (in number of changes)
        Kees' additional structures annotations to improve the sanitizers. The
        usual amount of cleanups apply.
      
        About the more substancial contribution, one main function of the
        partitions core could return an error which was not checked, this is
        now fixed. On the bindings side, fixed partitions can now have a
        compression property. Finally, an erroneous situation is now always
        avoided in the MAP RAM driver.
      
        CFI:
      
         - A several years old byte swap has been fixed.
      
        NAND:
      
         - The subsystem has, as usual, seen a bit of cleanup being done this
           cycle, typically return values of platform_get_irq() and
           devm_kasprintf(). There is also a better ECC check in the Arasan
           driver. This comes with smaller misc changes.
      
         - In the SPI-NAND world there is now support for Foresee F35SQA002G,
           Winbond W25N and XTX XT26 chips.
      
        SPI NOR:
      
         - For SPI NOR we cleaned the flash info entries in order to have them
           slimmer and self explanatory. In order to make the entries as slim
           as possible, we introduced sane default values so that the actual
           flash entries don't need to specify them. We now use a flexible
           macro to specify the flash ID instead of the previous INFOx()
           macros that had hardcoded ID lengths.
      
           Instead of:
      
               { "w25q512nwm", INFO(0xef8020, 0, 64 * 1024, 0)
                       OTP_INFO(256, 3, 0x1000, 0x1000) },
      
           We now use:
      
               .id = SNOR_ID(0xef, 0x80, 0x20),
               .name = "w25q512nwm",
               .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
      
         - We also removed some flash entries: the very old Catalyst SPI
           EEPROMs that were introduced once with the SPI-NOR subsystem, and a
           Fujitsu MRAM. Both should use the at25 EEPROM driver. The latter
           even has device tree bindings for the at25 driver.
      
         - We made sure that the conversion didn't introduce any unwanted
           changes by comparing the .rodata segment before and after the
           conversion. The patches landed in linux-next immediately after
           v6.6-rc2, we haven't seen any regressions yet.
      
         - Apart of the autumn cleaning we introduced a new flash entry,
           at25ff321a, and added block protection support for mt25qu512a"
      
      * tag 'mtd/for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (91 commits)
        mtd: cfi_cmdset_0001: Byte swap OTP info
        mtd: rawnand: meson: check return value of devm_kasprintf()
        mtd: rawnand: intel: check return value of devm_kasprintf()
        mtd: rawnand: sh_flctl: Convert to module_platform_driver()
        mtd: spi-nor: micron-st: use SFDP table for mt25qu512a
        mtd: spi-nor: micron-st: enable lock/unlock for mt25qu512a
        mtd: rawnand: Remove unused of_gpio.h inclusion
        mtd: spinand: Add support for XTX XT26xxxDxxxxx
        mtd: spinand: winbond: add support for serial NAND flash
        mtd: rawnand: cadence: Annotate struct cdns_nand_chip with __counted_by
        mtd: rawnand: Annotate struct mtk_nfc_nand_chip with __counted_by
        mtd: spinand: add support for FORESEE F35SQA002G
        mtd: rawnand: rockchip: Use struct_size()
        mtd: rawnand: arasan: Include ECC syndrome along with in-band data while checking for ECC failure
        mtd: Use device_get_match_data()
        mtd: spi-nor: nxp-spifi: Convert to platform remove callback returning void
        mtd: spi-nor: hisi-sfc: Convert to platform remove callback returning void
        mtd: maps: sun_uflash: Convert to platform remove callback returning void
        mtd: maps: sa1100-flash: Convert to platform remove callback returning void
        mtd: maps: pxa2xx-flash: Convert to platform remove callback returning void
        ...
      b1dfbda8
    • Linus Torvalds's avatar
      Merge tag 'topic/nvidia-gsp-2023-11-03' of git://anongit.freedesktop.org/drm/drm · e7070389
      Linus Torvalds authored
      Pull drm nouveau GSP support from Dave Airlie:
       "This adds the initial support for the NVIDIA GSP firmware to nouveau.
      
        This firmware is a new direction for Turing+ GPUs, and is only enabled
        by default on Ada generation. Other generations need to use
        nouveau.config=NvGspRm=1
      
        The GSP firmware takes nearly all the GPU init and power management
        tasks onto a risc-v CPU on the GPU.
      
        This series is mostly the work from Ben Skeggs, and Dave added some
        patches to rebase it to the latest firmware release which is where we
        will stay for as long as possible as the firmwares have no ABI
        stability"
      
      * tag 'topic/nvidia-gsp-2023-11-03' of git://anongit.freedesktop.org/drm/drm: (49 commits)
        nouveau/gsp: add some basic registry entries.
        nouveau/gsp: fix message signature.
        nouveau/gsp: move to 535.113.01
        nouveau/disp: fix post-gsp build on 32-bit arm.
        nouveau: fix r535 build on 32-bit arm.
        drm/nouveau/ofa/r535: initial support
        drm/nouveau/nvjpg/r535: initial support
        drm/nouveau/nvenc/r535: initial support
        drm/nouveau/nvdec/r535: initial support
        drm/nouveau/gr/r535: initial support
        drm/nouveau/ce/r535: initial support
        drm/nouveau/fifo/r535: initial support
        drm/nouveau/disp/r535: initial support
        drm/nouveau/mmu/r535: initial support
        drm/nouveau/gsp/r535: add interrupt handling
        drm/nouveau/gsp/r535: add support for rm alloc
        drm/nouveau/gsp/r535: add support for rm control
        drm/nouveau/gsp/r535: add support for booting GSP-RM
        drm/nouveau/nvkm: support loading fws into sg_table
        drm/nouveau/kms/tu102-: disable vbios parsing when running on RM
        ...
      e7070389
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · aea6bf90
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this cycle, we introduce a bigger page size support by changing the
        internal f2fs's block size aligned to the page size. We also continue
        to improve zoned block device support regarding the power off
        recovery. As usual, there are some bug fixes regarding the error
        handling routines in compression and ioctl.
      
        Enhancements:
         - Support Block Size == Page Size
         - let f2fs_precache_extents() traverses in file range
         - stop iterating f2fs_map_block if hole exists
         - preload extent_cache for POSIX_FADV_WILLNEED
         - compress: fix to avoid fragment w/ OPU during f2fs_ioc_compress_file()
      
        Bug fixes:
         - do not return EFSCORRUPTED, but try to run online repair
         - finish previous checkpoints before returning from remount
         - fix error handling of __get_node_page and __f2fs_build_free_nids
         - clean up zones when not successfully unmounted
         - fix to initialize map.m_pblk in f2fs_precache_extents()
         - fix to drop meta_inode's page cache in f2fs_put_super()
         - set the default compress_level on ioctl
         - fix to avoid use-after-free on dic
         - fix to avoid redundant compress extension
         - do sanity check on cluster when CONFIG_F2FS_CHECK_FS is on
         - fix deadloop in f2fs_write_cache_pages()"
      
      * tag 'f2fs-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: finish previous checkpoints before returning from remount
        f2fs: fix error handling of __get_node_page
        f2fs: do not return EFSCORRUPTED, but try to run online repair
        f2fs: fix error path of __f2fs_build_free_nids
        f2fs: Clean up errors in segment.h
        f2fs: clean up zones when not successfully unmounted
        f2fs: let f2fs_precache_extents() traverses in file range
        f2fs: avoid format-overflow warning
        f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()
        f2fs: Support Block Size == Page Size
        f2fs: stop iterating f2fs_map_block if hole exists
        f2fs: preload extent_cache for POSIX_FADV_WILLNEED
        f2fs: set the default compress_level on ioctl
        f2fs: compress: fix to avoid fragment w/ OPU during f2fs_ioc_compress_file()
        f2fs: fix to drop meta_inode's page cache in f2fs_put_super()
        f2fs: split initial and dynamic conditions for extent_cache
        f2fs: compress: fix to avoid redundant compress extension
        f2fs: compress: do sanity check on cluster when CONFIG_F2FS_CHECK_FS is on
        f2fs: compress: fix to avoid use-after-free on dic
        f2fs: compress: fix deadloop in f2fs_write_cache_pages()
      aea6bf90
    • Linus Torvalds's avatar
      Merge tag '9p-for-6.7-rc1' of https://github.com/martinetd/linux · c9b93caf
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
       A bunch of small fixes:
      
         - three W=1 warning fixes: the NULL -> "" replacement isn't trivial
           but is serialized identically by the protocol layer and has been
           tested
      
         - one syzbot/KCSAN datarace annotation where we don't care about
           users messing with the fd they passed to mount -t 9p
      
         - removing a declaration without implementation
      
         - yet another race fix for trans_fd around connection close: the
           'err' field is also used in potentially racy calls and this isn't
           complete, but it's better than what we had
      
         - and finally a theorical memory leak fix on serialization failure"
      
      * tag '9p-for-6.7-rc1' of https://github.com/martinetd/linux:
        9p/net: fix possible memory leak in p9_check_errors()
        9p/fs: add MODULE_DESCRIPTION
        9p/net: xen: fix false positive printf format overflow warning
        9p: v9fs_listxattr: fix %s null argument warning
        9p/trans_fd: Annotate data-racy writes to file::f_flags
        fs/9p: Remove unused function declaration v9fs_inode2stat()
        9p/trans_fd: avoid sending req to a cancelled conn
      c9b93caf
    • Linus Torvalds's avatar
      Merge tag '6.7-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 766e9cf3
      Linus Torvalds authored
      Pull smb client updates from Steve French:
      
       - use after free fixes and deadlock fix
      
       - symlink timestamp fix
      
       - hashing perf improvement
      
       - multichannel fixes
      
       - minor debugging improvements
      
       - fix creating fifos when using "sfu" mounts
      
       - NTLMSSP authentication improvement
      
       - minor fixes to include some missing create flags and structures from
         recently updated protocol documentation
      
      * tag '6.7-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: force interface update before a fresh session setup
        cifs: do not reset chan_max if multichannel is not supported at mount
        cifs: reconnect helper should set reconnect for the right channel
        smb: client: fix use-after-free in smb2_query_info_compound()
        smb: client: remove extra @chan_count check in __cifs_put_smb_ses()
        cifs: add xid to query server interface call
        cifs: print server capabilities in DebugData
        smb: use crypto_shash_digest() in symlink_hash()
        smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
        smb: client: fix potential deadlock when releasing mids
        smb3: fix creating FIFOs when mounting with "sfu" mount option
        Add definition for new smb3.1.1 command type
        SMB3: clarify some of the unused CreateOption flags
        cifs: Add client version details to NTLM authenticate message
        smb3: fix touch -h of symlink
      766e9cf3
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 4c975a43
      Linus Torvalds authored
      Pull EFI update from Ard Biesheuvel:
       "This is the only remaining EFI change, as everything else was taken
        via -tip this cycle:
      
         - implement uid/gid mount options for efivarfs"
      
      * tag 'efi-next-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efivarfs: Add uid/gid mount options
      4c975a43
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.7_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a23fb26
      Linus Torvalds authored
      Pull x86 microcode loading updates from Borislac Petkov:
       "Major microcode loader restructuring, cleanup and improvements by
        Thomas Gleixner:
      
         - Restructure the code needed for it and add a temporary initrd
           mapping on 32-bit so that the loader can access the microcode
           blobs. This in itself is a preparation for the next major
           improvement:
      
         - Do not load microcode on 32-bit before paging has been enabled.
      
           Handling this has caused an endless stream of headaches, issues,
           ugly code and unnecessary hacks in the past. And there really
           wasn't any sensible reason to do that in the first place. So switch
           the 32-bit loading to happen after paging has been enabled and turn
           the loader code "real purrty" again
      
         - Drop mixed microcode steppings loading on Intel - there, a single
           patch loaded on the whole system is sufficient
      
         - Rework late loading to track which CPUs have updated microcode
           successfully and which haven't, act accordingly
      
         - Move late microcode loading on Intel in NMI context in order to
           guarantee concurrent loading on all threads
      
         - Make the late loading CPU-hotplug-safe and have the offlined
           threads be woken up for the purpose of the update
      
         - Add support for a minimum revision which determines whether late
           microcode loading is safe on a machine and the microcode does not
           change software visible features which the machine cannot use
           anyway since feature detection has happened already. Roughly, the
           minimum revision is the smallest revision number which must be
           loaded currently on the system so that late updates can be allowed
      
         - Other nice leanups, fixess, etc all over the place"
      
      * tag 'x86_microcode_for_v6.7_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        x86/microcode/intel: Add a minimum required revision for late loading
        x86/microcode: Prepare for minimal revision check
        x86/microcode: Handle "offline" CPUs correctly
        x86/apic: Provide apic_force_nmi_on_cpu()
        x86/microcode: Protect against instrumentation
        x86/microcode: Rendezvous and load in NMI
        x86/microcode: Replace the all-in-one rendevous handler
        x86/microcode: Provide new control functions
        x86/microcode: Add per CPU control field
        x86/microcode: Add per CPU result state
        x86/microcode: Sanitize __wait_for_cpus()
        x86/microcode: Clarify the late load logic
        x86/microcode: Handle "nosmt" correctly
        x86/microcode: Clean up mc_cpu_down_prep()
        x86/microcode: Get rid of the schedule work indirection
        x86/microcode: Mop up early loading leftovers
        x86/microcode/amd: Use cached microcode for AP load
        x86/microcode/amd: Cache builtin/initrd microcode early
        x86/microcode/amd: Cache builtin microcode too
        x86/microcode/amd: Use correct per CPU ucode_cpu_info
        ...
      0a23fb26
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 5c5e048b
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Implement the binary search in modpost for faster symbol lookup
      
       - Respect HOSTCC when linking host programs written in Rust
      
       - Change the binrpm-pkg target to generate kernel-devel RPM package
      
       - Fix endianness issues for tee and ishtp MODULE_DEVICE_TABLE
      
       - Unify vdso_install rules
      
       - Remove unused __memexit* annotations
      
       - Eliminate stale whitelisting for __devinit/__devexit from modpost
      
       - Enable dummy-tools to handle the -fpatchable-function-entry flag
      
       - Add 'userldlibs' syntax
      
      * tag 'kbuild-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        kbuild: support 'userldlibs' syntax
        kbuild: dummy-tools: pretend we understand -fpatchable-function-entry
        kbuild: Correct missing architecture-specific hyphens
        modpost: squash ALL_{INIT,EXIT}_TEXT_SECTIONS to ALL_TEXT_SECTIONS
        modpost: merge sectioncheck table entries regarding init/exit sections
        modpost: use ALL_INIT_SECTIONS for the section check from DATA_SECTIONS
        modpost: disallow the combination of EXPORT_SYMBOL and __meminit*
        modpost: remove EXIT_SECTIONS macro
        modpost: remove MEM_INIT_SECTIONS macro
        modpost: remove more symbol patterns from the section check whitelist
        modpost: disallow *driver to reference .meminit* sections
        linux/init: remove __memexit* annotations
        modpost: remove ALL_EXIT_DATA_SECTIONS macro
        kbuild: simplify cmd_ld_multi_m
        kbuild: avoid too many execution of scripts/pahole-flags.sh
        kbuild: remove ARCH_POSTLINK from module builds
        kbuild: unify no-compiler-targets and no-sync-config-targets
        kbuild: unify vdso_install rules
        docs: kbuild: add INSTALL_DTBS_PATH
        UML: remove unused cmd_vdso_install
        ...
      5c5e048b
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3062a987
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix the acpi_thermal_add() error path that may do a double-free in
        some cases after recent changes (Dan Carpenter)"
      
      * tag 'acpi-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: thermal: Fix acpi_thermal_unregister_thermal_zone() cleanup
      3062a987
    • Miquel Raynal's avatar
      Merge tag 'nand/for-6.7' into mtd/next · 6d55d31e
      Miquel Raynal authored
      The raw NAND subsystem has, as usual, seen a bit of cleanup being done
      this cycle, typically return values of platform_get_irq() and
      devm_kasprintf(), plus structure annotations for sanitizers. There is
      also a better ECC check in the Arasan driver. This comes with smaller
      misc changes.
      
      In the SPI-NAND world there is now support for Foresee F35SQA002G,
      Winbond W25N and XTX XT26 chips.
      Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      6d55d31e
    • Miquel Raynal's avatar
      Merge tag 'spi-nor/for-6.7' into mtd/next · 3a8ab4a1
      Miquel Raynal authored
      For SPI NOR we cleaned the flash info entries in order to have
      them slimmer and self explanatory. In order to make the entries
      as slim as possible, we introduced sane default values so that
      the actual flash entries don't need to specify them. We now use
      a flexible macro to specify the flash ID instead of the previous
      INFOx() macros that had hardcoded ID lengths.
      
      Instead of:
      -       { "w25q512nwm", INFO(0xef8020, 0, 64 * 1024, 0)
      -               OTP_INFO(256, 3, 0x1000, 0x1000) },
      
      We now use:
      +               .id = SNOR_ID(0xef, 0x80, 0x20),
      +               .name = "w25q512nwm",
      +               .otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
      
      We also removed some flash entries: the very old Catalyst
      SPI EEPROMs that were introduced once with the SPI-NOR subsystem,
      and a Fujitsu MRAM. Both should use the at25 EEPROM driver.
      The latter even has device tree bindings for the at25 driver.
      
      We made sure that the conversion didn't introduce any unwanted
      changes by comparing the .rodata segment before and after the
      conversion. The patches landed in linux-next immediately after
      v6.6-rc2, we haven't seen any regressions yet.
      
      Apart of the autumn cleaning we introduced a new flash entry,
      at25ff321a, and added block protection support for mt25qu512a.
      Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      3a8ab4a1
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 90b0c2b2
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "No pin control core changes this time.
      
        New drivers:
      
         - Realtek RTD family pin control driver and RTD1619B, RTD1319D and
           RTD1315E subdrivers
      
         - Nuvoton NPCM8xx combined pin control and GPIO driver
      
         - Amlogic T7 pin control driver
      
         - Renesas RZ/G3S pin control driver
      
        Improvements:
      
         - A number of additional UART groups added to the Mediatek MT7981
           driver
      
         - MPM pin maps added for Qualcomm MSM8996, SM6115, SM6125 and SDM660
      
         - Extra GPIO banks for the Sunxi H616
      
         - MLSP I2C6 function support in Qualcomm MSM8226
      
         - Some __counted_by() annotations for dynamic arrays
      
         - Ongoing work to make remove() return void
      
         - LSBC groups and functions in the Renesas R8A7778"
      
      * tag 'pinctrl-v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (110 commits)
        pinctrl: Use device_get_match_data()
        dt-bindings: pinctrl: qcom,sa8775p-tlmm: add missing wakeup-parent
        dt-bindings: pinctrl: nuvoton,npcm845: Add missing additionalProperties on gpio child nodes
        dt-bindings: pinctrl: brcm: Ensure all child node properties are documented
        pinctrl: renesas: rzn1: Convert to platform remove callback returning void
        pinctrl: renesas: rzg2l: Add RZ/G3S support
        dt-bindings: pinctrl: renesas: Document RZ/G3S SoC
        pinctrl: renesas: rzg2l: Add support for different DS values on different groups
        pinctrl: renesas: rzg2l: Move DS and OI to SoC-specific configuration
        pinctrl: renesas: rzg2l: Adapt function number for RZ/G3S
        pinctrl: renesas: rzg2l: Adapt for different SD/PWPR register offsets
        pinctrl: renesas: rzg2l: Index all registers based on port offset
        pinctrl: renesas: rzg2l: Add validation of GPIO pin in rzg2l_gpio_request()
        pinctrl: renesas: r8a7778: Add LBSC pins, groups, and functions
        pinctrl: intel: fetch community only when we need it
        pinctrl: cherryview: reduce scope of PIN_CONFIG_BIAS_HIGH_IMPEDANCE case
        pinctrl: cherryview: Convert to platform remove callback returning void
        pinctrl: sprd-sc9860: Convert to platform remove callback returning void
        pinctrl: qcom/msm: Convert to platform remove callback returning void
        pinctrl: qcom/lpi: Convert to platform remove callback returning void
        ...
      90b0c2b2
    • Linus Torvalds's avatar
      Merge tag 'soundwire-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire · be47c8e3
      Linus Torvalds authored
      Pull soundwire updates from Vinod Koul:
      
       - Core now has improved handling of errors for clock stop
      
       - Support for qcom v2.0.0 status registers and command ignored
         interrupt and more logging for failures
      
       - DMI quirk for HP Omen machine
      
      * tag 'soundwire-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
        soundwire: dmi-quirks: update HP Omen match
        soundwire: bus: improve error handling for clock stop prepare/deprepare
        soundwire: qcom: Log clk_get("iface") failures
        soundwire: qcom: handle command ignored interrupt
        soundwire: qcom: use newer link status tregister on v2.0.0
      be47c8e3
    • Linus Torvalds's avatar
      Merge tag 'phy-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy · bfafa2c1
      Linus Torvalds authored
      Pull generic phy updates from Vinod Koul:
       "New Support:
         - Qualcomm sa8775p qmp-pcie, IPQ5018, and SC7280 qmp-ufs support
         - Mediatek MT8188 support
      
        Updates:
         - Device tree device_get_match_data() usage and dropping
           of_match_device() calls
         - Qualcomm qmp usb and combo phy updates for v6 register layout
         - Qualcomm eusb2-repeater updates for tuning overrides, regmap fields
         - STih407 usb binding and ralink usb-phy yaml conversion
         - renesas r8a779f0 serdes init sequencing updates"
      
      * tag 'phy-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy: (32 commits)
        phy: Remove duplicated include in phy-ralink-usb.c
        phy: Kconfig: Select GENERIC_PHY for GENERIC_PHY_MIPI_DPHY
        phy: qcom-qmp-pcie: add endpoint support for sa8775p
        dt-bindings: phy: ralink-usb-phy: convert to dtschema
        dt-bindings: phy: Convert PXA1928 USB/HSIC PHY to DT schema
        phy: Drop unnecessary of_match_device() calls
        phy: rockchip-inno-usb2: Drop unnecessary DT includes
        phy: Use device_get_match_data()
        phy: realtek: Replace of_device.h with explicit includes
        phy: renesas: r8a779f0-ether-serdes: Add .exit() ops
        phy: renesas: r8a779f0-ether-serdes: Reset in .init()
        phy: qcom-qmp-combo: use v6 registers in v6 regs layout
        phy: qcom-qmp-usb: move PCS v6 register to the proper header
        phy: qcom-qmp-combo: fix the prefix for the PCS_USB v6 registers
        phy: sun4i-usb: update array size
        phy: qualcomm: phy-qcom-eusb2-repeater: Add tuning overrides
        phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs
        phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields
        dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides
        dt-bindings: phy: Add compatible for Mediatek MT8188
        ...
      bfafa2c1
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · d934aef6
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
      
       - Big pile of __counted_by attribute annotations to several structures
         for bounds checking of flexible arrays at run-time
      
       - Another big pile platform remove callback returning void changes
      
       - Device tree device_get_match_data() usage and dropping
         of_match_device() calls
      
       - Minor driver updates to pxa, idxd fsl, hisi etc drivers
      
      * tag 'dmaengine-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (106 commits)
        dmaengine: stm32-mdma: correct desc prep when channel running
        dmaengine: dw-axi-dmac: Add support DMAX_NUM_CHANNELS > 16
        dmaengine: xilinx: xilinx_dma: Fix kernel doc about xilinx_dma_remove()
        dmaengine: mmp_tdma: drop unused variable 'of_id'
        MAINTAINERS: Add entries for NXP(Freescale) eDMA drivers
        dmaengine: xilinx: xdma: Support cyclic transfers
        dmaengine: xilinx: xdma: Prepare the introduction of cyclic transfers
        dmaengine: Drop unnecessary of_match_device() calls
        dmaengine: Use device_get_match_data()
        dmaengine: pxa_dma: Annotate struct pxad_desc_sw with __counted_by
        dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
        dmaengine: xilinx: xdma: Use resource_size() in xdma_probe()
        dmaengine: fsl-dpaa2-qdma: Remove redundant initialization owner in dpaa2_qdma_driver
        dmaengine: Remove unused declaration dma_chan_cleanup()
        dmaengine: mmp: fix Wvoid-pointer-to-enum-cast warning
        dmaengine: qcom: fix Wvoid-pointer-to-enum-cast warning
        dmaengine: fsl-edma: Remove redundant dev_err() for platform_get_irq()
        dmaengine: ep93xx_dma: Annotate struct ep93xx_dma_engine with __counted_by
        dmaengine: idxd: add wq driver name support for accel-config user tool
        dmaengine: fsl-edma: Annotate struct struct fsl_edma_engine with __counted_by
        ...
      d934aef6
    • Linus Torvalds's avatar
      Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 2c40c1c6
      Linus Torvalds authored
      Pull USB/Thunderbolt updates from Greg KH:
       "Here is the "big" set of USB and Thunderbolt changes for 6.7-rc1.
        Nothing really major in here, just lots of constant development for
        new hardware. Included in here are:
      
         - Thunderbolt (i.e. USB4) fixes for reported issues and support for
           new hardware types and devices
      
         - USB typec additions of new drivers and cleanups for some existing
           ones
      
         - xhci cleanups and expanded tracing support and some platform
           specific updates
      
         - USB "La Jolla Cove Adapter (LJCA)" support added, and the gpio,
           spi, and i2c drivers for that type of device (all acked by the
           respective subsystem maintainers.)
      
         - lots of USB gadget driver updates and cleanups
      
         - new USB dwc3 platforms supported, as well as other dwc3 fixes and
           cleanups
      
         - USB chipidea driver updates
      
         - other smaller driver cleanups and additions, full details in the
           shortlog
      
        All of these have been in the linux-next tree for a while with no
        reported problems"
      
      * tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (167 commits)
        usb: gadget: uvc: Add missing initialization of ssp config descriptor
        usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility
        usb: raw-gadget: report suspend, resume, reset, and disconnect events
        usb: raw-gadget: don't disable device if usb_ep_queue fails
        usb: raw-gadget: properly handle interrupted requests
        usb:cdnsp: remove TRB_FLUSH_ENDPOINT command
        usb: gadget: aspeed_udc: Convert to platform remove callback returning void
        dt-bindings: usb: fsa4480: Add compatible for OCP96011
        usb: typec: fsa4480: Add support to swap SBU orientation
        dt-bindings: usb: fsa4480: Add data-lanes property to endpoint
        usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
        Revert "dt-bindings: usb: Add bindings for multiport properties on DWC3 controller"
        Revert "dt-bindings: usb: qcom,dwc3: Add bindings for SC8280 Multiport"
        thunderbolt: Fix one kernel-doc comment
        usb: gadget: f_ncm: Always set current gadget in ncm_bind()
        usb: core: Remove duplicated check in usb_hub_create_port_device
        usb: typec: tcpm: Add additional checks for contaminant
        arm64: dts: rockchip: rk3588s: Add USB3 host controller
        usb: dwc3: add optional PHY interface clocks
        dt-bindings: usb: add rk3588 compatible to rockchip,dwc3
        ...
      2c40c1c6
    • Linus Torvalds's avatar
      Merge tag 'tty-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 1f24458a
      Linus Torvalds authored
      Pull tty and serial updates from Greg KH:
       "Here is the big set of tty/serial driver changes for 6.7-rc1. Included
        in here are:
      
         - console/vgacon cleanups and removals from Arnd
      
         - tty core and n_tty cleanups from Jiri
      
         - lots of 8250 driver updates and cleanups
      
         - sc16is7xx serial driver updates
      
         - dt binding updates
      
         - first set of port lock wrapers from Thomas for the printk fixes
           coming in future releases
      
         - other small serial and tty core cleanups and updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (193 commits)
        serdev: Replace custom code with device_match_acpi_handle()
        serdev: Simplify devm_serdev_device_open() function
        serdev: Make use of device_set_node()
        tty: n_gsm: add copyright Siemens Mobility GmbH
        tty: n_gsm: fix race condition in status line change on dead connections
        serial: core: Fix runtime PM handling for pending tx
        vgacon: fix mips/sibyte build regression
        dt-bindings: serial: drop unsupported samsung bindings
        tty: serial: samsung: drop earlycon support for unsupported platforms
        tty: 8250: Add note for PX-835
        tty: 8250: Fix IS-200 PCI ID comment
        tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks
        tty: 8250: Add support for Intashield IX cards
        tty: 8250: Add support for additional Brainboxes PX cards
        tty: 8250: Fix up PX-803/PX-857
        tty: 8250: Fix port count of PX-257
        tty: 8250: Add support for Intashield IS-100
        tty: 8250: Add support for Brainboxes UP cards
        tty: 8250: Add support for additional Brainboxes UC cards
        tty: 8250: Remove UC-257 and UC-431
        ...
      1f24458a
    • Linus Torvalds's avatar
      Merge tag 'staging-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 4c7a0c95
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here is the big set of staging driver updates for 6.7-rc1. A bit
        bigger than 6.6 this time around, as it coincided with the Outreachy
        and mentorship application process, so we got a bunch of new
        developers sending in their first changes, which is nice to see.
      
        Also in here is a removal of the qlge ethernet driver, and the
        rtl8192u wireless driver. Both of these were very old and no one was
        maintaining them, the wireless driver removal was due to no one using
        it anymore, and no hardware to be found, and is part of a larger
        effort to remove unused and old wifi drivers from the system.
      
        The qlge ethernet driver did have one user pop up after it was
        dropped, and we are working with the network mainainers to figure out
        what tree it will come back in from and who will be responsible for
        it, and if it really is being used or not. Odds are it will show up in
        a network subsystem pull request after -rc1 is out, but we aren't sure
        yet.
      
        Other smaller changes in here are:
      
         - Lots of vc04_services work by Umang to clean up the mess created by
           the rpi developers long ago, bringing it almost into good enough
           shape to get out of staging, hopefully next major release, it's
           getting close.
      
         - rtl8192e variable cleanups and removal of unused code and
           structures
      
         - vme_user coding style cleanups
      
         - other small coding style cleanups to lots of the staging drivers
      
         - octeon typedef removals, and then last-minute revert when it was
           found to break the build in some configurations (it's a hard driver
           to build properly, none of the normal automated testing catches
           it.)
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (256 commits)
        Revert "staging: octeon: remove typedef in enum cvmx_spi_mode_t"
        Revert "staging: octeon: remove typedef in enum cvmx_helper_interface_mode_t"
        Revert "staging: octeon: remove typedef in enum cvmx_pow_wait_t"
        Revert "staging: octeon: remove typedef in struct cvmx_pko_lock_t"
        Revert "staging: octeon: remove typedef in enum cvmx_pko_status_t"
        Revert "staging: octeon: remove typedef in structs cvmx_pip_port_status_t and cvmx_pko_port_status_t"
        staging: vt6655: Type encoding info dropped from variable name "byRxRate"
        staging: vt6655: Type encoding info dropped from function name "CARDbUpdateTSF"
        staging: vt6655: Type encoding info dropped from function name "CARDvSetRSPINF"
        staging: vt6655: Type encoding info dropped from function name "CARDbyGetPktType"
        staging: vt6655: Type encoding info dropped from variable name "byPacketType"
        staging: vt6655: Type encoding info dropped from function name "CARDbSetPhyParameter"
        staging: vt6655: Type encoding info dropped from variable name "pbyRsvTime"
        staging: vt6655: Type encoding info dropped from variable name "pbyTxRate"
        staging: vt6655: Type encoding info dropped from function name "s_vCalculateOFDMRParameter"
        staging: vt6655: Type encoding info dropped from array name "cwRXBCNTSFOff"
        staging: fbtft: Convert to platform remove callback returning void
        staging: olpc_dcon: Remove I2C_CLASS_DDC support
        staging: vc04_services: use snprintf instead of sprintf
        staging: rtl8192e: Fix line break issue at priv->rx_buf[priv->rx_idx]
        ...
      4c7a0c95
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · b06f58ad
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is the set of driver core updates for 6.7-rc1. Nothing major in
        here at all, just a small number of changes including:
      
         - minor cleanups and updates from Andy Shevchenko
      
         - __counted_by addition
      
         - firmware_loader update for aborting loads cleaner
      
         - other minor changes, details in the shortlog
      
         - documentation update
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (21 commits)
        firmware_loader: Abort all upcoming firmware load request once reboot triggered
        firmware_loader: Refactor kill_pending_fw_fallback_reqs()
        Documentation: security-bugs.rst: linux-distros relaxed their rules
        driver core: Release all resources during unbind before updating device links
        driver core: class: remove boilerplate code
        driver core: platform: Annotate struct irq_affinity_devres with __counted_by
        resource: Constify resource crosscheck APIs
        resource: Unify next_resource() and next_resource_skip_children()
        resource: Reuse for_each_resource() macro
        PCI: Implement custom llseek for sysfs resource entries
        kernfs: sysfs: support custom llseek method for sysfs entries
        debugfs: Fix __rcu type comparison warning
        device property: Replace custom implementation of COUNT_ARGS()
        drivers: base: test: Make property entry API test modular
        driver core: Add missing parameter description to __fwnode_link_add()
        device property: Clarify usage scope of some struct fwnode_handle members
        devres: rename the first parameter of devm_add_action(_or_reset)
        driver core: platform: Unify the firmware node type check
        driver core: platform: Use temporary variable in platform_device_add()
        driver core: platform: Refactor error path in a couple places
        ...
      b06f58ad
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · d99b91a9
      Linus Torvalds authored
      Pull char/misc updates from Greg KH:
       "Here is the big set of char/misc and other small driver subsystem
        changes for 6.7-rc1. Included in here are:
      
         - IIO subsystem driver updates and additions (largest part of this
           pull request)
      
         - FPGA subsystem driver updates
      
         - Counter subsystem driver updates
      
         - ICC subsystem driver updates
      
         - extcon subsystem driver updates
      
         - mei driver updates and additions
      
         - nvmem subsystem driver updates and additions
      
         - comedi subsystem dependency fixes
      
         - parport driver fixups
      
         - cdx subsystem driver and core updates
      
         - splice support for /dev/zero and /dev/full
      
         - other smaller driver cleanups
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (326 commits)
        cdx: add sysfs for subsystem, class and revision
        cdx: add sysfs for bus reset
        cdx: add support for bus enable and disable
        cdx: Register cdx bus as a device on cdx subsystem
        cdx: Create symbol namespaces for cdx subsystem
        cdx: Introduce lock to protect controller ops
        cdx: Remove cdx controller list from cdx bus system
        dts: ti: k3-am625-beagleplay: Add beaglecc1352
        greybus: Add BeaglePlay Linux Driver
        dt-bindings: net: Add ti,cc1352p7
        dt-bindings: eeprom: at24: allow NVMEM cells based on old syntax
        dt-bindings: nvmem: SID: allow NVMEM cells based on old syntax
        Revert "nvmem: add new config option"
        MAINTAINERS: coresight: Add missing Coresight files
        misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support
        firmware: xilinx: Move EXPORT_SYMBOL_GPL next to zynqmp_pm_feature definition
        uacce: make uacce_class constant
        ocxl: make ocxl_class constant
        cxl: make cxl_class constant
        misc: phantom: make phantom_class constant
        ...
      d99b91a9
  3. 03 Nov, 2023 15 commits
    • Zbigniew Lukwinski's avatar
      i3c: master: handle IBIs in order they came · 9fd00df0
      Zbigniew Lukwinski authored
      IBI shall be handled in order they appear on the bus. Otherwise could hit
      case when order of handling them in device driver will be different. It may
      lead to invalid assembling fragmented packets or events order broken.
      
      Added separate workqueue with option WQ_MEM_RECLAIM for each device driver.
      This ensures IBI handling order and improves IBI handling performance: IBI
      handlers for device B are not blocked by IBI handlers for device A.
      
      Original solution (single workqueue in main driver) was able to handle also
      general IBI (not related to specific device) like HJ or MR. So leaving this
      for such purposes.
      Signed-off-by: default avatarZbigniew Lukwinski <zbigniew.lukwinski@linux.intel.com>
      Link: https://lore.kernel.org/r/20231015222334.1652401-2-zbigniew.lukwinski@linux.intel.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      9fd00df0
    • Billy Tsai's avatar
      i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data. · b53e9758
      Billy Tsai authored
      The `i3c_master_bus_init` function may attach the I2C devices before the
      I3C bus initialization. In this flow, the DAT `alloc_entry`` will be used
      before the DAT `init`. Additionally, if the `i3c_master_bus_init` fails,
      the DAT `cleanup` will execute before the device is detached, which will
      execue DAT `free_entry` function. The above scenario can cause the driver
      to use DAT_data when it is NULL.
      Signed-off-by: default avatarBilly Tsai <billy_tsai@aspeedtech.com>
      Link: https://lore.kernel.org/r/20231023080237.560936-1-billy_tsai@aspeedtech.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      b53e9758
    • Linus Torvalds's avatar
      Merge tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e392ea4d
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Get rid of private VM_FAULT flags
      
       - Add word-at-a-time implementation
      
       - Add DCACHE_WORD_ACCESS support
      
       - Cleanup control register handling
      
       - Disallow CPU hotplug of CPU 0 to simplify its handling complexity,
         following a similar restriction in x86
      
       - Optimize pai crypto map allocation
      
       - Update the list of crypto express EP11 coprocessor operation modes
      
       - Fixes and improvements for secure guests AP pass-through
      
       - Several fixes to address incorrect page marking for address
         translation with the "cmma no-dat" feature, preventing potential
         incorrect guest TLB flushes
      
       - Fix early IPI handling
      
       - Several virtual vs physical address confusion fixes
      
       - Various small fixes and improvements all over the code
      
      * tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits)
        s390/cio: replace deprecated strncpy with strscpy
        s390/sclp: replace deprecated strncpy with strtomem
        s390/cio: fix virtual vs physical address confusion
        s390/cio: export CMG value as decimal
        s390: delete the unused store_prefix() function
        s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir
        s390/cmma: fix detection of DAT pages
        s390/sclp: handle default case in sclp memory notifier
        s390/pai_crypto: remove per-cpu variable assignement in event initialization
        s390/pai: initialize event count once at initialization
        s390/pai_crypto: use PERF_ATTACH_TASK define for per task detection
        s390/mm: add missing arch_set_page_dat() call to gmap allocations
        s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
        s390/cmma: fix initial kernel address space page table walk
        s390/diag: add missing virt_to_phys() translation to diag224()
        s390/mm,fault: move VM_FAULT_ERROR handling to do_exception()
        s390/mm,fault: remove VM_FAULT_BADMAP and VM_FAULT_BADACCESS
        s390/mm,fault: remove VM_FAULT_SIGNAL
        s390/mm,fault: remove VM_FAULT_BADCONTEXT
        s390/mm,fault: simplify kfence fault handling
        ...
      e392ea4d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 707df298
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Add support for KVM running as a nested hypervisor under development
         versions of PowerVM, using the new PAPR nested virtualisation API
      
       - Add support for the BPF prog pack allocator
      
       - A rework of the non-server MMU handling to support execute-only on
         all platforms
      
       - Some optimisations & cleanups for the powerpc qspinlock code
      
       - Various other small features and fixes
      
      Thanks to Aboorva Devarajan, Aditya Gupta, Amit Machhiwal, Benjamin
      Gray, Christophe Leroy, Dr. David Alan Gilbert, Gaurav Batra, Gautam
      Menghani, Geert Uytterhoeven, Haren Myneni, Hari Bathini, Joel Stanley,
      Jordan Niethe, Julia Lawall, Kautuk Consul, Kuan-Wei Chiu, Michael
      Neuling, Minjie Du, Muhammad Muzammil, Naveen N Rao, Nicholas Piggin,
      Nick Child, Nysal Jan K.A, Peter Lafreniere, Rob Herring, Sachin Sant,
      Sebastian Andrzej Siewior, Shrikanth Hegde, Srikar Dronamraju, Stanislav
      Kinsburskii, Vaibhav Jain, Wang Yufen, Yang Yingliang, and Yuan Tan.
      
      * tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (100 commits)
        powerpc/vmcore: Add MMU information to vmcoreinfo
        Revert "powerpc: add `cur_cpu_spec` symbol to vmcoreinfo"
        powerpc/bpf: use bpf_jit_binary_pack_[alloc|finalize|free]
        powerpc/bpf: rename powerpc64_jit_data to powerpc_jit_data
        powerpc/bpf: implement bpf_arch_text_invalidate for bpf_prog_pack
        powerpc/bpf: implement bpf_arch_text_copy
        powerpc/code-patching: introduce patch_instructions()
        powerpc/32s: Implement local_flush_tlb_page_psize()
        powerpc/pseries: use kfree_sensitive() in plpks_gen_password()
        powerpc/code-patching: Perform hwsync in __patch_instruction() in case of failure
        powerpc/fsl_msi: Use device_get_match_data()
        powerpc: Remove cpm_dp...() macros
        powerpc/qspinlock: Rename yield_propagate_owner tunable
        powerpc/qspinlock: Propagate sleepy if previous waiter is preempted
        powerpc/qspinlock: don't propagate the not-sleepy state
        powerpc/qspinlock: propagate owner preemptedness rather than CPU number
        powerpc/qspinlock: stop queued waiters trying to set lock sleepy
        powerpc/perf: Fix disabling BHRB and instruction sampling
        powerpc/trace: Add support for HAVE_FUNCTION_ARG_ACCESS_API
        powerpc/tools: Pass -mabi=elfv2 to gcc-check-mprofile-kernel.sh
        ...
      707df298
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2023-11-03' of... · 6bdfe2d8
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull apparmor updates from John Johansen:
       "This adds initial support for mediating io_uring and userns creation.
        Adds a new restriction that tightens the use of change_profile, and a
        couple of optimizations to reduce performance bottle necks that have
        been found when retrieving the current task's secid and allocating
        work buffers.
      
        The majority of the patch set continues cleaning up and simplifying
        the code (fixing comments, removing now dead functions, and macros
        etc). Finally there are 4 bug fixes, with the regression fix having
        had a couple months of testing.
      
        Features:
         - optimize retrieving current task secid
         - add base io_uring mediation
         - add base userns mediation
         - improve buffer allocation
         - allow restricting unprivilege change_profile
      
        Cleanups:
         - Fix kernel doc comments
         - remove unused declarations
         - remove unused functions
         - remove unneeded #ifdef
         - remove unused macros
         - mark fns static
         - cleanup fn with unused return values
         - cleanup audit data
         - pass cred through to audit data
         - refcount the pdb instead of using duplicates
         - make SK_CTX macro an inline fn
         - some comment cleanups
      
        Bug fixes:
         - fix regression in mount mediation
         - fix invalid refenece
         - use passed in gfp flags
         - advertise avaiability of extended perms and disconnected.path"
      
      * tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: (39 commits)
        apparmor: Fix some kernel-doc comments
        apparmor: Fix one kernel-doc comment
        apparmor: Fix some kernel-doc comments
        apparmor: mark new functions static
        apparmor: Fix regression in mount mediation
        apparmor: cache buffers on percpu list if there is lock contention
        apparmor: add io_uring mediation
        apparmor: add user namespace creation mediation
        apparmor: allow restricting unprivileged change_profile
        apparmor: advertise disconnected.path is available
        apparmor: refcount the pdb
        apparmor: provide separate audit messages for file and policy checks
        apparmor: pass cred through to audit info.
        apparmor: rename audit_data->label to audit_data->subj_label
        apparmor: combine common_audit_data and apparmor_audit_data
        apparmor: rename SK_CTX() to aa_sock and make it an inline fn
        apparmor: Optimize retrieving current task secid
        apparmor: remove unused functions in policy_ns.c/.h
        apparmor: remove unneeded #ifdef in decompress_zstd()
        apparmor: fix invalid reference on profile->disconnected
        ...
      6bdfe2d8
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 136cc1e1
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "A Landlock ruleset can now handle two new access rights:
        LANDLOCK_ACCESS_NET_BIND_TCP and LANDLOCK_ACCESS_NET_CONNECT_TCP. When
        handled, the related actions are denied unless explicitly allowed by a
        Landlock network rule for a specific port.
      
        The related patch series has been reviewed for almost two years, it
        has evolved a lot and we now have reached a decent design, code and
        testing. The refactored kernel code and the new test helpers also
        bring the foundation to support more network protocols.
      
        Test coverage for security/landlock is 92.4% of 710 lines according to
        gcc/gcov-13, and it was 93.1% of 597 lines before this series. The
        decrease in coverage is due to code refactoring to make the ruleset
        management more generic (i.e. dealing with inodes and ports) that also
        added new WARN_ON_ONCE() checks not possible to test from user space.
      
        syzkaller has been updated accordingly [4], and such patched instance
        (tailored to Landlock) has been running for a month, covering all the
        new network-related code [5]"
      
      Link: https://lore.kernel.org/r/20231026014751.414649-1-konstantin.meskhidze@huawei.com [1]
      Link: https://lore.kernel.org/r/CAHC9VhS1wwgH6NNd+cJz4MYogPiRV8NyPDd1yj5SpaxeUB4UVg@mail.gmail.com [2]
      Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next-history.git/commit/?id=c8dc5ee69d3a [3]
      Link: https://github.com/google/syzkaller/pull/4266 [4]
      Link: https://storage.googleapis.com/syzbot-assets/82e8608dec36/ci-upstream-linux-next-kasan-gce-root-ab577164.html#security%2flandlock%2fnet.c [5]
      
      * tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Add tests for FS topology changes with network rules
        landlock: Document network support
        samples/landlock: Support TCP restrictions
        selftests/landlock: Add network tests
        selftests/landlock: Share enforce_ruleset() helper
        landlock: Support network rules with TCP bind and connect
        landlock: Refactor landlock_add_rule() syscall
        landlock: Refactor layer helpers
        landlock: Move and rename layer helpers
        landlock: Refactor merge/inherit_ruleset helpers
        landlock: Refactor landlock_find_rule/insert_rule helpers
        landlock: Allow FS topology changes for domains without such rule type
        landlock: Make ruleset's access masks more generic
      136cc1e1
    • Frank Li's avatar
      i3c: master: svc: fix compatibility string mismatch with binding doc · 8911eae9
      Frank Li authored
      In the binding documentation, the compatible string is specified as
      'silvaco,i3c-master-v1', but in the driver, it is defined as
      'silvaco,i3c-master'.
      
      Rename 'silvaco,i3c-master' to 'silvaco,i3c-master-v1' to ensure
      compatibility with the documentation.
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231017194657.3199749-1-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      8911eae9
    • Frank Li's avatar
      i3c: master: svc: fix random hot join failure since timeout error · 9aaeef11
      Frank Li authored
      master side report:
        silvaco-i3c-master 44330000.i3c-master: Error condition: MSTATUS 0x020090c7, MERRWARN 0x00100000
      
      BIT 20: TIMEOUT error
        The module has stalled too long in a frame. This happens when:
        - The TX FIFO or RX FIFO is not handled and the bus is stuck in the
      middle of a message,
        - No STOP was issued and between messages,
        - IBI manual is used and no decision was made.
        The maximum stall period is 100 μs.
      
      This can be considered as being just a warning as the system IRQ latency
      can easily be greater than 100us.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-7-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      9aaeef11
    • Frank Li's avatar
      i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen · dfd7cd6a
      Frank Li authored
      Upon IBIWON timeout, the SDA line will always be kept low if we don't emit
      a stop. Calling svc_i3c_master_emit_stop() there will let the bus return to
      idle state.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-6-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      dfd7cd6a
    • Frank Li's avatar
      i3c: master: svc: fix check wrong status register in irq handler · 225d5ef0
      Frank Li authored
      svc_i3c_master_irq_handler() wrongly checks register SVC_I3C_MINTMASKED. It
      should be SVC_I3C_MSTATUS.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-5-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      225d5ef0
    • Frank Li's avatar
      i3c: master: svc: fix ibi may not return mandatory data byte · c85e209b
      Frank Li authored
      MSTATUS[RXPEND] is only updated after the data transfer cycle started. This
      creates an issue when the I3C clock is slow, and the CPU is running fast
      enough that MSTATUS[RXPEND] may not be updated when the code reaches
      checking point. As a result, mandatory data can be missed.
      
      Add a wait for MSTATUS[COMPLETE] to ensure that all mandatory data is
      already in FIFO. It also works without mandatory data.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-4-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      c85e209b
    • Frank Li's avatar
      i3c: master: svc: fix wrong data return when IBI happen during start frame · 5e5e3c92
      Frank Li authored
           ┌─────┐     ┏──┐  ┏──┐  ┏──┐  ┏──┐  ┏──┐  ┏──┐  ┏──┐  ┏──┐  ┌─────
      SCL: ┘     └─────┛  └──┛  └──┛  └──┛  └──┛  └──┛  └──┛  └──┛  └──┘
           ───┐                       ┌─────┐     ┌─────┐     ┌───────────┐
      SDA:    └───────────────────────┘     └─────┘     └─────┘           └─────
           xxx╱    ╲╱                                        ╲╱    ╲╱    ╲╱    ╲
         : xxx╲IBI ╱╲               Addr(0x0a)               ╱╲ RW ╱╲NACK╱╲ S  ╱
      
      If an In-Band Interrupt (IBI) occurs and IBI work thread is not immediately
      scheduled, when svc_i3c_master_priv_xfers() initiates the I3C transfer and
      attempts to send address 0x7e, the target interprets it as an
      IBI handler and returns the target address 0x0a.
      
      However, svc_i3c_master_priv_xfers() does not handle this case and proceeds
      with other transfers, resulting in incorrect data being returned.
      
      Add IBIWON check in svc_i3c_master_xfer(). In case this situation occurs,
      return a failure to the driver.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-3-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      5e5e3c92
    • Frank Li's avatar
      i3c: master: svc: fix race condition in ibi work thread · 6bf3fc26
      Frank Li authored
      The ibi work thread operates asynchronously with other transfers, such as
      svc_i3c_master_priv_xfers(). Introduce mutex protection to ensure the
      completion of the entire i3c/i2c transaction.
      
      Fixes: dd3c5284 ("i3c: master: svc: Add Silvaco I3C master driver")
      Cc:  <stable@vger.kernel.org>
      Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
      Link: https://lore.kernel.org/r/20231023161658.3890811-2-Frank.Li@nxp.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      6bf3fc26
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of... · 7ab89417
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "Build:
      
         - Compile BPF programs by default if clang (>= 12.0.1) is available
           to enable more features like kernel lock contention, off-cpu
           profiling, kwork, sample filtering and so on.
      
           This can be disabled by passing BUILD_BPF_SKEL=0 to make.
      
         - Produce better error messages for bison on debug build (make
           DEBUG=1) by defining YYDEBUG symbol internally.
      
        perf record:
      
         - Track sideband events (like FORK/MMAP) from all CPUs even if perf
           record targets a subset of CPUs only (using -C option). Otherwise
           it may lose some information happened on a CPU out of the target
           list.
      
         - Fix checking raw sched_switch tracepoint argument using system BTF.
           This affects off-cpu profiling which attaches a BPF program to the
           raw tracepoint.
      
        perf lock contention:
      
         - Add --lock-cgroup option to see contention by cgroups. This should
           be used with BPF only (using -b option).
      
             $ sudo perf lock con -ab --lock-cgroup -- sleep 1
              contended   total wait     max wait     avg wait   cgroup
      
                    835     14.06 ms     41.19 us     16.83 us   /system.slice/led.service
                     25    122.38 us     13.77 us      4.89 us   /
                     44     23.73 us      3.87 us       539 ns   /user.slice/user-657345.slice/session-c4.scope
                      1       491 ns       491 ns       491 ns   /system.slice/connectd.service
      
         - Add -G/--cgroup-filter option to see contention only for given
           cgroups.
      
           This can be useful when you identified a cgroup in the above
           command and want to investigate more on it. It also works with
           other output options like -t/--threads and -l/--lock-addr.
      
             $ sudo perf lock con -ab -G /user.slice/user-657345.slice/session-c4.scope -- sleep 1
              contended   total wait     max wait     avg wait         type   caller
      
                      8     77.11 us     17.98 us      9.64 us     spinlock   futex_wake+0xc8
                      2     24.56 us     14.66 us     12.28 us     spinlock   tick_do_update_jiffies64+0x25
                      1      4.97 us      4.97 us      4.97 us     spinlock   futex_q_lock+0x2a
      
         - Use per-cpu array for better spinlock tracking. This is to improve
           performance of the BPF program and to avoid nested contention on a
           lock in the BPF hash map.
      
         - Update callstack check for PowerPC. To find a representative caller
           of a lock, it needs to look up the call stacks. It ends the lookup
           when it sees 0 in the call stack buffer. However, PowerPC call
           stacks can have 0 values in the beginning so skip them when it
           expects valid call stacks after.
      
        perf kwork:
      
         - Support 'sched' class (for -k option) so that it can see task
           scheduling event (using sched_switch tracepoint) as well as irq and
           workqueue items.
      
         - Add perf kwork top subcommand to show more accurate cpu utilization
           with sched class above. It works both with a recorded data (using
           perf kwork record command) and BPF (using -b option). Unlike perf
           top command, it does not support interactive mode (yet).
      
             $ sudo perf kwork top -b -k sched
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  : 160702.425 ms, 8 cpus
             %Cpu(s):  36.00% id,   0.00% hi,   0.00% si
             %Cpu0   [||||||||||||||||||              61.66%]
             %Cpu1   [||||||||||||||||||              61.27%]
             %Cpu2   [|||||||||||||||||||             66.40%]
             %Cpu3   [||||||||||||||||||              61.28%]
             %Cpu4   [||||||||||||||||||              61.82%]
             %Cpu5   [|||||||||||||||||||||||         77.41%]
             %Cpu6   [||||||||||||||||||              61.73%]
             %Cpu7   [||||||||||||||||||              63.25%]
      
                   PID     SPID    %CPU           RUNTIME  COMMMAND
               -------------------------------------------------------------
                     0        0   38.72       8089.463 ms  [swapper/1]
                     0        0   38.71       8084.547 ms  [swapper/3]
                     0        0   38.33       8007.532 ms  [swapper/0]
                     0        0   38.26       7992.985 ms  [swapper/6]
                     0        0   38.17       7971.865 ms  [swapper/4]
                     0        0   36.74       7447.765 ms  [swapper/7]
                     0        0   33.59       6486.942 ms  [swapper/2]
                     0        0   22.58       3771.268 ms  [swapper/5]
                  9545     9351    2.48        447.136 ms  sched-messaging
                  9574     9351    2.09        418.583 ms  sched-messaging
                  9724     9351    2.05        372.407 ms  sched-messaging
                  9531     9351    2.01        368.804 ms  sched-messaging
                  9512     9351    2.00        362.250 ms  sched-messaging
                  9514     9351    1.95        357.767 ms  sched-messaging
                  9538     9351    1.86        384.476 ms  sched-messaging
                  9712     9351    1.84        386.490 ms  sched-messaging
                  9723     9351    1.83        380.021 ms  sched-messaging
                  9722     9351    1.82        382.738 ms  sched-messaging
                  9517     9351    1.81        354.794 ms  sched-messaging
                  9559     9351    1.79        344.305 ms  sched-messaging
                  9725     9351    1.77        365.315 ms  sched-messaging
             <SNIP>
      
         - Add hard/soft-irq statistics to perf kwork top. This will show the
           total CPU utilization with IRQ stats like below:
      
             $ sudo perf kwork top -b -k sched,irq,softirq
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  :  12554.889 ms, 8 cpus
             %Cpu(s):  96.23% id,   0.10% hi,   0.19% si      <---- here
             %Cpu0   [|                                4.60%]
             %Cpu1   [|                                4.59%]
             %Cpu2   [                                 2.73%]
             %Cpu3   [|                                3.81%]
             <SNIP>
      
        perf bench:
      
         - Add -G/--cgroups option to perf bench sched pipe. The pipe bench is
           good to measure context switch overhead. With this option, it puts
           the reader and writer tasks in separate cgroups to enforce context
           switch between two different cgroups.
      
           Also it needs to set CPU affinity of the tasks in a CPU to
           accurately measure the impact of cgroup context switches.
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.307 [sec]
      
                    3.078180 usecs/op
                      324867 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000':
      
                        200,026      context-switches
                             63      cgroup-switches
      
                    0.321637922 seconds time elapsed
      
           You can see small number of cgroup-switches because both write and
           read tasks are in the same cgroup.
      
             $ sudo mkdir /sys/fs/cgroup/{AAA,BBB}
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.351 [sec]
      
                    3.512990 usecs/op
                      284657 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB':
      
                        200,020      context-switches
                        200,019      cgroup-switches
      
                    0.365034567 seconds time elapsed
      
           Now context-switches and cgroup-switches are almost same. And you
           can see the pipe operation took little more.
      
         - Kill child processes when perf bench sched messaging exited
           abnormally. Otherwise it'd leave the child doing unnecessary work.
      
        perf test:
      
         - Fix various shellcheck issues on the tests written in shell script.
      
         - Skip tests when condition is not satisfied:
            - object code reading test for non-text section addresses.
            - CoreSight test if cs_etm// event is not available.
            - lock contention test if not enough CPUs.
      
        Event parsing:
      
         - Make PMU alias name loading lazy to reduce the startup time in the
           event parsing code for perf record, stat and others in the general
           case.
      
         - Lazily compute PMU default config. In the same sense, delay PMU
           initialization until it's really needed to reduce the startup cost.
      
         - Fix event term values that are raw events. The event specification
           can have several terms including event name. But sometimes it
           clashes with raw event encoding which starts with 'r' and has
           hex-digits.
      
           For example, an event named 'read' should be processed as a normal
           event but it was mis-treated as a raw encoding and caused a
           failure.
      
             $ perf stat -e 'uncore_imc_free_running/event=read/' -a sleep 1
             event syntax error: '..nning/event=read/'
                                               \___ parser error
             Run 'perf list' for a list of valid events
      
              Usage: perf stat [<options>] [<command>]
      
                 -e, --event <event> event selector. use 'perf list' to list available events
      
        Event metrics:
      
         - Add "Compat" regex to match event with multiple identifiers.
      
         - Usual updates for Intel, Power10, Arm telemetry/CMN and AmpereOne.
      
        Misc:
      
         - Assorted memory leak fixes and footprint reduction.
      
         - Add "bpf_skeletons" to perf version --build-options so that users
           can check whether their perf tools have BPF support easily.
      
         - Fix unaligned access in Intel-PT packet decoder found by
           undefined-behavior sanitizer.
      
         - Avoid frequency mode for the dummy event. Surprisingly it'd impact
           kernel timer tick handler performance by force iterating all PMU
           events.
      
         - Update bash shell completion for events and metrics"
      
      * tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (187 commits)
        perf vendor events intel: Update tsx_cycles_per_elision metrics
        perf vendor events intel: Update bonnell version number to v5
        perf vendor events intel: Update westmereex events to v4
        perf vendor events intel: Update meteorlake events to v1.06
        perf vendor events intel: Update knightslanding events to v16
        perf vendor events intel: Add typo fix for ivybridge FP
        perf vendor events intel: Update a spelling in haswell/haswellx
        perf vendor events intel: Update emeraldrapids to v1.01
        perf vendor events intel: Update alderlake/alderlake events to v1.23
        perf build: Disable BPF skeletons if clang version is < 12.0.1
        perf callchain: Fix spelling mistake "statisitcs" -> "statistics"
        perf report: Fix spelling mistake "heirachy" -> "hierarchy"
        perf python: Fix binding linkage due to rename and move of evsel__increase_rlimit()
        perf tests: test_arm_coresight: Simplify source iteration
        perf vendor events intel: Add tigerlake two metrics
        perf vendor events intel: Add broadwellde two metrics
        perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric
        perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit
        perf callchain: Minor layout changes to callchain_list
        perf callchain: Make brtype_stat in callchain_list optional
        ...
      7ab89417
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 31e5f934
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Remove eventfs_file descriptor
      
         This is the biggest change, and the second part of making eventfs
         create its files dynamically.
      
         In 6.6 the first part was added, and that maintained a one to one
         mapping between eventfs meta descriptors and the directories and file
         inodes and dentries that were dynamically created. The directories
         were represented by a eventfs_inode and the files were represented by
         a eventfs_file.
      
         In v6.7 the eventfs_file is removed. As all events have the same
         directory make up (sched_switch has an "enable", "id", "format", etc
         files), the handing of what files are underneath each leaf eventfs
         directory is moved back to the tracing subsystem via a callback.
      
         When an event is added to the eventfs, it registers an array of
         evenfs_entry's. These hold the names of the files and the callbacks
         to call when the file is referenced. The callback gets the name so
         that the same callback may be used by multiple files. The callback
         then supplies the filesystem_operations structure needed to create
         this file.
      
         This has brought the memory footprint of creating multiple eventfs
         instances down by 2 megs each!
      
       - User events now has persistent events that are not associated to a
         single processes. These are privileged events that hang around even
         if no process is attached to them
      
       - Clean up of seq_buf
      
         There's talk about using seq_buf more to replace strscpy() and
         friends. But this also requires some minor modifications of seq_buf
         to be able to do this
      
       - Expand instance ring buffers individually
      
         Currently if boot up creates an instance, and a trace event is
         enabled on that instance, the ring buffer for that instance and the
         top level ring buffer are expanded (1.4 MB per CPU). This wastes
         memory as this happens when nothing is using the top level instance
      
       - Other minor clean ups and fixes
      
      * tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (34 commits)
        seq_buf: Export seq_buf_puts()
        seq_buf: Export seq_buf_putc()
        eventfs: Use simple_recursive_removal() to clean up dentries
        eventfs: Remove special processing of dput() of events directory
        eventfs: Delete eventfs_inode when the last dentry is freed
        eventfs: Hold eventfs_mutex when calling callback functions
        eventfs: Save ownership and mode
        eventfs: Test for ei->is_freed when accessing ei->dentry
        eventfs: Have a free_ei() that just frees the eventfs_inode
        eventfs: Remove "is_freed" union with rcu head
        eventfs: Fix kerneldoc of eventfs_remove_rec()
        tracing: Have the user copy of synthetic event address use correct context
        eventfs: Remove extra dget() in eventfs_create_events_dir()
        tracing: Have trace_event_file have ref counters
        seq_buf: Introduce DECLARE_SEQ_BUF and seq_buf_str()
        eventfs: Fix typo in eventfs_inode union comment
        eventfs: Fix WARN_ON() in create_file_dentry()
        powerpc: Remove initialisation of readpos
        tracing/histograms: Simplify last_cmd_set()
        seq_buf: fix a misleading comment
        ...
      31e5f934