1. 04 Jul, 2023 13 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ccf46d85
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "These add support for new hardware (ap807 and AM62A7), fix several
        issues in cpufreq drivers and in the operating performance points
        (OPP) framework, fix up intel_idle after recent changes and add
        documentation.
      
        Specifics:
      
         - Add missing __init annotation to one function in the intel_idle
           drvier (Rafael Wysocki)
      
         - Make intel_pstate use a correct scaling factor when mapping HWP
           performance levels to frequency values on hybrid-capable systems
           with disabled E-cores (Srinivas Pandruvada)
      
         - Fix Kconfig dependencies of the cpufreq-dt-platform driver (Viresh
           Kumar)
      
         - Add support to build cpufreq-dt-platdev as a module (Zhipeng Wang)
      
         - Don't allocate Sparc's cpufreq_driver dynamically (Viresh Kumar)
      
         - Add support for TI's AM62A7 platform (Vibhore Vardhan)
      
         - Add support for Armada's ap807 platform (Russell King (Oracle))
      
         - Add support for StarFive JH7110 SoC (Mason Huo)
      
         - Fix voltage selection for Mediatek Socs (Daniel Golle)
      
         - Fix error handling in Tegra's cpufreq driver (Christophe JAILLET)
      
         - Document Qualcomm's IPQ8074 in DT bindings (Robert Marko)
      
         - Don't warn for disabling a non-existing frequency for imx6q cpufreq
           driver (Christoph Niedermaier)
      
         - Use dev_err_probe() in Qualcomm's cpufreq driver (Andrew Halaney)
      
         - Simplify performance state related logic in the OPP core (Viresh
           Kumar)
      
         - Fix use-after-free and improve locking around lazy_opp_tables
           (Viresh Kumar, Stephan Gerhold)
      
         - Minor cleanups - using dev_err_probe() and rate-limiting debug
           messages (Andrew Halaney, Adrián Larumbe)"
      
      * tag 'pm-6.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (23 commits)
        cpufreq: intel_pstate: Fix scaling for hybrid-capable systems with disabled E-cores
        cpufreq: Make CONFIG_CPUFREQ_DT_PLATDEV depend on OF
        intel_idle: Add __init annotation to matchup_vm_state_with_baremetal()
        OPP: Properly propagate error along when failing to get icc_path
        OPP: Use dev_err_probe() when failing to get icc_path
        cpufreq: qcom-cpufreq-hw: Use dev_err_probe() when failing to get icc paths
        cpufreq: mediatek: correct voltages for MT7622 and MT7623
        cpufreq: armada-8k: add ap807 support
        OPP: Simplify the over-designed pstate <-> level dance
        OPP: pstate is only valid for genpd OPP tables
        OPP: don't drop performance constraint on OPP table removal
        OPP: Protect `lazy_opp_tables` list with `opp_table_lock`
        OPP: Staticize `lazy_opp_tables` in of.c
        cpufreq: dt-platdev: Support building as module
        opp: Fix use-after-free in lazy_opp_tables after probe deferral
        dt-bindings: cpufreq: qcom-cpufreq-nvmem: document IPQ8074
        cpufreq: dt-platdev: Blacklist ti,am62a7 SoC
        cpufreq: ti-cpufreq: Add support for AM62A7
        OPP: rate-limit debug messages when no change in OPP is required
        cpufreq: imx6q: don't warn for disabling a non-existing frequency
        ...
      ccf46d85
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · b869e9f4
      Linus Torvalds authored
      Pull more clk updates from Stephen Boyd:
       "Another set of clk driver updates and fixes for the merge window. The
        driver updates needed more time to bake in linux-next.
      
        Updates:
         - Support for more clk controllers in Qualcomm SoCs such as SM8350,
           SM8450, SDX75, SC8280XP, and IPQ9574
         - Runtime PM enablement of some more Qualcomm clk controllers
         - Various fixes to Qualcomm clk driver data to use correct clk_ops
           and to check halt bits properly
         - AT91 updates to modernize with clk_parent_data structures
      
        Fixes:
         - Remove 'syscon' from dt binding fix for ti,j721e-system-controller
         - Fix determine rate in the Tegra driver that got wrecked by the
           refactorting of muxes this merge window"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (69 commits)
        clk: tegra: Avoid calling an uninitialized function
        dt-bindings: mfd: ti,j721e-system-controller: Remove syscon from example
        clk: at91: sama7g5: s/ep_chg_chg_id/ep_chg_id
        clk: at91: sama7g5: switch to parent_hw and parent_data
        clk: at91: sckc: switch to parent_data/parent_hw
        clk: at91: clk-sam9x60-pll: add support for parent_hw
        clk: at91: clk-utmi: add support for parent_hw
        clk: at91: clk-system: add support for parent_hw
        clk: at91: clk-programmable: add support for parent_hw
        clk: at91: clk-peripheral: add support for parent_hw
        clk: at91: clk-master: add support for parent_hw
        clk: at91: clk-generated: add support for parent_hw
        clk: at91: clk-main: add support for parent_data/parent_hw
        clk: qcom: gcc-sc8280xp: Add runtime PM
        clk: qcom: gpucc-sc8280xp: Add runtime PM
        clk: qcom: mmcc-msm8974: fix MDSS_GDSC power flags
        clk: qcom: gpucc-sm6375: Enable runtime pm
        dt-bindings: clock: sm6375-gpucc: Add VDD_GX
        clk: qcom: gcc-sm6115: Add missing PLL config properties
        clk: qcom: clk-alpha-pll: Add a way to update some bits of test_ctl(_hi)
        ...
      b869e9f4
    • Linus Torvalds's avatar
      Merge tag 'firewire-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 406fb9eb
      Linus Torvalds authored
      Pull firewire updates from Takashi Sakamoto:
       "This consist of three parts; UAPI update, OHCI driver update, and
        several bug fixes.
      
        Firstly, the 1394 OHCI specification defines method to retrieve
        hardware time stamps for asynchronous communication, which was
        previously unavailable in user space. This adds new events to the
        UAPI, allowing applications to retrieve the time when asynchronous
        packet are received and sent. The new events are tested in the
        bleeding edge of libhinawa and look to work well. The new version of
        libhinawa will be released after current merge window is closed:
      
          https://git.kernel.org/pub/scm/libs/ieee1394/libhinawa.git/
      
        Secondly, the FireWire stack includes a PCM device driver for 1394
        OHCI hardware, This change modernizes the driver by managed resource
        (devres) framework.
      
        Lastly, bug fixes for firewire-net and firewire-core"
      
      * tag 'firewire-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (25 commits)
        firewire: net: fix use after free in fwnet_finish_incoming_packet()
        firewire: core: obsolete usage of GFP_ATOMIC at building node tree
        firewire: ohci: release buffer for AR req/resp contexts when managed resource is released
        firewire: ohci: use devres for content of configuration ROM
        firewire: ohci: use devres for IT, IR, AT/receive, and AT/request contexts
        firewire: ohci: use devres for list of isochronous contexts
        firewire: ohci: use devres for requested IRQ
        firewire: ohci: use devres for misc DMA buffer
        firewire: ohci: use devres for MMIO region mapping
        firewire: ohci: use devres for PCI-related resources
        firewire: ohci: use devres for memory object of ohci structure
        firewire: fix warnings to generate UAPI documentation
        firewire: fix build failure due to missing module license
        firewire: cdev: implement new event relevant to phy packet with time stamp
        firewire: cdev: add new event to notify phy packet with time stamp
        firewire: cdev: code refactoring to dispatch event for phy packet
        firewire: cdev: implement new event to notify response subaction with time stamp
        firewire: cdev: add new event to notify response subaction with time stamp
        firewire: cdev: code refactoring to operate event of response
        firewire: core: implement variations to send request and wait for response with time stamp
        ...
      406fb9eb
    • Linus Torvalds's avatar
      module: fix init_module_from_file() error handling · f1962207
      Linus Torvalds authored
      Vegard Nossum pointed out two different problems with the error handling
      in init_module_from_file():
      
       (a) the idempotent loading code didn't clean up properly in some error
           cases, leaving the on-stack 'struct idempotent' element still in
           the hash table
      
       (b) failure to read the module file would nonsensically update the
           'invalid_kread_bytes' stat counter with the error value
      
      The first error is quite nasty, in that it can then cause subsequent
      idempotent loads of that same file to access stale stack contents of the
      previous failure.  The case may not happen in any normal situation
      (explaining all the "Tested-by's on the original change), and requires
      admin privileges, but syzkaller triggers random bad behavior as a
      result:
      
          BUG: soft lockup in sys_finit_module
          BUG: unable to handle kernel paging request in init_module_from_file
          general protection fault in init_module_from_file
          INFO: task hung in init_module_from_file
          KASAN: out-of-bounds Read in init_module_from_file
          KASAN: slab-out-of-bounds Read in init_module_from_file
          ...
      
      The second error is fairly benign and just leads to nonsensical stats
      (and has been around since the debug stats were added).
      
      Vegard also provided a patch for the idempotent loading issue, but I'd
      rather re-organize the code and make it more legible using another level
      of helper functions than add the usual "goto out" error handling.
      
      Link: https://lore.kernel.org/lkml/20230704100852.23452-1-vegard.nossum@oracle.com/
      Fixes: 9b9879fc ("modules: catch concurrent module loads, treat them as idempotent")
      Reported-by: default avatarVegard Nossum <vegard.nossum@oracle.com>
      Reported-by: default avatarHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
      Reported-by: syzbot+9c2bdc9d24e4a7abe741@syzkaller.appspotmail.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f1962207
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-cpuidle' · 40c565a4
      Rafael J. Wysocki authored
      Merge CPU power management updates for 6.5-rc1:
      
       - Add missing __init annotation to one function in the intel_idle
         drvier (Rafael Wysocki).
      
       - Make intel_pstate use a correct scaling factor when mapping HWP
         performance levels to frequency values on hybrid-capable systems
         with disabled E-cores (Srinivas Pandruvada).
      
       - Fix Kconfig dependencies of the cpufreq-dt-platform driver (Viresh
         Kumar).
      
       - Add support to build cpufreq-dt-platdev as a module (Zhipeng Wang).
      
       - Don't allocate Sparc's cpufreq_driver dynamically (Viresh Kumar).
      
       - Add support for TI's AM62A7 platform (Vibhore Vardhan).
      
       - Add support for Armada's ap807 platform (Russell King (Oracle)).
      
       - Add support for StarFive JH7110 SoC (Mason Huo).
      
       - Fix voltage selection for Mediatek Socs (Daniel Golle).
      
       - Fix error handling in Tegra's cpufreq driver (Christophe JAILLET).
      
       - Document Qualcomm's IPQ8074 in DT bindings (Robert Marko).
      
       - Don't warn for disabling a non-existing frequency for imx6q cpufreq
         driver (Christoph Niedermaier).
      
       - Use dev_err_probe() in Qualcomm's cpufreq driver (Andrew Halaney).
      
      * pm-cpufreq:
        cpufreq: intel_pstate: Fix scaling for hybrid-capable systems with disabled E-cores
        cpufreq: Make CONFIG_CPUFREQ_DT_PLATDEV depend on OF
        cpufreq: qcom-cpufreq-hw: Use dev_err_probe() when failing to get icc paths
        cpufreq: mediatek: correct voltages for MT7622 and MT7623
        cpufreq: armada-8k: add ap807 support
        cpufreq: dt-platdev: Support building as module
        dt-bindings: cpufreq: qcom-cpufreq-nvmem: document IPQ8074
        cpufreq: dt-platdev: Blacklist ti,am62a7 SoC
        cpufreq: ti-cpufreq: Add support for AM62A7
        cpufreq: imx6q: don't warn for disabling a non-existing frequency
        cpufreq: sparc: Don't allocate cpufreq_driver dynamically
        cpufreq: tegra194: Fix an error handling path in tegra194_cpufreq_probe()
        cpufreq: dt-platdev: Add JH7110 SOC to the allowlist
      
      * pm-cpuidle:
        intel_idle: Add __init annotation to matchup_vm_state_with_baremetal()
      40c565a4
    • Thierry Reding's avatar
      clk: tegra: Avoid calling an uninitialized function · f679e89a
      Thierry Reding authored
      Commit 493ffb04 ("clk: tegra: super: Switch to determine_rate")
      replaced clk_super_round_rate() by clk_super_determine_rate(), but
      didn't update one callsite that was explicitly calling the old
      tegra_clk_super_ops.round_rate() function, which was now NULL. This
      resulted in a crash on Tegra30 systems during early boot.
      
      Switch this callsite over to the clk_super_determine_rate() equivalent
      to avoid the crash.
      
      Fixes: 493ffb04 ("clk: tegra: super: Switch to determine_rate")
      Tested-by: default avatarDmitry Osipenko <digetx@gmail.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Link: https://lore.kernel.org/r/20230630130748.840729-1-thierry.reding@gmail.comSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
      f679e89a
    • Linus Torvalds's avatar
      mm: don't do validate_mm() unnecessarily and without mmap locking · b5641a5d
      Linus Torvalds authored
      This is an addition to commit ae80b404 ("mm: validate the mm before
      dropping the mmap lock"), because it turns out there were two problems,
      but lockdep just stopped complaining after finding the first one.
      
      The do_vmi_align_munmap() function now drops the mmap lock after doing
      the validate_mm() call, but it turns out that one of the callers then
      immediately calls validate_mm() again.
      
      That's both a bit silly, and now (again) happens without the mmap lock
      held.
      
      So just remove that validate_mm() call from the caller, but make sure to
      not lose any coverage by doing that mm sanity checking in the error path
      of do_vmi_align_munmap() too.
      Reported-and-tested-by: default avatarkernel test robot <oliver.sang@intel.com>
      Link: https://lore.kernel.org/lkml/ZKN6CdkKyxBShPHi@xsang-OptiPlex-9020/
      Fixes: 408579cd ("mm: Update do_vmi_align_munmap() return semantics")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b5641a5d
    • SeongJae Park's avatar
      arch/arm64/mm/fault: Fix undeclared variable error in do_page_fault() · 24be4d0b
      SeongJae Park authored
      Commit ae870a68 ("arm64/mm: Convert to using
      lock_mm_and_find_vma()") made do_page_fault() to use 'vma' even if
      CONFIG_PER_VMA_LOCK is not defined, but the declaration is still in the
      ifdef.
      
      As a result, building kernel without the config fails with undeclared
      variable error as below:
      
          arch/arm64/mm/fault.c: In function 'do_page_fault':
          arch/arm64/mm/fault.c:624:2: error: 'vma' undeclared (first use in this function); did you mean 'vmap'?
            624 |  vma = lock_mm_and_find_vma(mm, addr, regs);
                |  ^~~
                |  vmap
      
      Fix it by moving the declaration out of the ifdef.
      
      Fixes: ae870a68 ("arm64/mm: Convert to using lock_mm_and_find_vma()")
      Signed-off-by: default avatarSeongJae Park <sj@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24be4d0b
    • Linus Torvalds's avatar
      Merge tag 'block-6.5-2023-07-03' of git://git.kernel.dk/linux · e50df249
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
       "Mostly items that came in a bit late for the initial pull request,
        wanted to make sure they had the appropriate amount of linux-next soak
        before going upstream.
      
        Outside of stragglers, just generic fixes for either merge window
        items, or longer standing bugs"
      
      * tag 'block-6.5-2023-07-03' of git://git.kernel.dk/linux: (25 commits)
        md/raid0: add discard support for the 'original' layout
        nvme: disable controller on reset state failure
        nvme: sync timeout work on failed reset
        nvme: ensure unquiesce on teardown
        cdrom/gdrom: Fix build error
        nvme: improved uring polling
        block: add request polling helper
        nvme-mpath: fix I/O failure with EAGAIN when failing over I/O
        nvme: host: fix command name spelling
        blk-sysfs: add a new attr_group for blk_mq
        blk-iocost: move wbt_enable/disable_default() out of spinlock
        blk-wbt: cleanup rwb_enabled() and wbt_disabled()
        blk-wbt: remove dead code to handle wbt enable/disable with io inflight
        blk-wbt: don't create wbt sysfs entry if CONFIG_BLK_WBT is disabled
        blk-mq: fix two misuses on RQF_USE_SCHED
        blk-throttle: Fix io statistics for cgroup v1
        bcache: Fix bcache device claiming
        bcache: Alloc holder object before async registration
        raid10: avoid spin_lock from fastpath from raid10_unplug()
        md: fix 'delete_mutex' deadlock
        ...
      e50df249
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.5-2023-07-03' of git://git.kernel.dk/linux · 4f528753
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "The fix for the msghdr->msg_inq assigned value being wrong, using -1
        instead of -1U for the signed type.
      
        Also a fix for ensuring when we're trying to run task_work on an
        exiting task, that we wait for it. This is not really a correctness
        thing as the work is being canceled, but it does help with ensuring
        file descriptors are closed when the task has exited."
      
      * tag 'io_uring-6.5-2023-07-03' of git://git.kernel.dk/linux:
        io_uring: flush offloaded and delayed task_work on exit
        io_uring: remove io_fallback_tw() forward declaration
        io_uring/net: use proper value for msg_inq
      4f528753
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 69c9f230
      Linus Torvalds authored
      Pull HSI updates from Sebastian Reichel:
      
       - fix build warning with W=1
      
       - drop error handling for debugfs
      
      * tag 'hsi-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: omap_ssi_port: Drop error checking for debugfs_create_dir
        HSI: fix ssi_waketest() declaration
      69c9f230
    • Linus Torvalds's avatar
      Merge tag 'for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 0df24138
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - Add new Qualcomm PMI8998/PM660 SMB2 charger
      
       - bq256xx: support systems without thermistors
      
       - cros_pchg: fix peripheral device status after system resume
      
       - axp20x_usb_power: add support for AXP192
      
       - qcom-pon: add support for pm8941
      
       - at91-reset: prepare to expose reset reason to sysfs
      
       - switch all I2C drivers back to use .probe instead of .probe_new
      
       - convert some more DT bindings to YAML
      
       - misc cleanups
      
      * tag 'for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (28 commits)
        MAINTAINERS: add documentation file for Microchip SAMA5D2 shutdown controller
        dt-bindings: power: reset: atmel,sama5d2-shdwc: convert to yaml
        dt-bindings: power: reset: atmel,at91sam9260-shdwc: convert to yaml
        power: reset: at91-reset: change the power on reason prototype
        power: reset: qcom-pon: add support for pm8941-pon
        dt-bindings: power: reset: qcom-pon: define pm8941-pon
        power: supply: add Qualcomm PMI8998 SMB2 Charger driver
        dt-bindings: power: supply: qcom,pmi8998-charger: add bindings for smb2 driver
        power: supply: rt9467: Make charger-enable control as logic level
        power: supply: Switch i2c drivers back to use .probe()
        power: reset: add HAS_IOPORT dependencies
        dt-bindings: power: supply: axp20x: Add AXP192 compatible
        power: supply: axp20x_usb_power: Add support for AXP192
        power: supply: axp20x_usb_power: Remove variant IDs from VBUS polling check
        power: supply: axp20x_usb_power: Use regmap field for VBUS disabling
        power: supply: axp20x_usb_power: Use regmap fields for USB BC feature
        power: supply: axp20x_usb_power: Use regmap fields for VBUS monitor feature
        power: supply: axp20x_usb_power: Simplify USB current limit handling
        power: supply: hwmon: constify pointers to hwmon_channel_info
        power: supply: twl4030_madc_battery: Refactor twl4030_madc_bat_ext_changed()
        ...
      0df24138
    • Linus Torvalds's avatar
      Merge tag 'rproc-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 02676ecc
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "The bulk of these patches relates to the moving to a void-returning
        remove callback.
      
        The i.MX HiFi remoteproc driver gets its pm_ops helpers updated to
        resolve build warnings about 'defined but not used' variables in
        certain configurations.
      
        The ST STM32 remoteproc driver is extended to allow using a SCMI reset
        controller to hold boot, and has an error message corrected.
      
        The Qualcomm Q6V5 PAS driver gains a missing 'static' qualifier on
        adsp_segment_dump()"
      
      * tag 'rproc-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (23 commits)
        remoteproc: qcom_q6v5_pas: staticize adsp_segment_dump()
        remoteproc: stm32: Fix error code in stm32_rproc_parse_dt()
        remoteproc: stm32: Allow hold boot management by the SCMI reset controller
        dt-bindings: remoteproc: st,stm32-rproc: Rework reset declarations
        remoteproc: imx_dsp_rproc: use modern pm_ops
        remoteproc: wkup_m3: Convert to platform remove callback returning void
        remoteproc: stm32: Convert to platform remove callback returning void
        remoteproc: st: Convert to platform remove callback returning void
        remoteproc: virtio: Convert to platform remove callback returning void
        remoteproc: rcar: Convert to platform remove callback returning void
        remoteproc: qcom_wcnss: Convert to platform remove callback returning void
        remoteproc: qcom_q6v5_wcss: Convert to platform remove callback returning void
        remoteproc: qcom_q6v5_pas: Convert to platform remove callback returning void
        remoteproc: qcom_q6v5_mss: Convert to platform remove callback returning void
        remoteproc: qcom_q6v5_adsp: Convert to platform remove callback returning void
        remoteproc: pru: Convert to platform remove callback returning void
        remoteproc: omap: Convert to platform remove callback returning void
        remoteproc: mtk_scp: Convert to platform remove callback returning void
        remoteproc: meson_mx_ao_arc: Convert to platform remove callback returning void
        remoteproc: keystone: Convert to platform remove callback returning void
        ...
      02676ecc
  2. 03 Jul, 2023 27 commits
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 6afb24a0
      Linus Torvalds authored
      Pull hwspinlock update from Bjorn Andersson:
       "This drops the last of_match_ptr() from the hwspinlock drivers,
        solving the resulting 'defined but not used' warning/error"
      
      * tag 'hwlock-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        hwspinlock: omap: drop of_match_ptr for ID table
      6afb24a0
    • Arnd Bergmann's avatar
      rdma: fix INFINIBAND_USER_ACCESS dependency · b39aeb33
      Arnd Bergmann authored
      After a change to the bnxt_re driver, it fails to link when
      CONFIG_INFINIBAND_USER_ACCESS is disabled:
      
        aarch64-linux-ld: drivers/infiniband/hw/bnxt_re/ib_verbs.o: in function `bnxt_re_handler_BNXT_RE_METHOD_ALLOC_PAGE':
        ib_verbs.c:(.text+0xd64): undefined reference to `ib_uverbs_get_ucontext_file'
        aarch64-linux-ld: drivers/infiniband/hw/bnxt_re/ib_verbs.o:(.rodata+0x168): undefined reference to `uverbs_idr_class'
        aarch64-linux-ld: drivers/infiniband/hw/bnxt_re/ib_verbs.o:(.rodata+0x1a8): undefined reference to `uverbs_destroy_def_handler'
      
      The problem is that the 'bnxt_re_uapi_defs' structure is built
      unconditionally and references a couple of functions that are never
      really called in this configuration but instead require other functions
      that are left out.
      
      Adding an #ifdef around the new code, or a Kconfig dependency would
      address this problem, but adding the compile-time check inside of the
      UAPI_DEF_CHAIN_OBJ_TREE_NAMED() macro seems best because that also
      addresses the problem in other drivers that may run into the same
      dependency.
      
      Fixes: 360da60d ("RDMA/bnxt_re: Enable low latency push")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarLeon Romanovsky <leon@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b39aeb33
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · a8d70602
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - resume support in vdpa/solidrun
      
       - structure size optimizations in virtio_pci
      
       - new pds_vdpa driver
      
       - immediate initialization mechanism for vdpa/ifcvf
      
       - interrupt bypass for vdpa/mlx5
      
       - multiple worker support for vhost
      
       - viirtio net in Intel F2000X-PL support for vdpa/ifcvf
      
       - fixes, cleanups all over the place
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (48 commits)
        vhost: Make parameter name match of vhost_get_vq_desc()
        vduse: fix NULL pointer dereference
        vhost: Allow worker switching while work is queueing
        vhost_scsi: add support for worker ioctls
        vhost: allow userspace to create workers
        vhost: replace single worker pointer with xarray
        vhost: add helper to parse userspace vring state/file
        vhost: remove vhost_work_queue
        vhost_scsi: flush IO vqs then send TMF rsp
        vhost_scsi: convert to vhost_vq_work_queue
        vhost_scsi: make SCSI cmd completion per vq
        vhost_sock: convert to vhost_vq_work_queue
        vhost: convert poll work to be vq based
        vhost: take worker or vq for flushing
        vhost: take worker or vq instead of dev for queueing
        vhost, vhost_net: add helper to check if vq has work
        vhost: add vhost_worker pointer to vhost_virtqueue
        vhost: dynamically allocate vhost_worker
        vhost: create worker at end of vhost_dev_set_owner
        virtio_bt: call scheduler when we free unused buffs
        ...
      a8d70602
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · e8069f5a
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM64:
      
         - Eager page splitting optimization for dirty logging, optionally
           allowing for a VM to avoid the cost of hugepage splitting in the
           stage-2 fault path.
      
         - Arm FF-A proxy for pKVM, allowing a pKVM host to safely interact
           with services that live in the Secure world. pKVM intervenes on
           FF-A calls to guarantee the host doesn't misuse memory donated to
           the hyp or a pKVM guest.
      
         - Support for running the split hypervisor with VHE enabled, known as
           'hVHE' mode. This is extremely useful for testing the split
           hypervisor on VHE-only systems, and paves the way for new use cases
           that depend on having two TTBRs available at EL2.
      
         - Generalized framework for configurable ID registers from userspace.
           KVM/arm64 currently prevents arbitrary CPU feature set
           configuration from userspace, but the intent is to relax this
           limitation and allow userspace to select a feature set consistent
           with the CPU.
      
         - Enable the use of Branch Target Identification (FEAT_BTI) in the
           hypervisor.
      
         - Use a separate set of pointer authentication keys for the
           hypervisor when running in protected mode, as the host is untrusted
           at runtime.
      
         - Ensure timer IRQs are consistently released in the init failure
           paths.
      
         - Avoid trapping CTR_EL0 on systems with Enhanced Virtualization
           Traps (FEAT_EVT), as it is a register commonly read from userspace.
      
         - Erratum workaround for the upcoming AmpereOne part, which has
           broken hardware A/D state management.
      
        RISC-V:
      
         - Redirect AMO load/store misaligned traps to KVM guest
      
         - Trap-n-emulate AIA in-kernel irqchip for KVM guest
      
         - Svnapot support for KVM Guest
      
        s390:
      
         - New uvdevice secret API
      
         - CMM selftest and fixes
      
         - fix racy access to target CPU for diag 9c
      
        x86:
      
         - Fix missing/incorrect #GP checks on ENCLS
      
         - Use standard mmu_notifier hooks for handling APIC access page
      
         - Drop now unnecessary TR/TSS load after VM-Exit on AMD
      
         - Print more descriptive information about the status of SEV and
           SEV-ES during module load
      
         - Add a test for splitting and reconstituting hugepages during and
           after dirty logging
      
         - Add support for CPU pinning in demand paging test
      
         - Add support for AMD PerfMonV2, with a variety of cleanups and minor
           fixes included along the way
      
         - Add a "nx_huge_pages=never" option to effectively avoid creating NX
           hugepage recovery threads (because nx_huge_pages=off can be toggled
           at runtime)
      
         - Move handling of PAT out of MTRR code and dedup SVM+VMX code
      
         - Fix output of PIC poll command emulation when there's an interrupt
      
         - Add a maintainer's handbook to document KVM x86 processes,
           preferred coding style, testing expectations, etc.
      
         - Misc cleanups, fixes and comments
      
        Generic:
      
         - Miscellaneous bugfixes and cleanups
      
        Selftests:
      
         - Generate dependency files so that partial rebuilds work as
           expected"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (153 commits)
        Documentation/process: Add a maintainer handbook for KVM x86
        Documentation/process: Add a label for the tip tree handbook's coding style
        KVM: arm64: Fix misuse of KVM_ARM_VCPU_POWER_OFF bit index
        RISC-V: KVM: Remove unneeded semicolon
        RISC-V: KVM: Allow Svnapot extension for Guest/VM
        riscv: kvm: define vcpu_sbi_ext_pmu in header
        RISC-V: KVM: Expose IMSIC registers as attributes of AIA irqchip
        RISC-V: KVM: Add in-kernel virtualization of AIA IMSIC
        RISC-V: KVM: Expose APLIC registers as attributes of AIA irqchip
        RISC-V: KVM: Add in-kernel emulation of AIA APLIC
        RISC-V: KVM: Implement device interface for AIA irqchip
        RISC-V: KVM: Skeletal in-kernel AIA irqchip support
        RISC-V: KVM: Set kvm_riscv_aia_nr_hgei to zero
        RISC-V: KVM: Add APLIC related defines
        RISC-V: KVM: Add IMSIC related defines
        RISC-V: KVM: Implement guest external interrupt line management
        KVM: x86: Remove PRIx* definitions as they are solely for user space
        s390/uv: Update query for secret-UVCs
        s390/uv: replace scnprintf with sysfs_emit
        s390/uvdevice: Add 'Lock Secret Store' UVC
        ...
      e8069f5a
    • Linus Torvalds's avatar
      Merge tag 'kgdb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · eded3777
      Linus Torvalds authored
      Pull kgdb updates from Daniel Thompson:
       "Fairly small changes this cycle:
      
         - An additional static inline function when kgdb is not enabled to
           reduce boilerplate in arch files
      
         - kdb will now handle input with linefeeds more like carriage return.
           This will make little difference for interactive use but can make
           it script to use expect-like interaction with kdb
      
         - A couple of warning fixes"
      
      * tag 'kgdb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kdb: move kdb_send_sig() declaration to a better header file
        kdb: Handle LF in the command parser
        kdb: include kdb_private.h for function prototypes
        kgdb: Provide a stub kgdb_nmicallback() if !CONFIG_KGDB
      eded3777
    • Linus Torvalds's avatar
      Merge tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 56cbceab
      Linus Torvalds authored
      Pull USB / Thunderbolt driver updates from Greg KH:
       "Here is the big set of USB and Thunderbolt driver updates for 6.5-rc1.
      
        Included in here are:
      
         - Lots of USB4/Thunderbolt additions and updates for new hardware
           types and fixes as people are starting to get access to the
           hardware in the wild
      
         - new gadget controller driver, cdns2, added
      
         - new typec drivers added
      
         - xhci driver updates
      
         - typec driver updates
      
         - usbip driver fixes
      
         - usb-serial driver updates and fixes
      
         - lots of smaller USB driver updates
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'usb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (265 commits)
        usb: host: xhci-plat: Set XHCI_STATE_REMOVING before resuming XHCI HC
        usb: host: xhci: Do not re-initialize the XHCI HC if being removed
        usb: typec: nb7vpq904m: fix CONFIG_DRM dependency
        usbip: usbip_host: Replace strlcpy with strscpy
        usb: dwc3: gadget: Propagate core init errors to UDC during pullup
        USB: serial: option: add LARA-R6 01B PIDs
        usb: ulpi: Make container_of() no-op in to_ulpi_dev()
        usb: gadget: legacy: fix error return code in gfs_bind
        usb: typec: fsa4480: add support for Audio Accessory Mode
        usb: typec: fsa4480: rework mux & switch setup to handle more states
        usb: typec: ucsi: call typec_set_mode on non-altmode partner change
        USB: gadget: f_hid: make hidg_class a static const structure
        USB: gadget: f_printer: make usb_gadget_class a static const structure
        USB: mon: make mon_bin_class a static const structure
        USB: gadget: udc: core: make udc_class a static const structure
        USB: roles: make role_class a static const structure
        dt-bindings: usb: dwc3: Add interrupt-names property support for wakeup interrupt
        dt-bindings: usb: Add StarFive JH7110 USB controller
        dt-bindings: usb: dwc3: Add IPQ9574 compatible
        usb: cdns2: Fix spelling mistake in a trace message "Wakupe" -> "Wakeup"
        ...
      56cbceab
    • Linus Torvalds's avatar
      Merge tag 'tty-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 868a9fd9
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Here is the big set of tty/serial driver updates for 6.5-rc1.
      
        Included in here are:
      
         - tty_audit code cleanups from Jiri
      
         - more 8250 cleanups from Ilpo
      
         - samsung_tty driver bugfixes
      
         - 8250 lock port updates
      
         - usual fsl_lpuart driver updates and fixes
      
         - other small serial driver fixes and updates, full details in the
           shortlog
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (58 commits)
        tty_audit: make data of tty_audit_log() const
        tty_audit: make tty pointers in exposed functions const
        tty_audit: make icanon a bool
        tty_audit: invert the condition in tty_audit_log()
        tty_audit: use kzalloc() in tty_audit_buf_alloc()
        tty_audit: use TASK_COMM_LEN for task comm
        Revert "8250: add support for ASIX devices with a FIFO bug"
        serial: atmel: don't enable IRQs prematurely
        tty: serial: Add Nuvoton ma35d1 serial driver support
        tty: serial: fsl_lpuart: add earlycon for imx8ulp platform
        tty: serial: imx: fix rs485 rx after tx
        selftests: tty: add selftest for tty timestamp updates
        tty: tty_io: update timestamps on all device nodes
        tty: fix hang on tty device with no_room set
        serial: core: fix -EPROBE_DEFER handling in init
        serial: 8250_omap: Use force_suspend and resume for system suspend
        tty: serial: samsung_tty: Use abs() to simplify some code
        tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk
        tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error
        serial: 8250: Apply FSL workarounds also without SERIAL_8250_CONSOLE
        ...
      868a9fd9
    • Linus Torvalds's avatar
      Merge tag 'staging-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · db9c6d1d
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here is a set of staging driver updates for 6.5-rc1. It's a small
        update this merge window, nothing major at all, overall just under
        1000 lines of code removed, not a huge churn.
      
        Nothing major to highlight here either, just lots of small coding
        style fixes.
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'staging-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (62 commits)
        staging: rtl8192e: Remove whitespace and blank lines
        staging: rtl8192e: remove 5G related code
        staging: rtl8192e: remove comparison to true
        staging: rtl8192e: remove return statement from void function
        staging: rtl8192e: convert else if sequence to switch
        staging: rtl8192e: clean up brace coding style issues
        staging: rtl8723bs: Fix blank line issues
        staging: rtl8723bs: Fix block comment issue
        staging: rtl8723bs: Fix indentation issues
        staging: vchiq_arm: Remove extra struct vchiq_instance declaration
        staging: rtl8192e: Rename variable InitialGainHandler
        staging: rtl8192e: Rename variable LeisurePSLeave
        staging: rtl8192e: Rename variable SetBWModeHandler
        staging: rtl8192e: Rename variable SetWirelessMode
        staging: rtl8192e: Rename RTLLIB_LINKED_SCANNING
        staging: rtl8192e: Rename RTLLIB_LINKED to MAC80211_LINKED
        staging: rtl8192e: Rename RTLLIB_NOLINK to MAC80211_NOLINK
        staging: rtl8192e: Rename state to link_state
        staging: rtl8192e: Rename rtllib_state to rtl_link_state
        staging: rtl8192e: Remove unused enum led_ctl_mode
        ...
      db9c6d1d
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · fc75f216
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here are a small set of changes for 6.5-rc1 for some driver core
        changes. Included in here are:
      
         - device property cleanups to make it easier to write "agnostic"
           drivers when regards to the firmware layer underneath them (DT vs.
           ACPI)
      
         - debugfs documentation updates
      
         - devres additions
      
         - sysfs documentation and changes to handle empty directory creation
           logic better
      
         - tiny kernfs optimizations
      
         - other tiny changes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'driver-core-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        sysfs: Skip empty folders creation
        sysfs: Improve readability by following the kernel coding style
        drivers: fwnode: fix fwnode_irq_get[_byname]()
        ata: ahci_platform: Make code agnostic to OF/ACPI
        device property: Implement device_is_compatible()
        ACPI: Move ACPI_DEVICE_CLASS() to mod_devicetable.h
        base/node: Use 'property' to identify an access parameter
        driver core: device.h: add some missing kerneldocs
        kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR
        isa: Remove unnecessary checks
        MAINTAINERS: add entry for auxiliary bus
        debugfs: Correct the 'debugfs_create_str' docs
        serial: qcom_geni: Comment use of devm_krealloc rather than devm_krealloc_array
        iio: adc: Use devm_krealloc_array
        hwmon: pmbus: Use devm_krealloc_array
      fc75f216
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 44aeec83
      Linus Torvalds authored
      Pull Char/Misc updates from Greg KH:
       "Here is the big set of char/misc and other driver subsystem updates
        for 6.5-rc1.
      
        Lots of different, tiny, stuff in here, from a range of smaller driver
        subsystems, including pulls from some substems directly:
      
         - IIO driver updates and additions
      
         - W1 driver updates and fixes (and a new maintainer!)
      
         - FPGA driver updates and fixes
      
         - Counter driver updates
      
         - Extcon driver updates
      
         - Interconnect driver updates
      
         - Coresight driver updates
      
         - mfd tree tag merge needed for other updates on top of that, lots of
           small driver updates as patches, including:
      
         - static const updates for class structures
      
         - nvmem driver updates
      
         - pcmcia driver fix
      
         - lots of other small driver updates and fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'char-misc-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (243 commits)
        bsr: fix build problem with bsr_class static cleanup
        comedi: make all 'class' structures const
        char: xillybus: make xillybus_class a static const structure
        xilinx_hwicap: make icap_class a static const structure
        virtio_console: make port class a static const structure
        ppdev: make ppdev_class a static const structure
        char: misc: make misc_class a static const structure
        /dev/mem: make mem_class a static const structure
        char: lp: make lp_class a static const structure
        dsp56k: make dsp56k_class a static const structure
        bsr: make bsr_class a static const structure
        oradax: make 'cl' a static const structure
        hwtracing: hisi_ptt: Fix potential sleep in atomic context
        hwtracing: hisi_ptt: Advertise PERF_PMU_CAP_NO_EXCLUDE for PTT PMU
        hwtracing: hisi_ptt: Export available filters through sysfs
        hwtracing: hisi_ptt: Add support for dynamically updating the filter list
        hwtracing: hisi_ptt: Factor out filter allocation and release operation
        samples: pfsm: add CC_CAN_LINK dependency
        misc: fastrpc: check return value of devm_kasprintf()
        coresight: dummy: Update type of mode parameter in dummy_{sink,source}_enable()
        ...
      44aeec83
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 0a8d6c9c
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Functionality:
         - Add lots of Device Tree bindings / support
         - Turn off LED strings when display is blank
         - Switch I2C drivers from .probe_new() to .probe()
         - Remove superfluous NULL checks
         - Only obtain PWM information once and do it in .probe()
      
        Fix-ups:
         - Ensure locks are obtained and held when required"
      
      * tag 'backlight-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: led_bl: Take led_access lock when required
        video: backlight: lp855x: Get PWM for PWM mode during probe
        dt-bindings: backlight: lp855x: Convert to YAML and modernize
        dt-bindings: backlight: pwm: Make power-supply not required
        backlight: pwm_bl: Remove unneeded checks for valid GPIOs
        backlight: Switch i2c drivers back to use .probe()
        backlight: lm3630a: Turn off both led strings when display is blank
        dt-bindings: leds: backlight: ktz8866: Add reg property and update example
      0a8d6c9c
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · c156d4af
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "New Drivers:
         - Add support for Intel Cherry Trail Whiskey Cove PMIC LEDs
         - Add support for Awinic AW20036/AW20054/AW20072 LEDs
      
        New Device Support:
         - Add support for PMI632 LPG to QCom LPG
         - Add support for PMI8998 to QCom Flash
         - Add support for MT6331, WLEDs and MT6332 to Mediatek MT6323 PMIC
      
        New Functionality:
         - Implement the LP55xx Charge Pump
         - Add support for suspend / resume to Intel Cherry Trail Whiskey Cove PMIC
         - Add support for breathing mode to Intel Cherry Trail Whiskey Cove PMIC
         - Enable per-pin resolution Pinctrl in LEDs GPIO
      
        Fix-ups:
         - Allow thread to sleep by switching from spinlock to mutex
         - Add lots of Device Tree bindings / support
         - Adapt relationships / dependencies driven by Kconfig
         - Switch I2C drivers from .probe_new() to .probe()
         - Remove superfluous / duplicate code
         - Replace strlcpy() with strscpy() for efficiency and overflow prevention
         - Staticify various functions
         - Trivial: Fixing coding style
         - Simplify / reduce code
      
        Bug Fixes:
         - Prevent NETDEV_LED_MODE_LINKUP from being cleared on rename
         - Repair race between led_set_brightness(LED_{OFF,FULL})
         - Fix Oops relating to sleeping in critical sections
         - Clear LED_INIT_DEFAULT_TRIGGER flag when clearing the current trigger
         - Do not leak resources in error handling paths
         - Fix unsigned comparison which can never be negative
         - Provide missing NULL terminating entries in tables
         - Fix misnaming issues"
      
      * tag 'leds-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (53 commits)
        leds: leds-mt6323: Adjust return/parameter types in wled get/set callbacks
        leds: sgm3140: Add richtek,rt5033-led compatible
        dt-bindings: leds: sgm3140: Document richtek,rt5033 compatible
        dt-bindings: backlight: kinetic,ktz8866: Add missing type for "current-num-sinks"
        dt-bindings: leds: Drop unneeded quotes
        leds: Fix config reference for AW200xx driver
        leds: leds-mt6323: Add support for WLEDs and MT6332
        leds: leds-mt6323: Add support for MT6331 leds
        leds: leds-mt6323: Open code and drop MT6323_CAL_HW_DUTY macro
        leds: leds-mt6323: Drop MT6323_ prefix from macros and defines
        leds: leds-mt6323: Specify registers and specs in platform data
        dt-bindings: leds: leds-mt6323: Document mt6332 compatible
        dt-bindings: leds: leds-mt6323: Document mt6331 compatible
        leds: simatic-ipc-leds-gpio: Introduce more Kconfig switches
        leds: simatic-ipc-leds-gpio: Split up into multiple drivers
        leds: simatic-ipc-leds-gpio: Move two extra gpio pins into another table
        leds: simatic-ipc-leds-gpio: Add terminating entries to gpio tables
        leds: flash: leds-qcom-flash: Fix an unsigned comparison which can never be negative
        leds: cht-wcove: Remove unneeded semicolon
        leds: cht-wcove: Fix an unsigned comparison which can never be negative
        ...
      c156d4af
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · b8ec70ab
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add support for TI TPS6594/TPS6593/LP8764 PMICs
         - Add support for Samsung RT5033 Battery Charger
         - Add support for Analog Devices MAX77540 and MAX77541 PMICs
      
        New Device Support:
         - Add support for SPI to Rockchip RK808 (and friends)
         - Add support for AXP192 PMIC to X-Powers AXP20X
         - Add support for AXP313a PMIC to X-Powers AXP20X
         - Add support for RK806 to Rockchip RK8XX
      
        Removed Device Support:
         - Removed MFD support for Richtek RT5033 Battery
      
        Fix-ups:
         - Remove superfluous code
         - Switch I2C drivers from .probe_new() to .probe()
         - Convert over to managed resources (devm_*(), etc)
         - Use dev_err_probe() for returning errors from .probe()
         - Add lots of Device Tree bindings / support
         - Improve cache efficiency by switching to Maple
         - Use own exported namespaces (NS)
         - Include missing and remove superfluous headers
         - Start using / convert to the new shutdown sys-off API
         - Trivial: variable / define renaming
         - Make use of of_property_read_reg() when requesting DT 'reg's
      
        Bug Fixes:
         - Fix chip revision readout due to incorrect data masking
         - Amend incorrect register and mask values used for charger state
         - Hide unused functionality at compile time
         - Fix resource leaks following error handling routines
         - Return correct error values and fix error handling in general
         - Repair incorrect device names - used for device matching
         - Remedy broken module auto-loading"
      
      * tag 'mfd-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (51 commits)
        dt-bindings: mfd: max77541: Add ADI MAX77541/MAX77540
        iio: adc: max77541: Add ADI MAX77541 ADC Support
        regulator: max77541: Add ADI MAX77541/MAX77540 Regulator Support
        dt-bindings: regulator: max77541: Add ADI MAX77541/MAX77540 Regulator
        mfd: Switch two more drivers back to use struct i2c_driver::probe
        dt-bindings: mfd: samsung,s5m8767: Simplify excluding properties
        mfd: stmpe: Only disable the regulators if they are enabled
        mfd: max77541: Add ADI MAX77541/MAX77540 PMIC Support
        dt-bindings: mfd: gateworks-gsc: Remove unnecessary fan-controller nodes
        mfd: core: Use of_property_read_reg() to parse "reg"
        mfd: stmfx: Nullify stmfx->vdd in case of error
        mfd: stmfx: Fix error path in stmfx_chip_init
        mfd: intel-lpss: Add missing check for platform_get_resource
        mfd: stpmic1: Add PMIC poweroff via sys-off handler
        mfd: stpmic1: Fixup main control register and bits naming
        dt-bindings: mfd: qcom,tcsr: Add the compatible for IPQ8074
        mfd: tps65219: Add support for soft shutdown via sys-off API
        mfd: pm8008: Drop bogus i2c module alias
        mfd: pm8008: Fix module autoloading
        mfd: tps65219: Add GPIO cell instance
        ...
      b8ec70ab
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v6.5' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 99bdeae2
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - tegra: support for Tegra264
      
       - broadcom: convert bcm2835 bindings from txt to yaml bcm2835
      
       - qcom: support for IPQ5018
      
       - ti: always zero TX data fields
      
      * tag 'mailbox-v6.5' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0
        mailbox: tegra: add support for Tegra264
        dt-bindings: mailbox: tegra: Document Tegra264 HSP
        dt-bindings: mailbox: convert bcm2835-mbox bindings to YAML
        dt-bindings: mailbox: qcom: Add IPQ5018 APCS compatible
      99bdeae2
    • Linus Torvalds's avatar
      Merge tag 'rtc-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · b349de4c
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "The isl1208 dirver was reworked tobe able to work as part of an MFD.
      
        All the Loongson chips are now supported through a new driver, the old
        one is removed.
      
        Summary:
      
        Subsystem:
         - Switch i2c drivers back to use .probe()
         - Constify pointers to hwmon_channel_info
      
        New driver:
         - Loongson on chip RTC, replacing the Loongson 1 only driver
      
        Drivers:
         - isl1208: cleanup and support for RAA215300
         - st-lpc: cleanups
         - stm32: fix wakeup"
      
      * tag 'rtc-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (21 commits)
        rtc: Add rtc driver for the Loongson family chips
        rtc: Remove the Loongson-1 RTC driver
        dt-bindings: rtc: Split loongson,ls2x-rtc into SoC-based compatibles
        rtc: rv3028: make rv3028 probeable from userspace
        rtc: isl1208: Add support for the built-in RTC on the PMIC RAA215300
        rtc: isl1208: Add isl1208_set_xtoscb()
        rtc: isl1208: Drop enum isl1208_id and split isl1208_configs[]
        rtc: isl1208: Make similar I2C and DT-based matching table
        rtc: isl1208: Drop name variable
        dt-bindings: rtc: isil,isl1208: Document clock and clock-names properties
        dt-bindings: rtc: isl1208: Convert to json-schema
        rtc: st-lpc: Simplify clk handling in st_rtc_probe()
        rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
        rtc: stm32: remove dedicated wakeup management
        dt-bindings: rtc: restrict node name suffixes
        rtc: add HAS_IOPORT dependencies
        rtc: Switch i2c drivers back to use .probe()
        rtc: rv3032: constify pointers to hwmon_channel_info
        rtc: isl12022: constify pointers to hwmon_channel_info
        rtc: ds3232: constify pointers to hwmon_channel_info
        ...
      b349de4c
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · a7419587
      Linus Torvalds authored
      Pull i3c updates from Alexandre Belloni:
      
       - svc: fix suspend/resume on some platforms, fix locking issues
      
      * tag 'i3c/for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: master: svc: add NACK check after start byte sent
        i3c: master: svc: fix cpu schedule in spin lock
        i3c: master: svc: fix i3c suspend/resume issue
      a7419587
    • Linus Torvalds's avatar
      mm: validate the mm before dropping the mmap lock · ae80b404
      Linus Torvalds authored
      Commit 408579cd ("mm: Update do_vmi_align_munmap() return
      semantics") made the return value and locking semantics of
      do_vmi_align_munmap() more straightforward, but in the process it ended
      up unlocking the mmap lock just a tad too early: the debug code doing
      the mmap layout validation still needs to run with the lock held, or
      things might change under it while it's trying to validate things.
      
      So just move the unlocking to after the validate_mm() call.
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Link: https://lore.kernel.org/lkml/ZKIsoMOT71uwCIZX@xsang-OptiPlex-9020/
      Fixes: 408579cd ("mm: Update do_vmi_align_munmap() return semantics")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae80b404
    • Linus Torvalds's avatar
      execve: always mark stack as growing down during early stack setup · f66066bc
      Linus Torvalds authored
      While our user stacks can grow either down (all common architectures) or
      up (parisc and the ia64 register stack), the initial stack setup when we
      copy the argument and environment strings to the new stack at execve()
      time is always done by extending the stack downwards.
      
      But it turns out that in commit 8d7071af ("mm: always expand the
      stack with the mmap write lock held"), as part of making the stack
      growing code more robust, 'expand_downwards()' was now made to actually
      check the vma flags:
      
      	if (!(vma->vm_flags & VM_GROWSDOWN))
      		return -EFAULT;
      
      and that meant that this execve-time stack expansion started failing on
      parisc, because on that architecture, the stack flags do not contain the
      VM_GROWSDOWN bit.
      
      At the same time the new check in expand_downwards() is clearly correct,
      and simplified the callers, so let's not remove it.
      
      The solution is instead to just codify the fact that yes, during
      execve(), the stack grows down.  This not only matches reality, it ends
      up being particularly simple: we already have special execve-time flags
      for the stack (VM_STACK_INCOMPLETE_SETUP) and use those flags to avoid
      page migration during this setup time (see vma_is_temporary_stack() and
      invalid_migration_vma()).
      
      So just add VM_GROWSDOWN to that set of temporary flags, and now our
      stack flags automatically match reality, and the parisc stack expansion
      works again.
      
      Note that the VM_STACK_INCOMPLETE_SETUP bits will be cleared when the
      stack is finalized, so we only add the extra VM_GROWSDOWN bit on
      CONFIG_STACK_GROWSUP architectures (ie parisc) rather than adding it in
      general.
      
      Link: https://lore.kernel.org/all/612eaa53-6904-6e16-67fc-394f4faa0e16@bell.net/
      Link: https://lore.kernel.org/all/5fd98a09-4792-1433-752d-029ae3545168@gmx.de/
      Fixes: 8d7071af ("mm: always expand the stack with the mmap write lock held")
      Reported-by: default avatarJohn David Anglin <dave.anglin@bell.net>
      Reported-and-tested-by: default avatarHelge Deller <deller@gmx.de>
      Reported-and-tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f66066bc
    • Xianting Tian's avatar
      vhost: Make parameter name match of vhost_get_vq_desc() · 9e396a2f
      Xianting Tian authored
      The parameter name in the function declaration and definition
      should be the same.
      
      drivers/vhost/vhost.h,
      int vhost_get_vq_desc(..., unsigned int iov_count,...);
      
      drivers/vhost/vhost.c,
      int vhost_get_vq_desc(..., unsigned int iov_size,...)
      Signed-off-by: default avatarXianting Tian <xianting.tian@linux.alibaba.com>
      Message-Id: <20230621093835.36878-1-xianting.tian@linux.alibaba.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      9e396a2f
    • Maxime Coquelin's avatar
      vduse: fix NULL pointer dereference · f06cf1e1
      Maxime Coquelin authored
      vduse_vdpa_set_vq_affinity callback can be called
      with NULL value as cpu_mask when deleting the vduse
      device.
      
      This patch resets virtqueue's IRQ affinity mask value
      to set all CPUs instead of dereferencing NULL cpu_mask.
      
      [ 4760.952149] BUG: kernel NULL pointer dereference, address: 0000000000000000
      [ 4760.959110] #PF: supervisor read access in kernel mode
      [ 4760.964247] #PF: error_code(0x0000) - not-present page
      [ 4760.969385] PGD 0 P4D 0
      [ 4760.971927] Oops: 0000 [#1] PREEMPT SMP PTI
      [ 4760.976112] CPU: 13 PID: 2346 Comm: vdpa Not tainted 6.4.0-rc6+ #4
      [ 4760.982291] Hardware name: Dell Inc. PowerEdge R640/0W23H8, BIOS 2.8.1 06/26/2020
      [ 4760.989769] RIP: 0010:memcpy_orig+0xc5/0x130
      [ 4760.994049] Code: 16 f8 4c 89 07 4c 89 4f 08 4c 89 54 17 f0 4c 89 5c 17 f8 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 66 90 83 fa 08 72 1b <4c> 8b 06 4c 8b 4c 16 f8 4c 89 07 4c 89 4c 17 f8 c3 cc cc cc cc 66
      [ 4761.012793] RSP: 0018:ffffb1d565abb830 EFLAGS: 00010246
      [ 4761.018020] RAX: ffff9f4bf6b27898 RBX: ffff9f4be23969c0 RCX: ffff9f4bcadf6400
      [ 4761.025152] RDX: 0000000000000008 RSI: 0000000000000000 RDI: ffff9f4bf6b27898
      [ 4761.032286] RBP: 0000000000000000 R08: 0000000000000008 R09: 0000000000000000
      [ 4761.039416] R10: 0000000000000000 R11: 0000000000000600 R12: 0000000000000000
      [ 4761.046549] R13: 0000000000000000 R14: 0000000000000080 R15: ffffb1d565abbb10
      [ 4761.053680] FS:  00007f64c2ec2740(0000) GS:ffff9f635f980000(0000) knlGS:0000000000000000
      [ 4761.061765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 4761.067513] CR2: 0000000000000000 CR3: 0000001875270006 CR4: 00000000007706e0
      [ 4761.074645] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [ 4761.081775] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [ 4761.088909] PKRU: 55555554
      [ 4761.091620] Call Trace:
      [ 4761.094074]  <TASK>
      [ 4761.096180]  ? __die+0x1f/0x70
      [ 4761.099238]  ? page_fault_oops+0x171/0x4f0
      [ 4761.103340]  ? exc_page_fault+0x7b/0x180
      [ 4761.107265]  ? asm_exc_page_fault+0x22/0x30
      [ 4761.111460]  ? memcpy_orig+0xc5/0x130
      [ 4761.115126]  vduse_vdpa_set_vq_affinity+0x3e/0x50 [vduse]
      [ 4761.120533]  virtnet_clean_affinity.part.0+0x3d/0x90 [virtio_net]
      [ 4761.126635]  remove_vq_common+0x1a4/0x250 [virtio_net]
      [ 4761.131781]  virtnet_remove+0x5d/0x70 [virtio_net]
      [ 4761.136580]  virtio_dev_remove+0x3a/0x90
      [ 4761.140509]  device_release_driver_internal+0x19b/0x200
      [ 4761.145742]  bus_remove_device+0xc2/0x130
      [ 4761.149755]  device_del+0x158/0x3e0
      [ 4761.153245]  ? kernfs_find_ns+0x35/0xc0
      [ 4761.157086]  device_unregister+0x13/0x60
      [ 4761.161010]  unregister_virtio_device+0x11/0x20
      [ 4761.165543]  device_release_driver_internal+0x19b/0x200
      [ 4761.170770]  bus_remove_device+0xc2/0x130
      [ 4761.174782]  device_del+0x158/0x3e0
      [ 4761.178276]  ? __pfx_vdpa_name_match+0x10/0x10 [vdpa]
      [ 4761.183336]  device_unregister+0x13/0x60
      [ 4761.187260]  vdpa_nl_cmd_dev_del_set_doit+0x63/0xe0 [vdpa]
      
      Fixes: 28f6288e ("vduse: Support set_vq_affinity callback")
      Cc: xieyongji@bytedance.com
      Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@redhat.com>
      Message-Id: <20230622204851.318125-1-maxime.coquelin@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Reviewed-by: default avatarXie Yongji <xieyongji@bytedance.com>
      f06cf1e1
    • Mike Christie's avatar
      vhost: Allow worker switching while work is queueing · 228a27cf
      Mike Christie authored
      This patch drops the requirement that we can only switch workers if work
      has not been queued by using RCU for the vq based queueing paths and a
      mutex for the device wide flush.
      
      We can also use this to support SIGKILL properly in the future where we
      should exit almost immediately after getting that signal. With this
      patch, when get_signal returns true, we can set the vq->worker to NULL
      and do a synchronize_rcu to prevent new work from being queued to the
      vhost_task that has been killed.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-18-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      228a27cf
    • Mike Christie's avatar
      vhost_scsi: add support for worker ioctls · d74b55e6
      Mike Christie authored
      This has vhost-scsi support the worker ioctls by calling the
      vhost_worker_ioctl helper.
      
      With a single worker, the single thread becomes a bottlneck when trying
      to use 3 or more virtqueues like:
      
      fio --filename=/dev/sdb  --direct=1 --rw=randrw --bs=4k \
      --ioengine=libaio --iodepth=128  --numjobs=3
      
      With the patches and doing a worker per vq, we can scale to at least
      16 vCPUs/vqs (that's my system limit) with the same command fio command
      above with numjobs=16:
      
      fio --filename=/dev/sdb  --direct=1 --rw=randrw --bs=4k \
      --ioengine=libaio --iodepth=64  --numjobs=16
      
      which gives around 2002K IOPs.
      
      Note that for testing I dropped depth to 64 above because the vhost/virt
      layer supports only 1024 total commands per device. And the only tuning I
      did was set LIO's emulate_pr to 0 to avoid LIO's PR lock in the main IO
      path which becomes an issue at around 12 jobs/virtqueues.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-17-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      d74b55e6
    • Mike Christie's avatar
      vhost: allow userspace to create workers · c1ecd8e9
      Mike Christie authored
      For vhost-scsi with 3 vqs or more and a workload that tries to use
      them in parallel like:
      
      fio --filename=/dev/sdb  --direct=1 --rw=randrw --bs=4k \
      --ioengine=libaio --iodepth=128  --numjobs=3
      
      the single vhost worker thread will become a bottlneck and we are stuck
      at around 500K IOPs no matter how many jobs, virtqueues, and CPUs are
      used.
      
      To better utilize virtqueues and available CPUs, this patch allows
      userspace to create workers and bind them to vqs. You can have N workers
      per dev and also share N workers with M vqs on that dev.
      
      This patch adds the interface related code and the next patch will hook
      vhost-scsi into it. The patches do not try to hook net and vsock into
      the interface because:
      
      1. multiple workers don't seem to help vsock. The problem is that with
      only 2 virtqueues we never fully use the existing worker when doing
      bidirectional tests. This seems to match vhost-scsi where we don't see
      the worker as a bottleneck until 3 virtqueues are used.
      
      2. net already has a way to use multiple workers.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-16-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      c1ecd8e9
    • Mike Christie's avatar
      vhost: replace single worker pointer with xarray · 1cdaafa1
      Mike Christie authored
      The next patch allows userspace to create multiple workers per device,
      so this patch replaces the vhost_worker pointer with an xarray so we
      can store mupltiple workers and look them up.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-15-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      1cdaafa1
    • Mike Christie's avatar
      vhost: add helper to parse userspace vring state/file · cef25866
      Mike Christie authored
      The next patches add new vhost worker ioctls which will need to get a
      vhost_virtqueue from a userspace struct which specifies the vq's index.
      This moves the vhost_vring_ioctl code to do this to a helper so it can
      be shared.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-14-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      cef25866
    • Mike Christie's avatar
      vhost: remove vhost_work_queue · 27eca189
      Mike Christie authored
      vhost_work_queue is no longer used. Each driver is using the poll or vq
      based queueing, so remove vhost_work_queue.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-13-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      27eca189
    • Mike Christie's avatar
      vhost_scsi: flush IO vqs then send TMF rsp · 0a3eac52
      Mike Christie authored
      With one worker we will always send the scsi cmd responses then send the
      TMF rsp, because LIO will always complete the scsi cmds first then call
      into us to send the TMF response.
      
      With multiple workers, the IO vq workers could be running while the
      TMF/ctl vq worker is running so this has us do a flush before completing
      the TMF to make sure cmds are completed when it's work is later queued
      and run.
      Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Message-Id: <20230626232307.97930-12-michael.christie@oracle.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      0a3eac52