1. 26 Feb, 2023 20 commits
  2. 25 Feb, 2023 20 commits
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 1ec35ead
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "We have one small patch to the clk core this time around. It fixes a
        corner case with the CLK_OPS_PARENT_ENABLE flag combined with
        clk_core_is_enabled() where it hangs the system. We'll simply assume
        the clk is disabled if the parent is disabled and the flag is set.
        Trying to turn on the parent to check the enable state of the clk runs
        into system hangs at boot. We let this bake in -next for a couple
        weeks to make sure there aren't any more issues because the last
        attempt to fix this ran into hangs and had to be reverted.
      
        Note: There were some more patches to the core framework around
        sync_state and disabling unused clks, but I asked for that to be
        reverted from the qcom PR because it isn't ready and we're still
        discussing the best solution on the list.
      
        Outside of the core clk framework, we have the usual collection of clk
        driver updates and support for new SoCs (which seems to never stop).
        The dirstat is dominated by Qualcomm because they added support for
        quite a few SoCs this time around and also migrated quite a few of
        their drivers to clk_parent_data. The other big diff is in the
        Mediatek clk drivers that saw a significant rework this cycle to
        similarly modernize the code, and we'll see that work continue in the
        next cycle as well. Nothing really jumps out as scary here, except
        that the significant churn in parent data descriptions can have typos
        that go unnoticed. More details below.
      
        Core:
         - Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
      
        New Drivers:
         - Add a new clk-gpr-mux clock type and use it on i.MX6Q to add ENET
           ref clocks
         - Support for Mediatek MT7891 SoC clks
         - Support for many Qualcomm clk controllers:
            - QDU1000/QRU1000 global clock controller
            - SA8775P global clock controller
            - SM8550 TCSR and display clock controller
            - SM6350 clock controller
            - MSM8996 CBF and APCS clock controllers
      
        Updates:
         - Various cleanups and improvements to Mediatek clk drivers to reduce
           code size and modernize the drivers
         - Support for Versa 5P49V60 clks
         - Disable R-Car H3 ES1.*, as it was only available to an internal
           development group and needed a lot of quirks and workarounds
         - Add PWM, Compare-Match Timer (TIM), USB, SDHI, and eMMC clocks and
           resets on Renesas RZ/V2M
         - Add display clocks on Renesas R-Car V4H
         - Add Camera Receiving Unit (CRU) clocks and resets on Renesas RZ/G2L
         - Free the imx_uart_clocks even if imx_register_uart_clocks returns
           early
         - Get the stdout clocks count from device tree on i.MX
         - Drop the clock count argument from imx_register_uart_clocks()
         - Keep the uart clocks on i.MX93 for when earlycon is used
         - Fix SPDX comment in i.MX6SLL clocks bindings header
         - Drop some unnecessary spaces from i.MX8ULP clocks bindings header
         - Add imx_obtain_fixed_of_clock() for allowing to add a clock that is
           not configured via devicetree
         - Fix the ENET1 gate configuration for i.MX6UL according to the
           reference manual
         - Add ENET refclock mux support for i.MX6UL
         - Add support for USB host/device configuration on Renesas RZ/N1
         - Add PLL2 programming support, and CAN-FD clocks on Renesas R-Car
           V4H
         - Add D1 CAN bus gates and resets for Allwinner
         - Mark D1 CPUX clock as critical on Allwinner
         - Reuse D1 driver for Allwinner R528/T113
         - Cleanup sunxi-ng Kconfig
         - Fix sunxi-ng kernel-doc issues
         - Model Allwinner H3/H5 DRAM clock as fixed clock
         - Use .determine_rate() instead of .round_rate() for the dualdiv,
           mpll, sclk-div and cpu-dyn-div amlogic clock drivers
         - DDR clocks were marked as critical in the proper clock driver for
           each AT91 SoC such that drivers/memory/atmel-sdramc.c to be deleted
           in the next releases as it only does clock enablement
         - Patch to avoid compiling dt-compat.o for all AT91 SoCs as only some
           of them may use it
         - Support synchronous power_off requests in the qcom GDSC driver for
           proper GPU power collapse
         - Drop test clocks from various Qualcomm clk drivers
         - Update parent references to use clk_parent_data/clk_hw in various
           Qualcomm clk drivers
         - Fixes for the Qualcomm MSM8996 CPU clock controller
         - Transition Qualcomm MSM8974 GCC off the externally defined
           sleep_clk
         - Add GDSCs in the global clock controller for Qualcomm QCS404
         - The SDCC core clocks on Qualcomm SM6115 are moved to floor_ops
         - Programming of clk_dis_wait for GPU CX GDSC on Qualcomm SC7180 and
           SDM845 are moved to use the recently introduced properties in the
           GDSC struct
         - Qualcomm's RPMh clock driver gains SM8550 and SA8775P clocks, and
           the IPA clock is added on a variety of platforms
         - De-duplicate identical clks in Qualcomm SMD RPM clk driver
         - Add a few missing clocks across msm8998, msm8992, msm8916, qcs404
           to Qualcomm SDM RPM clk driver
         - Various Qualcomm clk drivers use devm_pm_runtime_enable() to
           simplify"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (228 commits)
        clk: qcom: apcs-msm8986: Include bitfield.h for FIELD_PREP
        clk: qcom: Revert sync_state based clk_disable_unused
        clk: imx: pll14xx: fix recalc_rate for negative kdiv
        clk: rs9: Drop unused pin_xin field
        MAINTAINERS: clk: imx: Add Peng Fan as reviewer
        clk: sprd: Add dependency for SPRD_UMS512_CLK
        clk: ralink: fix 'mt7621_gate_is_enabled()' function
        clk: mediatek: clk-mtk: Remove unneeded semicolon
        dt-bindings: clock: remove stih416 bindings
        dt-bindings: clock: add loongson-2 clock
        dt-bindings: clock: add loongson-2 clock include file
        clk: imx: fix compile testing imxrt1050
        clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
        clk: imx: set imx_clk_gpr_mux_ops storage-class-specifier to static
        clk: renesas: rcar-gen3: Disable R-Car H3 ES1.*
        dt-bindings: clock: Merge qcom,gpucc-sm8350 into qcom,gpucc.yaml
        clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC
        clk: qcom: gpucc-sc7180: fix clk_dis_wait being programmed for CX GDSC
        dt-bindings: clock: qcom,sa8775p-gcc: add the power-domains property
        clk: qcom: cpu-8996: add missing cputype include
        ...
      1ec35ead
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v6.3' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 562ed38d
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - qcom: misc changes to bindings for sa8775p, QDU1000/QRU1000, IPQ5332,
         SDX55, msm8976, glink-rpm-edge
      
       - sti: convert to DT schema
      
       - zynq: switch to flexible array to simplify code
      
      * tag 'mailbox-v6.3' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        dt-bindings: mailbox: qcom-ipcc: Add compatible for QDU1000/QRU1000
        mailbox: qcom-apcs-ipc: add IPQ5332 APSS clock support
        dt-bindings: mailbox: qcom: add compatible for the IPQ5332 SoC
        dt-bindings: remoteproc: qcom,glink-rpm-edge: convert to DT schema
        mailbox: qcom-apcs-ipc: enable APCS clock device for MSM8996
        dt-bindings: mailbox: qcom: add #clock-cells to msm8996 example
        dt-bindings: mailbox: qcom: add missing platforms to conditional clauses
        dt-bindings: mailbox: qcom: correct the list of platforms using clocks
        dt-bindings: mailbox: qcom: enable syscon compatible for msm8976
        dt-bindings: mailbox: qcom: add SDX55 compatible
        dt-bindings: mailbox: qcom-ipcc: document the sa8775p platform
        dt-bindings: mailbox: sti-mailbox: convert to DT schema
        mailbox: zynq: Switch to flexible array to simplify code
      562ed38d
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 2e3036a2
      Linus Torvalds authored
      Pull MTD updates from Miquel Raynal:
       "MTD changes:
      
         - parsers: ofpart: add workaround for #size-cells 0
      
         - dt-bindings: partitions: Fix partition node name pattern
      
         - dataflash: remove duplicate SPI ID table
      
        Raw NAND core changes:
      
         - Check the data only read pattern only once
      
         - Prepare the late addition of supported operation checks
      
         - Support for sequential cache reads
      
         - Fix nand_chip kdoc
      
        Raw NAND driver changes:
      
         - Fsl_elbc: Propagate HW ECC settings to HW
      
         - Marvell: Add missing layouts
      
         - Pasemi: Don't use static data to track per-device state
      
         - Sunxi:
            - Fix the size of the last OOB region
            - Remove an unnecessary check
            - Remove an unnecessary check
            - Clean up chips after failed init
            - Precompute the ECC_CTL register value
            - Embed sunxi_nand_hw_ecc by value
            - Update OOB layout to match hardware
      
         - tmio_nand: Remove driver
      
         - vf610_nfc: Use regular comments for functions
      
        SPI-NAND driver changes:
      
         - Add support for AllianceMemory AS5F34G04SND
      
         - Macronix: use scratch buffer for DMA operation
      
        NAND ECC changes:
      
         - Mediatek:
            - Add ECC support fot MT7986 IC
            - Add compatible for MT7986
            - dt-bindings: Split ECC engine with rawnand controller
      
        SPI NOR changes:
      
         - Misc core fixes
      
        SPI NOR driver changes:
      
         - Spansion: Minor fixes"
      
      * tag 'mtd/for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (33 commits)
        mtd: parsers: ofpart: add workaround for #size-cells 0
        mtd: rawnand: sunxi: Precompute the ECC_CTL register value
        mtd: rawnand: sunxi: Embed sunxi_nand_hw_ecc by value
        mtd: rawnand: sunxi: Update OOB layout to match hardware
        mtd: spi-nor: Sort headers alphabetically
        mtd: spi-nor: Fix shift-out-of-bounds in spi_nor_set_erase_type
        mtd: nand: ecc-mtk: Add ECC support fot MT7986 IC
        dt-bindings: mtd: mediatek,nand-ecc-engine: Add compatible for MT7986
        dt-bindings: mtd: Split ECC engine with rawnand controller
        mtd: rawnand: fsl_elbc: Propagate HW ECC settings to HW
        mtd: spinand: Add support for AllianceMemory AS5F34G04SND
        dt-bindings: mtd: partitions: Fix partition node name pattern
        mtd: spi-nor: Create macros to define chip IDs and geometries
        mtd: spi-nor: spansion: Make CFRx reg fields generic
        mtd: spi-nor: spansion: Consider reserved bits in CFR5 register
        mtd: spi-nor: core: fix implicit declaration warning
        mtd: spinand: macronix: use scratch buffer for DMA operation
        mtd: rawnand: Fix nand_chip kdoc
        mtd: rawnand: vf610_nfc: use regular comments for functions
        mtd: rawnand: Support for sequential cache reads
        ...
      2e3036a2
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 60e2bf7d
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
      
       - a set of tweaks to iqs269a touch controller driver
      
       - a fix for ads7846 driver to properly handle 7845 chip
      
       - cap11xx driver will support cap1203, cap1293 and cap1298 models
      
       - xpad driver will support 8BitDo Pro 2 Wired Controller
      
       - input drivers have been switched to DEFINE_SIMPLE_DEV_PM_OPS() and
         pm_sleep_ptr()
      
       - other miscellaneous fixes and tweaks
      
      * tag 'input-for-v6.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (113 commits)
        dt-bindings: input: iqs626a: Redefine trackpad property types
        Input: iqs626a - drop unused device node references
        dt-bindings: input: touchscreen: st,stmfts: convert to dtschema
        Input: cyttsp5 - fix bitmask for touch buttons
        Input: exc3000 - properly stop timer on shutdown
        Input: synaptics-rmi4 - fix SPI device ID
        Input: cap11xx - add support for cap1203, cap1293 and cap1298
        dt-bindings: input: microchip,cap11xx: add cap1203, cap1293 and cap1298
        Input: pmic8xxx-keypad - fix a Kconfig spelling mistake & hyphenation
        Input: edt-ft5x06 - fix typo in a comment
        Input: tegra-kbc - use devm_platform_get_and_ioremap_resource()
        Input: st-keyscan - use devm_platform_get_and_ioremap_resource()
        Input: spear-keyboard - use devm_platform_get_and_ioremap_resource()
        Input: olpc_apsp - use devm_platform_get_and_ioremap_resource()
        Input: arc_ps2 - use devm_platform_get_and_ioremap_resource()
        Input: apbps2 - use devm_platform_get_and_ioremap_resource()
        Input: altera_ps2 - use devm_platform_get_and_ioremap_resource()
        Input: ads7846 - don't check penirq immediately for 7845
        Input: ads7846 - always set last command to PWRDOWN
        Input: ads7846 - don't report pressure for ads7845
        ...
      60e2bf7d
    • Linus Torvalds's avatar
      Merge tag 'probes-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 116b4116
      Linus Torvalds authored
      Pull kprobes cleanup updates from Masami Hiramatsu:
       "These are probe events cleanups, no new features but improve
        readability:
      
         - Rename print_probe_args() to trace_probe_print_args() and
           un-inline it
      
         - Introduce a set of default data fetch functions for dynamic
           probe events
      
         - Extract common code of data fetch process of dynamic probe events"
      
      * tag 'probes-v6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        kernel/trace: extract common part in process_fetch_insn
        kernel/trace: Provide default impelentations defined in trace_probe_tmpl.h
        kernel/trace: Introduce trace_probe_print_args and use it in *probes
      116b4116
    • Linus Torvalds's avatar
      Merge tag 'kcsan.2023.02.24a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 0447ed0d
      Linus Torvalds authored
      Pull kernel concurrency sanitizer (KCSAN) updates from Paul McKenney:
       "This fixes gcc-11 errors for x86_64 KCSAN-enabled kernel builds by
        selecting the CONSTRUCTORS Kconfig option"
      
      * tag 'kcsan.2023.02.24a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        kcsan: select CONFIG_CONSTRUCTORS
      0447ed0d
    • Linus Torvalds's avatar
      Merge tag 'flex-array-transformations-6.3-rc1' of... · 472a2abb
      Linus Torvalds authored
      Merge tag 'flex-array-transformations-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull flexible-array updates from Gustavo Silva:
       "Transform zero-length arrays, in unions, into flexible arrays"
      
      * tag 'flex-array-transformations-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        bcache: Replace zero-length arrays with DECLARE_FLEX_ARRAY() helper
        mm/memremap: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
        exportfs: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
      472a2abb
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · e534a583
      Linus Torvalds authored
      Pull alpha updates from Al Viro:
       "Mostly small janitorial fixes but there's also more important ones: a
        patch to fix loading large modules from Edward Humes, and some fixes
        from Al Viro"
      
      [ The fixes from Al mostly came in separately through Al's trees too and
        are now duplicated..   - Linus ]
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: in_irq() cleanup
        alpha: lazy FPU switching
        alpha/boot/misc: trim unused declarations
        alpha/boot/tools/objstrip: fix the check for ELF header
        alpha/boot: fix the breakage from -isystem series...
        alpha: fix FEN fault handling
        alpha: Avoid comma separated statements
        alpha: fixed a typo in core_cia.c
        alpha: remove unused __SLOW_DOWN_IO and SLOW_DOWN_IO definitions
        alpha: update config files
        alpha: fix R_ALPHA_LITERAL reloc for large modules
        alpha: Add some spaces to ensure format specification
        alpha: replace NR_SYSCALLS by NR_syscalls
        alpha: Remove redundant local asm header redirections
        alpha: Implement "current_stack_pointer"
        alpha: remove redundant err variable
        alpha: osf_sys: reduce kernel log spamming on invalid osf_mount call typenr
      e534a583
    • Linus Torvalds's avatar
      Merge tag 'vfio-v6.3-rc1' of https://github.com/awilliam/linux-vfio · cac85e46
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Remove redundant resource check in vfio-platform (Angus Chen)
      
       - Use GFP_KERNEL_ACCOUNT for persistent userspace allocations, allowing
         removal of arbitrary kernel limits in favor of cgroup control (Yishai
         Hadas)
      
       - mdev tidy-ups, including removing the module-only build restriction
         for sample drivers, Kconfig changes to select mdev support,
         documentation movement to keep sample driver usage instructions with
         sample drivers rather than with API docs, remove references to
         out-of-tree drivers in docs (Christoph Hellwig)
      
       - Fix collateral breakages from mdev Kconfig changes (Arnd Bergmann)
      
       - Make mlx5 migration support match device support, improve source and
         target flows to improve pre-copy support and reduce downtime (Yishai
         Hadas)
      
       - Convert additional mdev sysfs case to use sysfs_emit() (Bo Liu)
      
       - Resolve copy-paste error in mdev mbochs sample driver Kconfig (Ye
         Xingchen)
      
       - Avoid propagating missing reset error in vfio-platform if reset
         requirement is relaxed by module option (Tomasz Duszynski)
      
       - Range size fixes in mlx5 variant driver for missed last byte and
         stricter range calculation (Yishai Hadas)
      
       - Fixes to suspended vaddr support and locked_vm accounting, excluding
         mdev configurations from the former due to potential to indefinitely
         block kernel threads, fix underflow and restore locked_vm on new mm
         (Steve Sistare)
      
       - Update outdated vfio documentation due to new IOMMUFD interfaces in
         recent kernels (Yi Liu)
      
       - Resolve deadlock between group_lock and kvm_lock, finally (Matthew
         Rosato)
      
       - Fix NULL pointer in group initialization error path with IOMMUFD (Yan
         Zhao)
      
      * tag 'vfio-v6.3-rc1' of https://github.com/awilliam/linux-vfio: (32 commits)
        vfio: Fix NULL pointer dereference caused by uninitialized group->iommufd
        docs: vfio: Update vfio.rst per latest interfaces
        vfio: Update the kdoc for vfio_device_ops
        vfio/mlx5: Fix range size calculation upon tracker creation
        vfio: no need to pass kvm pointer during device open
        vfio: fix deadlock between group lock and kvm lock
        vfio: revert "iommu driver notify callback"
        vfio/type1: revert "implement notify callback"
        vfio/type1: revert "block on invalid vaddr"
        vfio/type1: restore locked_vm
        vfio/type1: track locked_vm per dma
        vfio/type1: prevent underflow of locked_vm via exec()
        vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR
        vfio: platform: ignore missing reset if disabled at module init
        vfio/mlx5: Improve the target side flow to reduce downtime
        vfio/mlx5: Improve the source side flow upon pre_copy
        vfio/mlx5: Check whether VF is migratable
        samples: fix the prompt about SAMPLE_VFIO_MDEV_MBOCHS
        vfio/mdev: Use sysfs_emit() to instead of sprintf()
        vfio-mdev: add back CONFIG_VFIO dependency
        ...
      cac85e46
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 84cc6674
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - device feature provisioning in ifcvf, mlx5
      
       - new SolidNET driver
      
       - support for zoned block device in virtio blk
      
       - numa support in virtio pmem
      
       - VIRTIO_F_RING_RESET support in vhost-net
      
       - more debugfs entries in mlx5
      
       - resume support in vdpa
      
       - completion batching in virtio blk
      
       - cleanup of dma api use in vdpa
      
       - now simulating more features in vdpa-sim
      
       - documentation, features, fixes all over the place
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (64 commits)
        vdpa/mlx5: support device features provisioning
        vdpa/mlx5: make MTU/STATUS presence conditional on feature bits
        vdpa: validate device feature provisioning against supported class
        vdpa: validate provisioned device features against specified attribute
        vdpa: conditionally read STATUS in config space
        vdpa: fix improper error message when adding vdpa dev
        vdpa/mlx5: Initialize CVQ iotlb spinlock
        vdpa/mlx5: Don't clear mr struct on destroy MR
        vdpa/mlx5: Directly assign memory key
        tools/virtio: enable to build with retpoline
        vringh: fix a typo in comments for vringh_kiov
        vhost-vdpa: print warning when vhost_vdpa_alloc_domain fails
        scsi: virtio_scsi: fix handling of kmalloc failure
        vdpa: Fix a couple of spelling mistakes in some messages
        vhost-net: support VIRTIO_F_RING_RESET
        vhost-scsi: convert sysfs snprintf and sprintf to sysfs_emit
        vdpa: mlx5: support per virtqueue dma device
        vdpa: set dma mask for vDPA device
        virtio-vdpa: support per vq dma device
        vdpa: introduce get_vq_dma_device()
        ...
      84cc6674
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 49d57592
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM:
      
         - Provide a virtual cache topology to the guest to avoid
           inconsistencies with migration on heterogenous systems. Non secure
           software has no practical need to traverse the caches by set/way in
           the first place
      
         - Add support for taking stage-2 access faults in parallel. This was
           an accidental omission in the original parallel faults
           implementation, but should provide a marginal improvement to
           machines w/o FEAT_HAFDBS (such as hardware from the fruit company)
      
         - A preamble to adding support for nested virtualization to KVM,
           including vEL2 register state, rudimentary nested exception
           handling and masking unsupported features for nested guests
      
         - Fixes to the PSCI relay that avoid an unexpected host SVE trap when
           resuming a CPU when running pKVM
      
         - VGIC maintenance interrupt support for the AIC
      
         - Improvements to the arch timer emulation, primarily aimed at
           reducing the trap overhead of running nested
      
         - Add CONFIG_USERFAULTFD to the KVM selftests config fragment in the
           interest of CI systems
      
         - Avoid VM-wide stop-the-world operations when a vCPU accesses its
           own redistributor
      
         - Serialize when toggling CPACR_EL1.SMEN to avoid unexpected
           exceptions in the host
      
         - Aesthetic and comment/kerneldoc fixes
      
         - Drop the vestiges of the old Columbia mailing list and add [Oliver]
           as co-maintainer
      
        RISC-V:
      
         - Fix wrong usage of PGDIR_SIZE instead of PUD_SIZE
      
         - Correctly place the guest in S-mode after redirecting a trap to the
           guest
      
         - Redirect illegal instruction traps to guest
      
         - SBI PMU support for guest
      
        s390:
      
         - Sort out confusion between virtual and physical addresses, which
           currently are the same on s390
      
         - A new ioctl that performs cmpxchg on guest memory
      
         - A few fixes
      
        x86:
      
         - Change tdp_mmu to a read-only parameter
      
         - Separate TDP and shadow MMU page fault paths
      
         - Enable Hyper-V invariant TSC control
      
         - Fix a variety of APICv and AVIC bugs, some of them real-world, some
           of them affecting architecurally legal but unlikely to happen in
           practice
      
         - Mark APIC timer as expired if its in one-shot mode and the count
           underflows while the vCPU task was being migrated
      
         - Advertise support for Intel's new fast REP string features
      
         - Fix a double-shootdown issue in the emergency reboot code
      
         - Ensure GIF=1 and disable SVM during an emergency reboot, i.e. give
           SVM similar treatment to VMX
      
         - Update Xen's TSC info CPUID sub-leaves as appropriate
      
         - Add support for Hyper-V's extended hypercalls, where "support" at
           this point is just forwarding the hypercalls to userspace
      
         - Clean up the kvm->lock vs. kvm->srcu sequences when updating the
           PMU and MSR filters
      
         - One-off fixes and cleanups
      
         - Fix and cleanup the range-based TLB flushing code, used when KVM is
           running on Hyper-V
      
         - Add support for filtering PMU events using a mask. If userspace
           wants to restrict heavily what events the guest can use, it can now
           do so without needing an absurd number of filter entries
      
         - Clean up KVM's handling of "PMU MSRs to save", especially when vPMU
           support is disabled
      
         - Add PEBS support for Intel Sapphire Rapids
      
         - Fix a mostly benign overflow bug in SEV's
           send|receive_update_data()
      
         - Move several SVM-specific flags into vcpu_svm
      
        x86 Intel:
      
         - Handle NMI VM-Exits before leaving the noinstr region
      
         - A few trivial cleanups in the VM-Enter flows
      
         - Stop enabling VMFUNC for L1 purely to document that KVM doesn't
           support EPTP switching (or any other VM function) for L1
      
         - Fix a crash when using eVMCS's enlighted MSR bitmaps
      
        Generic:
      
         - Clean up the hardware enable and initialization flow, which was
           scattered around multiple arch-specific hooks. Instead, just let
           the arch code call into generic code. Both x86 and ARM should
           benefit from not having to fight common KVM code's notion of how to
           do initialization
      
         - Account allocations in generic kvm_arch_alloc_vm()
      
         - Fix a memory leak if coalesced MMIO unregistration fails
      
        selftests:
      
         - On x86, cache the CPU vendor (AMD vs. Intel) and use the info to
           emit the correct hypercall instruction instead of relying on KVM to
           patch in VMMCALL
      
         - Use TAP interface for kvm_binary_stats_test and tsc_msrs_test"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (325 commits)
        KVM: SVM: hyper-v: placate modpost section mismatch error
        KVM: x86/mmu: Make tdp_mmu_allowed static
        KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
        KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes
        KVM: arm64: nv: Filter out unsupported features from ID regs
        KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2
        KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
        KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
        KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
        KVM: arm64: nv: Handle SMCs taken from virtual EL2
        KVM: arm64: nv: Handle trapped ERET from virtual EL2
        KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
        KVM: arm64: nv: Support virtual EL2 exceptions
        KVM: arm64: nv: Handle HCR_EL2.NV system register traps
        KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
        KVM: arm64: nv: Add EL2 system registers to vcpu context
        KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
        KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
        KVM: arm64: nv: Introduce nested virtualization VCPU feature
        KVM: arm64: Use the S2 MMU context to iterate over S2 table
        ...
      49d57592
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.3-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 01687e7c
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
       "There's a bunch of fixes/cleanups throughout the tree as usual, but we
        also have a handful of new features:
      
         - Various improvements to the extension detection and alternative
           patching infrastructure
      
         - Zbb-optimized string routines
      
         - Support for cpu-capacity in the RISC-V DT bindings
      
         - Zicbom no longer depends on toolchain support
      
         - Some performance and code size improvements to ftrace
      
         - Support for ARCH_WANT_LD_ORPHAN_WARN
      
         - Oops now contain the faulting instruction"
      
      * tag 'riscv-for-linus-6.3-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (67 commits)
        RISC-V: add a spin_shadow_stack declaration
        riscv: mm: hugetlb: Enable ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
        riscv: Add header include guards to insn.h
        riscv: alternative: proceed one more instruction for auipc/jalr pair
        riscv: Avoid enabling interrupts in die()
        riscv, mm: Perform BPF exhandler fixup on page fault
        RISC-V: take text_mutex during alternative patching
        riscv: hwcap: Don't alphabetize ISA extension IDs
        RISC-V: fix ordering of Zbb extension
        riscv: jump_label: Fixup unaligned arch_static_branch function
        RISC-V: Only provide the single-letter extensions in HWCAP
        riscv: mm: fix regression due to update_mmu_cache change
        scripts/decodecode: Add support for RISC-V
        riscv: Add instruction dump to RISC-V splats
        riscv: select ARCH_WANT_LD_ORPHAN_WARN for !XIP_KERNEL
        riscv: vmlinux.lds.S: explicitly catch .init.bss sections from EFI stub
        riscv: vmlinux.lds.S: explicitly catch .riscv.attributes sections
        riscv: vmlinux.lds.S: explicitly catch .rela.dyn symbols
        riscv: lds: define RUNTIME_DISCARD_EXIT
        RISC-V: move some stray __RISCV_INSN_FUNCS definitions from kprobes
        ...
      01687e7c
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d0a32f55
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Support for configuring secure boot with user-defined keys on PowerVM
         LPARs
      
       - Simplify the replay of soft-masked IRQs by making it non-recursive
      
       - Add support for KCSAN on 64-bit Book3S
      
       - Improvements to the API & code which interacts with RTAS (pseries
         firmware)
      
       - Change 32-bit powermac to assign PCI bus numbers per domain by
         default
      
       - Some improvements to the 32-bit BPF JIT
      
       - Various other small features and fixes
      
      Thanks to Anders Roxell, Andrew Donnellan, Andrew Jeffery, Benjamin
      Gray, Christophe Leroy, Frederic Barrat, Ganesh Goudar, Geoff Levand,
      Greg Kroah-Hartman, Jan-Benedict Glaw, Josh Poimboeuf, Kajol Jain,
      Laurent Dufour, Mahesh Salgaonkar, Mathieu Desnoyers, Mimi Zohar, Murphy
      Zhou, Nathan Chancellor, Nathan Lynch, Nayna Jain, Nicholas Piggin, Pali
      Rohár, Petr Mladek, Rohan McLure, Russell Currey, Sachin Sant, Sathvika
      Vasireddy, Sourabh Jain, Stefan Berger, Stephen Rothwell, and Sudhakar
      Kuppusamy.
      
      * tag 'powerpc-6.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (114 commits)
        powerpc/pseries: Avoid hcall in plpks_is_available() on non-pseries
        powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot
        powerpc/e500: Add missing prototype for 'relocate_init'
        powerpc/64: Fix unannotated intra-function call warning
        powerpc/epapr: Don't use wrteei on non booke
        powerpc: Pass correct CPU reference to assembler
        powerpc/mm: Rearrange if-else block to avoid clang warning
        powerpc/nohash: Fix build with llvm-as
        powerpc/nohash: Fix build error with binutils >= 2.38
        powerpc/pseries: Fix endianness issue when parsing PLPKS secvar flags
        macintosh: windfarm: Use unsigned type for 1-bit bitfields
        powerpc/kexec_file: print error string on usable memory property update failure
        powerpc/machdep: warn when machine_is() used too early
        powerpc/64: Replace -mcpu=e500mc64 by -mcpu=e5500
        powerpc/eeh: Set channel state after notifying the drivers
        selftests/powerpc: Fix incorrect kernel headers search path
        powerpc/rtas: arch-wide function token lookup conversions
        powerpc/rtas: introduce rtas_function_token() API
        powerpc/pseries/lpar: convert to papr_sysparm API
        powerpc/pseries/hv-24x7: convert to papr_sysparm API
        ...
      d0a32f55
    • Linus Torvalds's avatar
      Merge tag 'mips_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 5596c6ad
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
       "Just cleanups and fixes"
      
      * tag 'mips_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: vpe-mt: drop physical_memsize
        mips: fix syscall_get_nr
        MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
        MIPS: DTS: jz4780: add #clock-cells to rtc_dev
        MIPS: dts: Boston: Fix dtc 'pci_device_reg' warning
        mips: dts: ralink: mt7621: add port@5 as CPU port
        mips: dts: align LED node names with dtschema
        MIPS: ralink: Use devm_platform_get_and_ioremap_resource()
        MIPS: pci-mt7620: Use devm_platform_get_and_ioremap_resource()
        MIPS: pci: lantiq: Use devm_platform_get_and_ioremap_resource()
        MIPS: lantiq: xway: Use devm_platform_get_and_ioremap_resource()
        MIPS: BCM47XX: Add support for Linksys E2500 V3
        mips: ralink: make SOC_MT7621 select PINCTRL_MT7621 and fix help section
        MIPS: DTS: CI20: fix otg power gpio
        MIPS: dts: lantiq: Remove bogus interrupt-parent; line
        MIPS: Fix a compilation issue
        MIPS: remove CONFIG_MIPS_LD_CAN_LINK_VDSO
        mips: Realtek RTL: select NO_EXCEPT_FILL
        MIPS: OCTEON: octeon-usb: Consolidate error messages
      5596c6ad
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 7c3dc440
      Linus Torvalds authored
      Pull Compute Express Link (CXL) updates from Dan Williams:
       "To date Linux has been dependent on platform-firmware to map CXL RAM
        regions and handle events / errors from devices. With this update we
        can now parse / update the CXL memory layout, and report events /
        errors from devices. This is a precursor for the CXL subsystem to
        handle the end-to-end "RAS" flow for CXL memory. i.e. the flow that
        for DDR-attached-DRAM is handled by the EDAC driver where it maps
        system physical address events to a field-replaceable-unit (FRU /
        endpoint device). In general, CXL has the potential to standardize
        what has historically been a pile of memory-controller-specific error
        handling logic.
      
        Another change of note is the default policy for handling RAM-backed
        device-dax instances. Previously the default access mode was "device",
        mmap(2) a device special file to access memory. The new default is
        "kmem" where the address range is assigned to the core-mm via
        add_memory_driver_managed(). This saves typical users from wondering
        why their platform memory is not visible via free(1) and stuck behind
        a device-file. At the same time it allows expert users to deploy
        policy to, for example, get dedicated access to high performance
        memory, or hide low performance memory from general purpose kernel
        allocations. This affects not only CXL, but also systems with
        high-bandwidth-memory that platform-firmware tags with the
        EFI_MEMORY_SP (special purpose) designation.
      
        Summary:
      
         - CXL RAM region enumeration: instantiate 'struct cxl_region' objects
           for platform firmware created memory regions
      
         - CXL RAM region provisioning: complement the existing PMEM region
           creation support with RAM region support
      
         - "Soft Reservation" policy change: Online (memory hot-add)
           soft-reserved memory (EFI_MEMORY_SP) by default, but still allow
           for setting aside such memory for dedicated access via device-dax.
      
         - CXL Events and Interrupts: Takeover CXL event handling from
           platform-firmware (ACPI calls this CXL Memory Error Reporting) and
           export CXL Events via Linux Trace Events.
      
         - Convey CXL _OSC results to drivers: Similar to PCI, let the CXL
           subsystem interrogate the result of CXL _OSC negotiation.
      
         - Emulate CXL DVSEC Range Registers as "decoders": Allow for
           first-generation devices that pre-date the definition of the CXL
           HDM Decoder Capability to translate the CXL DVSEC Range Registers
           into 'struct cxl_decoder' objects.
      
         - Set timestamp: Per spec, set the device timestamp in case of
           hotplug, or if platform-firwmare failed to set it.
      
         - General fixups: linux-next build issues, non-urgent fixes for
           pre-production hardware, unit test fixes, spelling and debug
           message improvements"
      
      * tag 'cxl-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (66 commits)
        dax/kmem: Fix leak of memory-hotplug resources
        cxl/mem: Add kdoc param for event log driver state
        cxl/trace: Add serial number to trace points
        cxl/trace: Add host output to trace points
        cxl/trace: Standardize device information output
        cxl/pci: Remove locked check for dvsec_range_allowed()
        cxl/hdm: Add emulation when HDM decoders are not committed
        cxl/hdm: Create emulated cxl_hdm for devices that do not have HDM decoders
        cxl/hdm: Emulate HDM decoder from DVSEC range registers
        cxl/pci: Refactor cxl_hdm_decode_init()
        cxl/port: Export cxl_dvsec_rr_decode() to cxl_port
        cxl/pci: Break out range register decoding from cxl_hdm_decode_init()
        cxl: add RAS status unmasking for CXL
        cxl: remove unnecessary calling of pci_enable_pcie_error_reporting()
        dax/hmem: build hmem device support as module if possible
        dax: cxl: add CXL_REGION dependency
        cxl: avoid returning uninitialized error code
        cxl/pmem: Fix nvdimm registration races
        cxl/mem: Fix UAPI command comment
        cxl/uapi: Tag commands from cxl_query_cmd()
        ...
      7c3dc440
    • Linus Torvalds's avatar
      Merge tag 'x86_tdx_for_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d8e47318
      Linus Torvalds authored
      Pull Intel Trust Domain Extensions (TDX) updates from Dave Hansen:
       "Other than a minor fixup, the content here is to ensure that TDX
        guests never see virtualization exceptions (#VE's) that might be
        induced by the untrusted VMM.
      
        This is a highly desirable property. Without it, #VE exception
        handling would fall somewhere between NMIs, machine checks and total
        insanity. With it, #VE handling remains pretty mundane.
      
        Summary:
      
         - Fixup comment typo
      
         - Prevent unexpected #VE's from:
            - Hosts removing perfectly good guest mappings (SEPT_VE_DISABLE)
            - Excessive #VE notifications (NOTIFY_ENABLES) which are delivered
              via a #VE"
      
      * tag 'x86_tdx_for_6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tdx: Do not corrupt frame-pointer in __tdx_hypercall()
        x86/tdx: Disable NOTIFY_ENABLES
        x86/tdx: Relax SEPT_VE_DISABLE check for debug TD
        x86/tdx: Use ReportFatalError to report missing SEPT_VE_DISABLE
        x86/tdx: Expand __tdx_hypercall() to handle more arguments
        x86/tdx: Refactor __tdx_hypercall() to allow pass down more arguments
        x86/tdx: Add more registers to struct tdx_hypercall_args
        x86/tdx: Fix typo in comment in __tdx_hypercall()
      d8e47318
    • Changbin Du's avatar
      alpha: in_irq() cleanup · 290ec1d5
      Changbin Du authored
      Replace the obsolete and ambiguos macro in_irq() with new
      macro in_hardirq().
      Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      290ec1d5
    • Al Viro's avatar
      alpha: lazy FPU switching · 05096666
      Al Viro authored
      	On each context switch we save the FPU registers on stack
      of old process and restore FPU registers from the stack of new one.
      That allows us to avoid doing that each time we enter/leave the
      kernel mode; however, that can get suboptimal in some cases.
      
      	For one thing, we don't need to bother saving anything
      for kernel threads.  For another, if between entering and leaving
      the kernel a thread gives CPU up more than once, it will do
      useless work, saving the same values every time, only to discard
      the saved copy as soon as it returns from switch_to().
      
      	Alternative solution:
      
      * move the array we save into from switch_stack to thread_info
      * have a (thread-synchronous) flag set when we save them
      * have another flag set when they should be restored on return to userland.
      * do *NOT* save/restore them in do_switch_stack()/undo_switch_stack().
      * restore on the exit to user mode if the restore flag had
      been set.  Clear both flags.
      * on context switch, entry to fork/clone/vfork, before entry into do_signal()
      and on entry into straced syscall save the registers and set the 'saved' flag
      unless it had been already set.
      * on context switch set the 'restore' flag as well.
      * have copy_thread() set both flags for child, so the registers would be
      restored once the child returns to userland.
      * use the saved data in setup_sigcontext(); have restore_sigcontext() set both flags
      and copy from sigframe to save area.
      * teach ptrace to look for FPU registers in thread_info instead of
      switch_stack.
      * teach isolated accesses to FPU registers (rdfpcr, wrfpcr, etc.)
      to check the 'saved' flag (under preempt_disable()) and work with the save area
      if it's been set; if 'saved' flag is found upon write access, set 'restore' flag
      as well.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      05096666
    • Al Viro's avatar
      alpha/boot/misc: trim unused declarations · a7acb188
      Al Viro authored
      gzip_mark() and gzip_release() are gone; there used to be two
      forward declarations of each and the patch removing those suckers
      had left one of each behind...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      a7acb188
    • Al Viro's avatar
      alpha/boot/tools/objstrip: fix the check for ELF header · a4c082f2
      Al Viro authored
      Just memcmp() with ELFMAG - that's the normal way to do it in userland
      code, which that thing is.  Besides, that has the benefit of actually
      building - str_has_prefix() is *NOT* present in <string.h>.
      
      Fixes: 5f14596e "alpha: Replace strncmp with str_has_prefix"
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      a4c082f2