1. 01 Jul, 2023 13 commits
    • Linus Torvalds's avatar
      Merge tag 'sysctl-fixes-v2-v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · be21a73e
      Linus Torvalds authored
      Pull another sysctl fix from Luis Chamberlain:
       "Just one minor nit I forgot to merge"
      
      * tag 'sysctl-fixes-v2-v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        sysctl: set variable sysctl_mount_point storage-class-specifier to static
      be21a73e
    • Linus Torvalds's avatar
      Merge tag 'flex-array-transformations-6.5-rc1' of... · 170ab6c5
      Linus Torvalds authored
      Merge tag 'flex-array-transformations-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull flexible-array update from Gustavo Silva:
       "Transform a zero-length array into a C99 flexible-array member.
      
        This addresses a build failure with Clang by fixing multiple
        '-Warray-bounds' warnings in drivers/staging/ks7010/ks_wlan_net.c"
      
      * tag 'flex-array-transformations-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        uapi: wireless: Replace zero-length array with flexible-array member
      170ab6c5
    • Christian Brauner's avatar
      pid: use struct_size_t() helper · dd546618
      Christian Brauner authored
      Before commit d67790dd ("overflow: Add struct_size_t() helper") only
      struct_size() existed, which expects a valid pointer instance containing
      the flexible array.
      
      However, when we determine the default struct pid allocation size for
      the associated kmem cache of a pid namespace we need to take the nesting
      depth of the pid namespace into account without an variable instance
      necessarily being available.
      
      In commit b69f0aeb ("pid: Replace struct pid 1-element array with
      flex-array") we used to handle this the old fashioned way and cast NULL
      to a struct pid pointer type. However, we do apparently have a dedicated
      struct_size_t() helper for exactly this case. So switch to that.
      Suggested-by: default avatarKees Cook <keescook@chromium.org>
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd546618
    • Liam R. Howlett's avatar
      mm: Update do_vmi_align_munmap() return semantics · 408579cd
      Liam R. Howlett authored
      Since do_vmi_align_munmap() will always honor the downgrade request on
      the success, the callers no longer have to deal with confusing return
      codes.  Since all callers that request downgrade actually want the lock
      to be dropped, change the downgrade to an unlock request.
      
      Note that the lock still needs to be held in read mode during the page
      table clean up to avoid races with a map request.
      
      Update do_vmi_align_munmap() to return 0 for success.  Clean up the
      callers and comments to always expect the unlock to be honored on the
      success path.  The error path will always leave the lock untouched.
      
      As part of the cleanup, the wrapper function do_vmi_munmap() and callers
      to the wrapper are also updated.
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/linux-mm/20230629191414.1215929-1-willy@infradead.org/Signed-off-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      408579cd
    • Matthew Wilcox (Oracle)'s avatar
      mm: Always downgrade mmap_lock if requested · e4bd84c0
      Matthew Wilcox (Oracle) authored
      Now that stack growth must always hold the mmap_lock for write, we can
      always downgrade the mmap_lock to read and safely unmap pages from the
      page table, even if we're next to a stack.
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e4bd84c0
    • Max Filippov's avatar
      xtensa: fix lock_mm_and_find_vma in case VMA not found · 03f88937
      Max Filippov authored
      MMU version of lock_mm_and_find_vma releases the mm lock before
      returning when VMA is not found. Do the same in noMMU version.
      This fixes hang on an attempt to handle protection fault.
      
      Fixes: d85a143b ("xtensa: fix NOMMU build with lock_mm_and_find_vma() conversion")
      Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      03f88937
    • Linus Torvalds's avatar
      Merge tag '6.5-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · a507db1d
      Linus Torvalds authored
      Pull smb client updates from Steve French:
      
       - Deferred close fix
      
       - Debugging improvements: display missing mount option, dump rc on
         invalidate inode failures, print client_guid in DebugData, log
         session id when matching session not found in reconnect, new dynamic
         tracepoint for session not found
      
       - Mount fixes including: potential null dereference, and possible
         memory leak and path name parsing when double slashes
      
       - Fix potential use after free in compounding
      
       - Two crediting (flow control) fixes: fix for crediting leak (stress
         scenario with excess lease credits) and better locking around
         updating credits
      
       - Three cleanups from issues pointed out by the kernel test robot
      
       - Session state check improvements (including for potential use after
         free)
      
       - DFS fixes: Fix for getattr on link when DFS disabled, fix for DFS
         mounts to same share with different prefix paths, DFS mount error
         checking improvement
      
      * tag '6.5-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: new dynamic tracepoint to track ses not found errors
        cifs: log session id when a matching ses is not found
        smb: client: improve DFS mount check
        smb: client: fix shared DFS root mounts with different prefixes
        smb: client: fix parsing of source mount option
        smb: client: fix broken file attrs with nodfs mounts
        cifs: print client_guid in DebugData
        cifs: fix session state check in smb2_find_smb_ses
        cifs: fix session state check in reconnect to avoid use-after-free issue
        cifs: do all necessary checks for credits within or before locking
        cifs: prevent use-after-free by freeing the cfile later
        smb: client: fix warning in generic_ip_connect()
        smb: client: fix warning in CIFSFindNext()
        smb: client: fix warning in CIFSFindFirst()
        smb3: do not reserve too many oplock credits
        cifs: print more detail when invalidate_inode_mapping fails
        smb: client: fix warning in cifs_smb3_do_mount()
        smb: client: fix warning in cifs_match_super()
        cifs: print nosharesock value while dumping mount options
        SMB3: Do not send lease break acknowledgment if all file handles have been closed
      a507db1d
    • Linus Torvalds's avatar
      Merge tag '6.5-rc-ksmbd-server-fixes-part1' of git://git.samba.org/ksmbd · 8976e9d0
      Linus Torvalds authored
      Pull ksmbd server updates from Steve French:
      
       - two fixes for compounding bugs (make sure no out of bound reads with
         less common combinations of commands in the compound)
      
       - eight minor cleanup patches (e.g. simplifying return values, replace
         one element array, use of kzalloc where simpler)
      
       - fix for clang warning on possible overflow in filename conversion
      
      * tag '6.5-rc-ksmbd-server-fixes-part1' of git://git.samba.org/ksmbd:
        ksmbd: avoid field overflow warning
        ksmbd: Replace one-element array with flexible-array member
        ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
        ksmbd: add missing compound request handing in some commands
        ksmbd: fix out of bounds read in smb2_sess_setup
        ksmbd: Replace the ternary conditional operator with min()
        ksmbd: use kvzalloc instead of kvmalloc
        ksmbd: Change the return value of ksmbd_vfs_query_maximal_access to void
        ksmbd: return a literal instead of 'err' in ksmbd_vfs_kern_path_locked()
        ksmbd: use kzalloc() instead of __GFP_ZERO
        ksmbd: remove unused ksmbd_tree_conn_share function
      8976e9d0
    • Linus Torvalds's avatar
      Merge tag 'nfsd-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · ee152be1
      Linus Torvalds authored
      Pull nfsd fix from Chuck Lever:
      
       - Fix ordering of attributes in NFSv4 GETATTR replies
      
      * tag 'nfsd-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
        nfsd: Fix creation time serialization order
      ee152be1
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.5' of... · f4ce392b
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching update from Petr Mladek:
      
       - Make a variable static to fix a sparse warning
      
      * tag 'livepatching-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Make 'klp_stack_entries' static
      f4ce392b
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 937d96d2
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
       "Although some more stuff is brewing, the EFI changes that are ready
        for mainline are few this cycle:
      
         - improve the PCI DMA paranoia logic in the EFI stub
      
         - some constification changes
      
         - add statfs support to efivarfs
      
         - allow user space to enumerate updatable firmware resources without
           CAP_SYS_ADMIN"
      
      * tag 'efi-next-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi/libstub: Disable PCI DMA before grabbing the EFI memory map
        efi/esrt: Allow ESRT access without CAP_SYS_ADMIN
        efivarfs: expose used and total size
        efi: make kobj_type structure constant
        efi: x86: make kobj_type structure constant
      937d96d2
    • Linus Torvalds's avatar
      Merge tag 'v6.5-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 5d95ff84
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Add linear akcipher/sig API
         - Add tfm cloning (hmac, cmac)
         - Add statesize to crypto_ahash
      
        Algorithms:
         - Allow only odd e and restrict value in FIPS mode for RSA
         - Replace LFSR with SHA3-256 in jitter
         - Add interface for gathering of raw entropy in jitter
      
        Drivers:
         - Fix race on data_avail and actual data in hwrng/virtio
         - Add hash and HMAC support in starfive
         - Add RSA algo support in starfive
         - Add support for PCI device 0x156E in ccp"
      
      * tag 'v6.5-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (85 commits)
        crypto: akcipher - Do not copy dst if it is NULL
        crypto: sig - Fix verify call
        crypto: akcipher - Set request tfm on sync path
        crypto: sm2 - Provide sm2_compute_z_digest when sm2 is disabled
        hwrng: imx-rngc - switch to DEFINE_SIMPLE_DEV_PM_OPS
        hwrng: st - keep clock enabled while hwrng is registered
        hwrng: st - support compile-testing
        hwrng: imx-rngc - fix the timeout for init and self check
        KEYS: asymmetric: Use new crypto interface without scatterlists
        KEYS: asymmetric: Move sm2 code into x509_public_key
        KEYS: Add forward declaration in asymmetric-parser.h
        crypto: sig - Add interface for sign/verify
        crypto: akcipher - Add sync interface without SG lists
        crypto: cipher - On clone do crypto_mod_get()
        crypto: api - Add __crypto_alloc_tfmgfp
        crypto: api - Remove crypto_init_ops()
        crypto: rsa - allow only odd e and restrict value in FIPS mode
        crypto: geniv - Split geniv out of AEAD Kconfig option
        crypto: algboss - Add missing dependency on RNG2
        crypto: starfive - Add RSA algo support
        ...
      5d95ff84
    • Linus Torvalds's avatar
      xtensa: fix NOMMU build with lock_mm_and_find_vma() conversion · d85a143b
      Linus Torvalds authored
      It turns out that xtensa has a really odd configuration situation: you
      can do a no-MMU config, but still have the page fault code enabled.
      Which doesn't sound all that sensible, but it turns out that xtensa can
      have protection faults even without the MMU, and we have this:
      
          config PFAULT
              bool "Handle protection faults" if EXPERT && !MMU
              default y
              help
                Handle protection faults. MMU configurations must enable it.
                noMMU configurations may disable it if used memory map never
                generates protection faults or faults are always fatal.
      
                If unsure, say Y.
      
      which completely violated my expectations of the page fault handling.
      
      End result: Guenter reports that the xtensa no-MMU builds all fail with
      
        arch/xtensa/mm/fault.c: In function ‘do_page_fault’:
        arch/xtensa/mm/fault.c:133:8: error: implicit declaration of function ‘lock_mm_and_find_vma’
      
      because I never exposed the new lock_mm_and_find_vma() function for the
      no-MMU case.
      
      Doing so is simple enough, and fixes the problem.
      Reported-and-tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Fixes: a050ba1e ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d85a143b
  2. 30 Jun, 2023 27 commits
    • Tom Rix's avatar
      sysctl: set variable sysctl_mount_point storage-class-specifier to static · 7fffbc71
      Tom Rix authored
      smatch reports
      fs/proc/proc_sysctl.c:32:18: warning: symbol
        'sysctl_mount_point' was not declared. Should it be static?
      
      This variable is only used in its defining file, so it should be static.
      Signed-off-by: default avatarTom Rix <trix@redhat.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      7fffbc71
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.5-rc1' of https://github.com/awilliam/linux-vfio · b25f62cc
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Adjust log levels for common messages (Oleksandr Natalenko, Alex
         Williamson)
      
       - Support for dynamic MSI-X allocation (Reinette Chatre)
      
       - Enable and report PCIe AtomicOp Completer capabilities (Alex
         Williamson)
      
       - Cleanup Kconfigs for vfio bus drivers (Alex Williamson)
      
       - Add support for CDX bus based devices (Nipun Gupta)
      
       - Fix race with concurrent mdev initialization (Eric Farman)
      
      * tag 'vfio-v6.5-rc1' of https://github.com/awilliam/linux-vfio:
        vfio/mdev: Move the compat_class initialization to module init
        vfio/cdx: add support for CDX bus
        vfio/fsl: Create Kconfig sub-menu
        vfio/platform: Cleanup Kconfig
        vfio/pci: Cleanup Kconfig
        vfio/pci-core: Add capability for AtomicOp completer support
        vfio/pci: Also demote hiding standard cap messages
        vfio/pci: Clear VFIO_IRQ_INFO_NORESIZE for MSI-X
        vfio/pci: Support dynamic MSI-X
        vfio/pci: Probe and store ability to support dynamic MSI-X
        vfio/pci: Use bitfield for struct vfio_pci_core_device flags
        vfio/pci: Update stale comment
        vfio/pci: Remove interrupt context counter
        vfio/pci: Use xarray for interrupt context storage
        vfio/pci: Move to single error path
        vfio/pci: Prepare for dynamic interrupt context storage
        vfio/pci: Remove negative check on unsigned vector
        vfio/pci: Consolidate irq cleanup on MSI/MSI-X disable
        vfio/pci: demote hiding ecap messages to debug level
      b25f62cc
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 9070577a
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
      
         - Export pcie_retrain_link() for use outside ASPM
      
         - Add Data Link Layer Link Active Reporting as another way for
           pcie_retrain_link() to determine the link is up
      
         - Work around link training failures (especially on the ASMedia
           ASM2824 switch) by training first at 2.5GT/s and then attempting
           higher rates
      
        Resource management:
      
         - When we coalesce host bridge windows, remove invalidated resources
           from the resource tree so future allocations work correctly
      
        Hotplug:
      
         - Cancel bringup sequence if card is not present, to keep from
           blinking Power Indicator indefinitely
      
         - Reassign bridge resources if necessary for ACPI hotplug
      
        Driver binding:
      
         - Convert platform_device .remove() callbacks to return void instead
           of a mostly useless int
      
        Power management:
      
         - Reduce wait time for secondary bus to be ready to speed up resume
      
         - Avoid putting EloPOS E2/S2/H2 (as well as Elo i2) PCIe Ports in
           D3cold
      
         - Call _REG when transitioning D-states so AML that uses the PCI
           config space OpRegion works, which fixes some ASMedia GPIO
           controllers after resume
      
        Virtualization:
      
         - Delay extra 250ms after FLR of Solidigm P44 Pro NVMe to avoid KVM
           hang when guest is rebooted
      
         - Add function 1 DMA alias quirk for Marvell 88SE9235
      
        Error handling:
      
         - Unexport pci_save_aer_state() since it's only used in drivers/pci/
      
         - Drop recommendation for drivers to configure AER Capability, since
           the PCI core does this for all devices
      
        ASPM:
      
         - Disable ASPM on MFD function removal to avoid use-after-free
      
         - Tighten up pci_enable_link_state() and pci_disable_link_state()
           interfaces so they don't enable/disable states the driver didn't
           specify
      
         - Avoid link retraining race that can happen if ASPM sets link
           control parameters while the link is in the midst of training for
           some other reason
      
        Endpoint framework:
      
         - Change "PCI Endpoint Virtual NTB driver" Kconfig prompt to be
           different from "PCI Endpoint NTB driver"
      
         - Automatically create a function specific attributes group for
           endpoint drivers to avoid reference counting issues
      
         - Fix many EPC test issues
      
         - Return pci_epf_type_add_cfs() error if EPF has no driver
      
         - Add kernel-doc for pci_epc_raise_irq() and pci_epc_map_msi_irq()
           MSI vector parameters
      
         - Pass EPF device ID to driver probe functions
      
         - Return -EALREADY if EPC has already been started/stopped
      
         - Add linkdown notifier support and use it in qcom-ep
      
         - Add Bus Master Enable event support and use it in qcom-ep
      
         - Add Qualcomm Modem Host Interface (MHI) endpoint driver
      
         - Add Layerscape PME interrupt handling to manage link-up
           notification
      
        Cadence PCIe controller driver:
      
         - Wait for link retrain to complete when working around the J721E
           i2085 erratum with Gen2 mode
      
        Faraday FTPC100 PCI controller driver:
      
         - Release clock resources on error paths
      
        Freescale i.MX6 PCIe controller driver:
      
         - Save and restore Root Port MSI control to work around hardware defect
      
        Intel VMD host bridge driver:
      
         - Reset VMD config register between soft reboots
      
         - Capture pci_reset_bus() return value instead of printing junk when
           it fails
      
        Qualcomm PCIe controller driver:
      
         - Add SDX65 endpoint compatible string to DT binding
      
         - Disable register write access after init for IP v2.3.3, v2.9.0
      
         - Use DWC helpers for enabling/disabling writes to DBI registers
      
         - Hide slot hotplug capability for IP v1.0.0, v1.9.0, v2.1.0, v2.3.2,
           v2.3.3, v2.7.0, v2.9.0
      
         - Reuse v2.3.2 post-init sequence for v2.4.0
      
        Renesas R-Car PCIe controller driver:
      
         - Remove unused static pcie_base and pcie_dev
      
        Rockchip PCIe controller driver:
      
         - Remove writes to unused registers
      
         - Write endpoint Device ID using correct register
      
         - Assert PCI Configuration Enable bit after probe so endpoint
           responds instead of generating Request Retry Status messages
      
         - Poll waiting for PHY PLLs to lock
      
         - Update RK3399 example DT binding to be valid
      
         - Use RK3399 PCIE_CLIENT_LEGACY_INT_CTRL to generate INTx instead of
           manually generating PCIe message
      
         - Use multiple windows to avoid address translation conflicts
      
         - Use u32 (not u16) when accessing 32-bit registers
      
         - Hide MSI-X Capability, since RK3399 can't generate MSI-X
      
         - Set endpoint controller required alignment to 256
      
        Synopsys DesignWare PCIe controller driver:
      
         - Wait for link to come up only if we've initiated link training
      
        Miscellaneous:
      
         - Add pci_clear_master() stub for non-CONFIG_PCI"
      
      * tag 'pci-v6.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (116 commits)
        Documentation: PCI: correct spelling
        PCI: vmd: Fix uninitialized variable usage in vmd_enable_domain()
        PCI: xgene-msi: Convert to platform remove callback returning void
        PCI: tegra: Convert to platform remove callback returning void
        PCI: rockchip-host: Convert to platform remove callback returning void
        PCI: mvebu: Convert to platform remove callback returning void
        PCI: mt7621: Convert to platform remove callback returning void
        PCI: mediatek-gen3: Convert to platform remove callback returning void
        PCI: mediatek: Convert to platform remove callback returning void
        PCI: iproc: Convert to platform remove callback returning void
        PCI: hisi-error: Convert to platform remove callback returning void
        PCI: dwc: Convert to platform remove callback returning void
        PCI: j721e: Convert to platform remove callback returning void
        PCI: brcmstb: Convert to platform remove callback returning void
        PCI: altera-msi: Convert to platform remove callback returning void
        PCI: altera: Convert to platform remove callback returning void
        PCI: aardvark: Convert to platform remove callback returning void
        PCI: rcar: Use correct product family name for Renesas R-Car
        PCI: layerscape: Add the endpoint linkup notifier support
        PCI: endpoint: pci-epf-vntb: Fix typo in comments
        ...
      9070577a
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 28968f38
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "No core changes this time
      
        New drivers:
      
         - Tegra234 support
      
         - Qualcomm IPQ5018 support
      
         - Intel Meteor Lake-S support
      
         - Qualcomm SDX75 subdriver
      
         - Qualcomm SPMI-based PM8953 support
      
        Improvements:
      
         - Fix up support for GPIO3 on the AXP209
      
         - Push-pull drive configuration support for the AT91 PIO4
      
         - Fix misc non-urgent bugs in the AMD driver
      
         - Misc non-urgent improved error handling
      
         - Misc janitorial and minor improvements"
      
      * tag 'pinctrl-v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (75 commits)
        pinctrl: cherryview: Drop goto label
        pinctrl: baytrail: invert if condition
        pinctrl: baytrail: add warning for BYT_VAL_REG retrieval failure
        pinctrl: baytrail: reduce scope of spinlock in ->dbg_show() hook
        pinctrl: tegra: avoid duplicate field initializers
        dt-bindings: pinctrl: qcom,sdx65-tlmm: add pcie_clkreq function
        pinctrl: mlxbf3: remove broken Kconfig 'select'
        pinctrl: spear: Remove unused of_gpio.h inclusion
        pinctrl: lantiq: Remove unused of_gpio.h inclusion
        pinctrl: at91-pio4: check return value of devm_kasprintf()
        pinctrl: microchip-sgpio: check return value of devm_kasprintf()
        pinctrl: freescale: Fix a memory out of bounds when num_configs is 1
        pinctrl: intel: refine ->irq_set_type() hook
        pinctrl: intel: refine ->set_mux() hook
        pinctrl: baytrail: Use str_hi_lo() helper
        lib/string_choices: Add str_high_low() helper
        lib/string_helpers: Split out string_choices.h
        lib/string_helpers: Add missing header files to MAINTAINERS database
        pinctrl: npcm7xx: Add missing check for ioremap
        pinctrl:sunplus: Add check for kmalloc
        ...
      28968f38
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.5-1' of... · 9c3255a8
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
       "AMD PMC and PMF drivers:
         - Various bugfixes
         - Improved debugging support
      
        Intel PMC:
         - Refactor to support hw with multiple PMCs
         - Various other improvements / new hw support
      
        Intel Speed Select Technology (ISST):
         - TPMI Uncore Frequency + Cluster Level Power Controls
         - Various bugfixes
         - tools/intel-speed-select: Misc improvements
      
        Dell-DDV: Add documentation
      
        INT3472 ACPI camera sensor glue code:
         - Evaluate device's _DSM method to control imaging clock
         - Drop the need to have a table with per sensor-model info
      
        Lenovo Yogabook:
         - Refactor / rework to also support Android models
      
        Think-LMI:
         - Multiple improvements and fixes
      
        WMI:
         - Add proper API documentation for the WMI bus
      
        x86-android-tablets:
         - Misc new hw support
      
        Miscellaneous other cleanups / fixes"
      
      * tag 'platform-drivers-x86-v6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (91 commits)
        platform/x86:intel/pmc: Add Meteor Lake IOE-M PMC related maps
        platform/x86:intel/pmc: Add Meteor Lake IOE-P PMC related maps
        platform/x86:intel/pmc: Use SSRAM to discover pwrm base address of primary PMC
        platform/x86:intel/pmc: Discover PMC devices
        platform/x86:intel/pmc: Enable debugfs multiple PMC support
        platform/x86:intel/pmc: Add support to handle multiple PMCs
        platform/x86:intel/pmc: Combine core_init() and core_configure()
        platform/x86:intel/pmc: Update maps for Meteor Lake P/M platforms
        platform/x86/intel: tpmi: Remove hardcoded unit and offset
        platform/x86: int3472: discrete: Log a warning if the pin-numbers don't match
        platform/x86: int3472: discrete: Use FIELD_GET() on the GPIO _DSM return value
        platform/x86: int3472: discrete: Add alternative "AVDD" regulator supply name
        platform/x86: int3472: discrete: Add support for 1 GPIO regulator shared between 2 sensors
        platform/x86: int3472: discrete: Remove sensor_config-s
        platform/x86: int3472: discrete: Drop GPIO remapping support
        platform/x86: apple-gmux: don't use be32_to_cpu and cpu_to_be32
        platform/x86/dell/dell-rbtn: Fix resources leaking on error path
        platform/x86: ISST: Fix usage counter
        platform/x86: ISST: Reset default callback on unregister
        platform/x86: int3472: Switch back to use struct i2c_driver's .probe()
        ...
      9c3255a8
    • Linus Torvalds's avatar
      Merge tag 'for-6.5/dm-changes' of... · 6cdbb090
      Linus Torvalds authored
      Merge tag 'for-6.5/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Update DM crypt to allocate compound pages if possible
      
       - Fix DM crypt target's crypt_ctr_cipher_new return value on invalid
         AEAD cipher
      
       - Fix DM flakey testing target's write bio corruption feature to
         corrupt the data of a cloned bio instead of the original
      
       - Add random_read_corrupt and random_write_corrupt features to DM
         flakey target
      
       - Fix ABBA deadlock in DM thin metadata by resetting associated bufio
         client rather than destroying and recreating it
      
       - A couple other small DM thinp cleanups
      
       - Update DM core to support disabling block core IO stats accounting
         and optimize away code that isn't needed if stats are disabled
      
       - Other small DM core cleanups
      
       - Improve DM integrity target to not require so much memory on 32 bit
         systems. Also only allocate the recalculate buffer as needed (and
         increasingly reduce its size on allocation failure)
      
       - Update DM integrity to use %*ph for printing hexdump of a small
         buffer. Also update DM integrity documentation
      
       - Various DM core ioctl interface hardening. Now more careful about
         alignment of structures and processing of input passed to the kernel
         from userspace.
      
         Also disallow the creation of DM devices named "control", "." or ".."
      
       - Eliminate GFP_NOIO workarounds for __vmalloc and kvmalloc in DM
         core's ioctl and bufio code
      
      * tag 'for-6.5/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (28 commits)
        dm: get rid of GFP_NOIO workarounds for __vmalloc and kvmalloc
        dm integrity: scale down the recalculate buffer if memory allocation fails
        dm integrity: only allocate recalculate buffer when needed
        dm integrity: reduce vmalloc space footprint on 32-bit architectures
        dm ioctl: Refuse to create device named "." or ".."
        dm ioctl: Refuse to create device named "control"
        dm ioctl: Avoid double-fetch of version
        dm ioctl: structs and parameter strings must not overlap
        dm ioctl: Avoid pointer arithmetic overflow
        dm ioctl: Check dm_target_spec is sufficiently aligned
        Documentation: dm-integrity: Document an example of how the tunables relate.
        Documentation: dm-integrity: Document default values.
        Documentation: dm-integrity: Document the meaning of "buffer".
        Documentation: dm-integrity: Fix minor grammatical error.
        dm integrity: Use %*ph for printing hexdump of a small buffer
        dm thin: disable discards for thin-pool if no_discard_passdown
        dm: remove stale/redundant dm_internal_{suspend,resume} prototypes in dm.h
        dm: skip dm-stats work in alloc_io() unless needed
        dm: avoid needless dm_io access if all IO accounting is disabled
        dm: support turning off block-core's io stats accounting
        ...
      6cdbb090
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · ca7ce08d
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, pm80xx, libata-scsi, smartpqi,
        lpfc, qla2xxx).
      
        We have a couple of major core changes impacting other systems:
      
         - Command Duration Limits, which spills into block and ATA
      
         - block level Persistent Reservation Operations, which touches block,
           nvme, target and dm
      
        Both of these are added with merge commits containing a cover letter
        explaining what's going on"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (187 commits)
        scsi: core: Improve warning message in scsi_device_block()
        scsi: core: Replace scsi_target_block() with scsi_block_targets()
        scsi: core: Don't wait for quiesce in scsi_device_block()
        scsi: core: Don't wait for quiesce in scsi_stop_queue()
        scsi: core: Merge scsi_internal_device_block() and device_block()
        scsi: sg: Increase number of devices
        scsi: bsg: Increase number of devices
        scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
        scsi: ufs: ufs-pci: Add support for Intel Arrow Lake
        scsi: sd: sd_zbc: Use PAGE_SECTORS_SHIFT
        scsi: ufs: wb: Add explicit flush_threshold sysfs attribute
        scsi: ufs: ufs-qcom: Switch to the new ICE API
        scsi: ufs: dt-bindings: qcom: Add ICE phandle
        scsi: ufs: ufs-mediatek: Set UFSHCD_QUIRK_MCQ_BROKEN_RTC quirk
        scsi: ufs: ufs-mediatek: Set UFSHCD_QUIRK_MCQ_BROKEN_INTR quirk
        scsi: ufs: core: Add host quirk UFSHCD_QUIRK_MCQ_BROKEN_RTC
        scsi: ufs: core: Add host quirk UFSHCD_QUIRK_MCQ_BROKEN_INTR
        scsi: ufs: core: Remove dedicated hwq for dev command
        scsi: ufs: core: mcq: Fix the incorrect OCS value for the device command
        scsi: ufs: dt-bindings: samsung,exynos: Drop unneeded quotes
        ...
      ca7ce08d
    • Linus Torvalds's avatar
      Merge tag 'ata-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · 1546cd4b
      Linus Torvalds authored
      Pull ata updates from Damien Le Moal:
      
       - Add support for the .remove_new callback to the ata_platform code to
         simplify device removal interface (Uwe)
      
       - Code simplification in ata_dev_revalidate() (Yahu)
      
       - Fix code indentation and coding style in the pata_parport protocol
         modules to avoid warnings from static code analyzers (me)
      
       - Clarify ata_eh_qc_retry() behavior with better comments (Niklas)
      
       - Simplify and improve ata_change_queue_depth() behavior to have a
         consistent behavior between libsas managed devices and libata managed
         devices (e.g. AHCI connected devices) (me)
      
       - Cleanup libata-scsi and libata-eh code to use the ata_ncq_enabled()
         and ata_ncq_supported() helpers instead of open coding flags tests
         (me)
      
       - Cleanup ahci_reset_controller() code (me)
      
       - Change the pata_octeon_cf and sata_svw drivers to use
         of_property_read_reg() to simplify the code (Rob, me)
      
       - Remove unnecessary include files from ahci_octeon driver (me)
      
       - Modify the DesignWare ahci dt bindings to add support for the
         Rockchip RK3588 AHCI (Sebastian)
      
      * tag 'ata-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata: (29 commits)
        dt-bindings: phy: rockchip: rk3588 has two reset lines
        dt-bindings: ata: dwc-ahci: add Rockchip RK3588
        dt-bindings: ata: dwc-ahci: add PHY clocks
        ata: ahci_octeon: Remove unnecessary include
        ata: pata_octeon_cf: Add missing header include
        ata: ahci: Cleanup ahci_reset_controller()
        ata: Use of_property_read_reg() to parse "reg"
        ata: libata-scsi: Use ata_ncq_supported in ata_scsi_dev_config()
        ata: libata-eh: Use ata_ncq_enabled() in ata_eh_speed_down()
        ata: libata-sata: Improve ata_change_queue_depth()
        ata: libata-sata: Simplify ata_change_queue_depth()
        ata: libata-eh: Clarify ata_eh_qc_retry() behavior at call site
        ata: pata_parport: Fix on26 module code indentation and style
        ata: pata_parport: Fix on20 module code indentation and style
        ata: pata_parport: Fix ktti module code indentation and style
        ata: pata_parport: Fix kbic module code indentation and style
        ata: pata_parport: Fix friq module code indentation and style
        ata: pata_parport: Fix fit3 module code indentation and style
        ata: pata_parport: Fix fit2 module code indentation and style
        ata: pata_parport: Fix epia module code indentation and style
        ...
      1546cd4b
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.5-1-2023-06-28' of... · b30d7a77
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.5-1-2023-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next
      
      Pull perf tools updates from Namhyung Kim:
       "Internal cleanup:
      
         - Refactor PMU data management to handle hybrid systems in a generic
           way.
      
           Do more work in the lexer so that legacy event types parse more
           easily. A side-effect of this is that if a PMU is specified,
           scanning sysfs is avoided improving start-up time.
      
         - Fix hybrid metrics, for example, the TopdownL1 works for both
           performance and efficiency cores on Intel machines. To support
           this, sort and regroup events after parsing.
      
         - Add reference count checking for the 'thread' data structure.
      
         - Lots of fixes for memory leaks in various places thanks to the ASAN
           and Ian's refcount checker.
      
         - Reduce the binary size by replacing static variables with local or
           dynamically allocated memory.
      
         - Introduce shared_mutex for annotate data to reduce memory
           footprint.
      
         - Make filesystem access library functions more thread safe.
      
        Test:
      
         - Organize cpu_map tests into a single suite.
      
         - Add metric value validation test to check if the values are within
           correct value ranges.
      
         - Add perf stat stdio output test to check if event and metric names
           match.
      
         - Add perf data converter JSON output test.
      
         - Fix a lot of issues reported by shellcheck(1). This is a
           preparation to enable shellcheck by default.
      
         - Make the large x86 new instructions test optional at build time
           using EXTRA_TESTS=1.
      
         - Add a test for libpfm4 events.
      
        perf script:
      
         - Add 'dsoff' outpuf field to display offset from the DSO.
      
            $ perf script -F comm,pid,event,ip,dsoff
               ls 2695501 cycles:      152cc73ef4b5 (/usr/lib/x86_64-linux-gnu/ld-2.31.so+0x1c4b5)
               ls 2695501 cycles:  ffffffff99045b3e ([kernel.kallsyms])
               ls 2695501 cycles:  ffffffff9968e107 ([kernel.kallsyms])
               ls 2695501 cycles:  ffffffffc1f54afb ([kernel.kallsyms])
               ls 2695501 cycles:  ffffffff9968382f ([kernel.kallsyms])
               ls 2695501 cycles:  ffffffff99e00094 ([kernel.kallsyms])
               ls 2695501 cycles:      152cc718a8d0 (/usr/lib/x86_64-linux-gnu/libselinux.so.1+0x68d0)
               ls 2695501 cycles:  ffffffff992a6db0 ([kernel.kallsyms])
      
         - Adjust width for large PID/TID values.
      
        perf report:
      
         - Robustify reading addr2line output for srcline by checking sentinel
           output before the actual data and by using timeout of 1 second.
      
         - Allow config terms (like 'name=ABC') with breakpoint events.
      
            $ perf record -e mem:0x55feb98dd169:x/name=breakpoint/ -p 19646 -- sleep 1
      
        perf annotate:
      
         - Handle x86 instruction suffix like 'l' in 'movl' generally.
      
         - Parse instruction operands properly even with a whitespace. This is
           needed for llvm-objdump output.
      
         - Support RISC-V binutils lookup using the triplet prefixes.
      
         - Add '<' and '>' key to navigate to prev/next symbols in TUI.
      
         - Fix instruction association and parsing for LoongArch.
      
        perf stat:
      
         - Add --per-cache aggregation option, optionally specify a cache
           level like `--per-cache=L2`.
      
            $ sudo perf stat --per-cache -a -e ls_dmnd_fills_from_sys.ext_cache_remote --\
              taskset -c 0-15,64-79,128-143,192-207\
              perf bench sched messaging -p -t -l 100000 -g 8
      
              # Running 'sched/messaging' benchmark:
              # 20 sender and receiver threads per group
              # 8 groups == 320 threads run
      
              Total time: 7.648 [sec]
      
              Performance counter stats for 'system wide':
      
              S0-D0-L3-ID0             16         17,145,912      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID8             16         14,977,628      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID16            16            262,539      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID24            16              3,140      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID32            16             27,403      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID40            16             17,026      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID48            16              7,292      ls_dmnd_fills_from_sys.ext_cache_remote
              S0-D0-L3-ID56            16              2,464      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID64            16         22,489,306      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID72            16         21,455,257      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID80            16             11,619      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID88            16             30,978      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID96            16             37,628      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID104           16             13,594      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID112           16             10,164      ls_dmnd_fills_from_sys.ext_cache_remote
              S1-D1-L3-ID120           16             11,259      ls_dmnd_fills_from_sys.ext_cache_remote
      
                    7.779171484 seconds time elapsed
      
         - Change default (no event/metric) formatting for default metrics so
           that events are hidden and the metric and group appear.
      
             Performance counter stats for 'ls /':
      
                          1.85 msec task-clock                       #    0.594 CPUs utilized
                             0      context-switches                 #    0.000 /sec
                             0      cpu-migrations                   #    0.000 /sec
                            97      page-faults                      #   52.517 K/sec
                     2,187,173      cycles                           #    1.184 GHz
                     2,474,459      instructions                     #    1.13  insn per cycle
                       531,584      branches                         #  287.805 M/sec
                        13,626      branch-misses                    #    2.56% of all branches
                                    TopdownL1                 #     23.5 %  tma_backend_bound
                                                              #     11.5 %  tma_bad_speculation
                                                              #     39.1 %  tma_frontend_bound
                                                              #     25.9 %  tma_retiring
      
         - Allow --cputype option to have any PMU name (not just hybrid).
      
         - Fix output value not to added when it runs multiple times with -r
           option.
      
        perf list:
      
         - Show metricgroup description from JSON file called
           metricgroups.json.
      
         - Allow 'pfm' argument to list only libpfm4 events and check each
           event is supported before showing it.
      
        JSON vendor events:
      
         - Avoid event grouping using "NO_GROUP_EVENTS" constraints. The
           topdown events are correctly grouped even if no group exists.
      
         - Add "Default" metric group to print it in the default output. And
           use "DefaultMetricgroupName" to indicate the real metric group
           name.
      
         - Add AmpereOne core PMU events.
      
        Misc:
      
         - Define man page date correctly.
      
         - Track exception level properly on ARM CoreSight ETM.
      
         - Allow anonymous struct, union or enum when retrieving type names
           from DWARF.
      
         - Fix incorrect filename when calling `perf inject --jit`.
      
         - Handle PLT size correctly on LoongArch"
      
      * tag 'perf-tools-for-v6.5-1-2023-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next: (269 commits)
        perf test: Skip metrics w/o event name in stat STD output linter
        perf test: Reorder event name checks in stat STD output linter
        perf pmu: Remove a hard coded cpu PMU assumption
        perf pmus: Add notion of default PMU for JSON events
        perf unwind: Fix map reference counts
        perf test: Set PERF_EXEC_PATH for script execution
        perf script: Initialize buffer for regs_map()
        perf tests: Fix test_arm_callgraph_fp variable expansion
        perf symbol: Add LoongArch case in get_plt_sizes()
        perf test: Remove x permission from lib/stat_output.sh
        perf test: Rerun failed metrics with longer workload
        perf test: Add skip list for metrics known would fail
        perf test: Add metric value validation test
        perf jit: Fix incorrect file name in DWARF line table
        perf annotate: Fix instruction association and parsing for LoongArch
        perf annotation: Switch lock from a mutex to a sharded_mutex
        perf sharded_mutex: Introduce sharded_mutex
        tools: Fix incorrect calculation of object size by sizeof
        perf subcmd: Fix missing check for return value of malloc() in add_cmdname()
        perf parse-events: Remove unneeded semicolon
        ...
      b30d7a77
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · d2a6fd45
      Linus Torvalds authored
      Pull probes updates from Masami Hiramatsu:
      
       - fprobe: Pass return address to the fprobe entry/exit callbacks so
         that the callbacks don't need to analyze pt_regs/stack to find the
         function return address.
      
       - kprobe events: cleanup usage of TPARG_FL_FENTRY and TPARG_FL_RETURN
         flags so that those are not set at once.
      
       - fprobe events:
            - Add a new fprobe events for tracing arbitrary function entry and
              exit as a trace event.
            - Add a new tracepoint events for tracing raw tracepoint as a
              trace event. This allows user to trace non user-exposed
              tracepoints.
            - Move eprobe's event parser code into probe event common file.
            - Introduce BTF (BPF type format) support to kernel probe (kprobe,
              fprobe and tracepoint probe) events so that user can specify
              traced function arguments by name. This also applies the type of
              argument when fetching the argument.
            - Introduce '$arg*' wildcard support if BTF is available. This
              expands the '$arg*' meta argument to all function argument
              automatically.
            - Check the return value types by BTF. If the function returns
              'void', '$retval' is rejected.
            - Add some selftest script for fprobe events, tracepoint events
              and BTF support.
            - Update documentation about the fprobe events.
            - Some fixes for above features, document and selftests.
      
       - selftests for ftrace (in addition to the new fprobe events):
            - Add a test case for multiple consecutive probes in a function
              which checks if ftrace based kprobe, optimized kprobe and normal
              kprobe can be defined in the same target function.
            - Add a test case for optimized probe, which checks whether kprobe
              can be optimized or not.
      
      * tag 'probes-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing/probes: Fix tracepoint event with $arg* to fetch correct argument
        Documentation: Fix typo of reference file name
        tracing/probes: Fix to return NULL and keep using current argc
        selftests/ftrace: Add new test case which checks for optimized probes
        selftests/ftrace: Add new test case which adds multiple consecutive probes in a function
        Documentation: tracing/probes: Add fprobe event tracing document
        selftests/ftrace: Add BTF arguments test cases
        selftests/ftrace: Add tracepoint probe test case
        tracing/probes: Add BTF retval type support
        tracing/probes: Add $arg* meta argument for all function args
        tracing/probes: Support function parameters if BTF is available
        tracing/probes: Move event parameter fetching code to common parser
        tracing/probes: Add tracepoint support on fprobe_events
        selftests/ftrace: Add fprobe related testcases
        tracing/probes: Add fprobe events for tracing function entry and exit.
        tracing/probes: Avoid setting TPARG_FL_FENTRY and TPARG_FL_RETURN
        fprobe: Pass return address to the handlers
      d2a6fd45
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · cccf0c2e
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Add new feature to have function graph tracer record the return
         value. Adds a new option: funcgraph-retval ; when set, will show the
         return value of a function in the function graph tracer.
      
       - Also add the option: funcgraph-retval-hex where if it is not set, and
         the return value is an error code, then it will return the decimal of
         the error code, otherwise it still reports the hex value.
      
       - Add the file /sys/kernel/tracing/osnoise/per_cpu/cpu<cpu>/timerlat_fd
         That when a application opens it, it becomes the task that the timer
         lat tracer traces. The application can also read this file to find
         out how it's being interrupted.
      
       - Add the file /sys/kernel/tracing/available_filter_functions_addrs
         that works just the same as available_filter_functions but also shows
         the addresses of the functions like kallsyms, except that it gives
         the address of where the fentry/mcount jump/nop is. This is used by
         BPF to make it easier to attach BPF programs to ftrace hooks.
      
       - Replace strlcpy with strscpy in the tracing boot code.
      
      * tag 'trace-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: Fix warnings when building htmldocs for function graph retval
        riscv: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL
        tracing/boot: Replace strlcpy with strscpy
        tracing/timerlat: Add user-space interface
        tracing/osnoise: Skip running osnoise if all instances are off
        tracing/osnoise: Switch from PF_NO_SETAFFINITY to migrate_disable
        ftrace: Show all functions with addresses in available_filter_functions_addrs
        selftests/ftrace: Add funcgraph-retval test case
        LoongArch: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL
        x86/ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL
        arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL
        tracing: Add documentation for funcgraph-retval and funcgraph-retval-hex
        function_graph: Support recording and printing the return value of function
        fgraph: Add declaration of "struct fgraph_ret_regs"
      cccf0c2e
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.5-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 533925cb
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Support for ACPI
      
       - Various cleanups to the ISA string parsing, including making them
         case-insensitive
      
       - Support for the vector extension
      
       - Support for independent irq/softirq stacks
      
       - Our CPU DT binding now has "unevaluatedProperties: false"
      
      * tag 'riscv-for-linus-6.5-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (78 commits)
        riscv: hibernate: remove WARN_ON in save_processor_state
        dt-bindings: riscv: cpus: switch to unevaluatedProperties: false
        dt-bindings: riscv: cpus: add a ref the common cpu schema
        riscv: stack: Add config of thread stack size
        riscv: stack: Support HAVE_SOFTIRQ_ON_OWN_STACK
        riscv: stack: Support HAVE_IRQ_EXIT_ON_IRQ_STACK
        RISC-V: always report presence of extensions formerly part of the base ISA
        dt-bindings: riscv: explicitly mention assumption of Zicntr & Zihpm support
        RISC-V: remove decrement/increment dance in ISA string parser
        RISC-V: rework comments in ISA string parser
        RISC-V: validate riscv,isa at boot, not during ISA string parsing
        RISC-V: split early & late of_node to hartid mapping
        RISC-V: simplify register width check in ISA string parsing
        perf: RISC-V: Limit the number of counters returned from SBI
        riscv: replace deprecated scall with ecall
        riscv: uprobes: Restore thread.bad_cause
        riscv: mm: try VMA lock-based page fault handling first
        riscv: mm: Pre-allocate PGD entries for vmalloc/modules area
        RISC-V: hwprobe: Expose Zba, Zbb, and Zbs
        RISC-V: Track ISA extensions per hart
        ...
      533925cb
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d8b0bd57
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Extend KCSAN support to 32-bit and BookE. Add some KCSAN annotations
      
       - Make ELFv2 ABI the default for 64-bit big-endian kernel builds, and
         use the -mprofile-kernel option (kernel specific ftrace ABI) for big
         endian ELFv2 kernels
      
       - Add initial Dynamic Execution Control Register (DEXCR) support, and
         allow the ROP protection instructions to be used on Power 10
      
       - Various other small features and fixes
      
      Thanks to Aditya Gupta, Aneesh Kumar K.V, Benjamin Gray, Brian King,
      Christophe Leroy, Colin Ian King, Dmitry Torokhov, Gaurav Batra, Jean
      Delvare, Joel Stanley, Marco Elver, Masahiro Yamada, Nageswara R Sastry,
      Nathan Chancellor, Naveen N Rao, Nayna Jain, Nicholas Piggin, Paul
      Gortmaker, Randy Dunlap, Rob Herring, Rohan McLure, Russell Currey,
      Sachin Sant, Timothy Pearson, Tom Rix, and Uwe Kleine-König.
      
      * tag 'powerpc-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (76 commits)
        powerpc: remove checks for binutils older than 2.25
        powerpc: Fail build if using recordmcount with binutils v2.37
        powerpc/iommu: TCEs are incorrectly manipulated with DLPAR add/remove of memory
        powerpc/iommu: Only build sPAPR access functions on pSeries
        powerpc: powernv: Annotate data races in opal events
        powerpc: Mark writes registering ipi to host cpu through kvm and polling
        powerpc: Annotate accesses to ipi message flags
        powerpc: powernv: Fix KCSAN datarace warnings on idle_state contention
        powerpc: Mark [h]ssr_valid accesses in check_return_regs_valid
        powerpc: qspinlock: Enforce qnode writes prior to publishing to queue
        powerpc: qspinlock: Mark accesses to qnode lock checks
        powerpc/powernv/pci: Remove last IODA1 defines
        powerpc/powernv/pci: Remove MVE code
        powerpc/powernv/pci: Remove ioda1 support
        powerpc: 52xx: Make immr_id DT match tables static
        powerpc: mpc512x: Remove open coded "ranges" parsing
        powerpc: fsl_soc: Use of_range_to_resource() for "ranges" parsing
        powerpc: fsl: Use of_property_read_reg() to parse "reg"
        powerpc: fsl_rio: Use of_range_to_resource() for "ranges" parsing
        macintosh: Use of_property_read_reg() to parse "reg"
        ...
      d8b0bd57
    • Kees Cook's avatar
      pid: Replace struct pid 1-element array with flex-array · b69f0aeb
      Kees Cook authored
      For pid namespaces, struct pid uses a dynamically sized array member,
      "numbers".  This was implemented using the ancient 1-element fake
      flexible array, which has been deprecated for decades.
      
      Replace it with a C99 flexible array, refactor the array size
      calculations to use struct_size(), and address elements via indexes.
      Note that the static initializer (which defines a single element) works
      as-is, and requires no special handling.
      
      Without this, CONFIG_UBSAN_BOUNDS (and potentially
      CONFIG_FORTIFY_SOURCE) will trigger bounds checks:
      
        https://lore.kernel.org/lkml/20230517-bushaltestelle-super-e223978c1ba6@brauner
      
      Cc: Christian Brauner <brauner@kernel.org>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Jeff Xu <jeffxu@google.com>
      Cc: Andreas Gruenbacher <agruenba@redhat.com>
      Cc: Daniel Verkamp <dverkamp@chromium.org>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Jeff Xu <jeffxu@google.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Boqun Feng <boqun.feng@gmail.com>
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Frederic Weisbecker <frederic@kernel.org>
      Reported-by: syzbot+ac3b41786a2d0565b6d5@syzkaller.appspotmail.com
      [brauner: dropped unrelated changes and remove 0 with NULL cast]
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b69f0aeb
    • Linus Torvalds's avatar
      Merge tag 'loongarch-6.5' of... · 112e7e21
      Linus Torvalds authored
      Merge tag 'loongarch-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
      
      Pull LoongArch updates from Huacai Chen:
      
       - preliminary ClangBuiltLinux enablement
      
       - add support to clone a time namespace
      
       - add vector extensions support
      
       - add SMT (Simultaneous Multi-Threading) support
      
       - support dbar with different hints
      
       - introduce hardware page table walker
      
       - add jump-label implementation
      
       - add rethook and uprobes support
      
       - some bug fixes and other small changes
      
      * tag 'loongarch-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (28 commits)
        LoongArch: Remove five DIE_* definitions in kdebug.h
        LoongArch: Add uprobes support
        LoongArch: Use larch_insn_gen_break() for kprobes
        LoongArch: Add larch_insn_gen_break() to generate break insns
        LoongArch: Check for AMO instructions in insns_not_supported()
        LoongArch: Move three functions from kprobes.c to inst.c
        LoongArch: Replace kretprobe with rethook
        LoongArch: Add jump-label implementation
        LoongArch: Select HAVE_DEBUG_KMEMLEAK to support kmemleak
        LoongArch: Export some arch-specific pm interfaces
        LoongArch: Introduce hardware page table walker
        LoongArch: Support dbar with different hints
        LoongArch: Add SMT (Simultaneous Multi-Threading) support
        LoongArch: Add vector extensions support
        LoongArch: Add support to clone a time namespace
        Makefile: Add loongarch target flag for Clang compilation
        LoongArch: Mark Clang LTO as working
        LoongArch: Include KBUILD_CPPFLAGS in CHECKFLAGS invocation
        LoongArch: vDSO: Use CLANG_FLAGS instead of filtering out '--target='
        LoongArch: Tweak CFLAGS for Clang compatibility
        ...
      112e7e21
    • Linus Torvalds's avatar
      csky: fix up lock_mm_and_find_vma() conversion · e55e5df1
      Linus Torvalds authored
      As already mentioned in my merge message for the 'expand-stack' branch,
      we have something like 24 different versions of the page fault path for
      all our different architectures, all just _slightly_ different due to
      various historical reasons (usually related to exactly when they
      branched off the original i386 version, and the details of the other
      architectures they had in their history).
      
      And a few of them had some silly mistake in the conversion.
      
      Most of the architectures call the faulting address 'address' in the
      fault path.  But not all.  Some just call it 'addr'.  And if you end up
      doing a bit too much copy-and-paste, you end up with the wrong version
      in the places that do it differently.
      
      In this case it was csky.
      
      Fixes: a050ba1e ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e55e5df1
    • Linus Torvalds's avatar
      Merge tag 'memblock-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · 075e3335
      Linus Torvalds authored
      Pull memblock updates from Mike Rapoport:
      
       - add test for memblock_alloc_node()
      
       - minor coding style fixes
      
       - add flags and nid info in memblock debugfs
      
      * tag 'memblock-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock: Update nid info in memblock debugfs
        memblock: Add flags and nid info in memblock debugfs
        Fix some coding style errors in memblock.c
        Add tests for memblock_alloc_node()
      075e3335
    • Linus Torvalds's avatar
      parisc: fix expand_stack() conversion · ea3f8272
      Linus Torvalds authored
      In commit 8d7071af ("mm: always expand the stack with the mmap write
      lock held") I tried to deal with the remaining odd page fault handling
      cases.  The oddest one is ia64, which has stacks that grow both up and
      down.  And because ia64 was _so_ odd, I asked people to verify the end
      result.
      
      But a close second oddity is parisc, which is the only one that has a
      main stack growing up (our "CONFIG_STACK_GROWSUP" config option).  But
      it looked obvious enough that I didn't worry about it.
      
      I should have worried a bit more.  Not because it was particularly
      complex, but because I just used the wrong variable name.
      
      The previous vma isn't called "prev", it's called "prev_vma".  Blush.
      
      Fixes: 8d7071af ("mm: always expand the stack with the mmap write lock held")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea3f8272
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.5-2023-06-28' of git://git.infradead.org/users/hch/dma-mapping · 1e6d5dea
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - swiotlb cleanups (Petr Tesarik)
      
       - use kvmalloc_array (gaoxu)
      
       - a small step towards removing is_swiotlb_active (Christoph Hellwig)
      
       - fix a Kconfig typo Sui Jingfeng)
      
      * tag 'dma-mapping-6.5-2023-06-28' of git://git.infradead.org/users/hch/dma-mapping:
        drm/nouveau: stop using is_swiotlb_active
        swiotlb: use the atomic counter of total used slabs if available
        swiotlb: remove unused field "used" from struct io_tlb_mem
        dma-remap: use kvmalloc_array/kvfree for larger dma memory remap
        dma-mapping: fix a Kconfig typo
      1e6d5dea
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 7ede5f78
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This cycle saw a focus on rxe and bnxt_re drivers:
      
         - Code cleanups for irdma, rxe, rtrs, hns, vmw_pvrdma
      
         - rxe uses workqueues instead of tasklets
      
         - rxe has better compliance around access checks for MRs and rereg_mr
      
         - mana supportst he 'v2' FW interface for RX coalescing
      
         - hfi1 bug fix for stale cache entries in its MR cache
      
         - mlx5 buf fix to handle FW failures when destroying QPs
      
         - erdma HW has a new doorbell allocation mechanism for uverbs that is
           secure
      
         - Lots of small cleanups and rework in bnxt_re:
             - Use the common mmap functions
             - Support disassociation
             - Improve FW command flow
             - support for 'low latency push'"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (71 commits)
        RDMA/bnxt_re: Fix an IS_ERR() vs NULL check
        RDMA/bnxt_re: Fix spelling mistake "priviledged" -> "privileged"
        RDMA/bnxt_re: Remove duplicated include in bnxt_re/main.c
        RDMA/bnxt_re: Refactor code around bnxt_qplib_map_rc()
        RDMA/bnxt_re: Remove incorrect return check from slow path
        RDMA/bnxt_re: Enable low latency push
        RDMA/bnxt_re: Reorg the bar mapping
        RDMA/bnxt_re: Move the interface version to chip context structure
        RDMA/bnxt_re: Query function capabilities from firmware
        RDMA/bnxt_re: Optimize the bnxt_re_init_hwrm_hdr usage
        RDMA/bnxt_re: Add disassociate ucontext support
        RDMA/bnxt_re: Use the common mmap helper functions
        RDMA/bnxt_re: Initialize opcode while sending message
        RDMA/cma: Remove NULL check before dev_{put, hold}
        RDMA/rxe: Simplify cq->notify code
        RDMA/rxe: Fixes mr access supported list
        RDMA/bnxt_re: optimize the parameters passed to helper functions
        RDMA/bnxt_re: remove redundant cmdq_bitmap
        RDMA/bnxt_re: use firmware provided max request timeout
        RDMA/bnxt_re: cancel all control path command waiters upon error
        ...
      7ede5f78
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 31929ae0
      Linus Torvalds authored
      Pull iommufd updates from Jason Gunthorpe:
       "Just two syzkaller fixes, both for the same basic issue: using the
        area pointer during an access forced unmap while the locks protecting
        it were let go"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Call iopt_area_contig_done() under the lock
        iommufd: Do not access the area pointer after unlocking
      31929ae0
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · d35ac6ac
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
       "Core changes:
         - iova_magazine_alloc() optimization
         - Make flush-queue an IOMMU driver capability
         - Consolidate the error handling around device attachment
      
        AMD IOMMU changes:
         - AVIC Interrupt Remapping Improvements
         - Some minor fixes and cleanups
      
        Intel VT-d changes from Lu Baolu:
         - Small and misc cleanups
      
        ARM-SMMU changes from Will Deacon:
         - Device-tree binding updates:
            - Add missing clocks for SC8280XP and SA8775 Adreno SMMUs
            - Add two new Qualcomm SMMUs in SDX75 and SM6375
         - Workarounds for Arm MMU-700 errata:
            - 1076982: Avoid use of SEV-based cmdq wakeup
            - 2812531: Terminate command batches with a CMD_SYNC
            - Enforce single-stage translation to avoid nesting-related errata
         - Set the correct level hint for range TLB invalidation on teardown
      
        .. and some other minor fixes and cleanups (including Freescale PAMU
        and virtio-iommu changes)"
      
      * tag 'iommu-updates-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (50 commits)
        iommu/vt-d: Remove commented-out code
        iommu/vt-d: Remove two WARN_ON in domain_context_mapping_one()
        iommu/vt-d: Handle the failure case of dmar_reenable_qi()
        iommu/vt-d: Remove unnecessary (void*) conversions
        iommu/amd: Remove extern from function prototypes
        iommu/amd: Use BIT/BIT_ULL macro to define bit fields
        iommu/amd: Fix DTE_IRQ_PHYS_ADDR_MASK macro
        iommu/amd: Fix compile error for unused function
        iommu/amd: Improving Interrupt Remapping Table Invalidation
        iommu/amd: Do not Invalidate IRT when IRTE caching is disabled
        iommu/amd: Introduce Disable IRTE Caching Support
        iommu/amd: Remove the unused struct amd_ir_data.ref
        iommu/amd: Switch amd_iommu_update_ga() to use modify_irte_ga()
        iommu/arm-smmu-v3: Set TTL invalidation hint better
        iommu/arm-smmu-v3: Document nesting-related errata
        iommu/arm-smmu-v3: Add explicit feature for nesting
        iommu/arm-smmu-v3: Document MMU-700 erratum 2812531
        iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982
        dt-bindings: arm-smmu: Add SDX75 SMMU compatible
        dt-bindings: arm-smmu: Add SM6375 GPU SMMU
        ...
      d35ac6ac
    • Linus Torvalds's avatar
      sparc32: fix lock_mm_and_find_vma() conversion · 0b26eadb
      Linus Torvalds authored
      The sparc32 conversion to lock_mm_and_find_vma() in commit a050ba1e
      ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      missed the fact that we didn't actually have a 'regs' pointer available
      in the 'force_user_fault()' case.
      
      It's there in the regular page fault path ("do_sparc_fault()"), but not
      the window underflow/overflow paths.
      
      Which is all fine - we can just pass in a NULL pointer.  The register
      state is only used to avoid deadlock with kernel faults, which is not
      the case for any of these register window faults.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Fixes: a050ba1e ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0b26eadb
    • Linus Torvalds's avatar
      Merge tag 'sysctl-6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 82a2a510
      Linus Torvalds authored
      Pull sysctl fix from Luis Chamberlain:
       "A missed minor fix which Matthieu Baerts noted I had not picked up"
      
      * tag 'sysctl-6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        sysctl: fix unused proc_cap_handler() function warning
      82a2a510
    • Linus Torvalds's avatar
      Merge tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux · 43ec8a62
      Linus Torvalds authored
      Pull mm fix from David Woodhouse:
       "Fix error return from do_vmi_align_munmap()"
      
      * tag 'unmap-fix-20230629' of git://git.infradead.org/users/dwmw2/linux:
        mm/mmap: Fix error return in do_vmi_align_munmap()
      43ec8a62
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.4-rc7-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 3ad7b12c
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix user event write on buffer disabled.
      
        The user events write currently returns the size of what was supposed
        to be written when tracing is disabled and nothing was written.
      
        Instead, behave like trace_marker and return -EBADF, as that is what
        is returned if a file is opened for read only, and a write is
        performed on it. Writing to the buffer that is disabled is like trying
        to write to a file opened for read only, as the buffer still can be
        read, but just not written to.
      
        This also includes test cases for this use case"
      
      * tag 'trace-v6.4-rc7-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        selftests/user_events: Add test cases when event is disabled
        selftests/user_events: Enable the event before write_fault test in ftrace self-test
        tracing/user_events: Fix incorrect return value for writing operation when events are disabled
      3ad7b12c
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2eb15b42
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix suspend-to-idle breakage on multiple systems introduced by one of
        the recent commits that may cause the affected systems to overheat
        while suspended"
      
      * tag 'acpi-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: EC: Fix acpi_ec_dispatch_gpe()
      2eb15b42