Skip to contentSkip to conversation

Linux 6.19.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 19 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.19.9 kernel.

All users of the 6.19 kernel series must upgrade.

The updated 6.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/display/msm/dp-controller.yaml    |   21 +
 Documentation/devicetree/bindings/display/msm/qcom,glymur-mdss.yaml |   16 
 Documentation/devicetree/bindings/display/msm/qcom,sm8750-mdss.yaml |    2 
 Documentation/virt/kvm/api.rst                                      |    8 
 Makefile                                                            |    3 
 arch/arm64/include/asm/kvm_host.h                                   |    3 
 arch/arm64/include/asm/pgtable-prot.h                               |   10 
 arch/arm64/kernel/cpufeature.c                                      |    9 
 arch/arm64/kvm/hyp/nvhe/mem_protect.c                               |    2 
 arch/arm64/kvm/mmu.c                                                |   12 
 arch/arm64/kvm/vgic/vgic-init.c                                     |   34 -
 arch/arm64/kvm/vgic/vgic-v2.c                                       |    4 
 arch/arm64/kvm/vgic/vgic-v3.c                                       |   12 
 arch/arm64/kvm/vgic/vgic.c                                          |    6 
 arch/arm64/mm/contpte.c                                             |   53 ++
 arch/arm64/mm/mmap.c                                                |    6 
 arch/parisc/include/asm/pgtable.h                                   |    2 
 arch/parisc/kernel/head.S                                           |    7 
 arch/parisc/kernel/setup.c                                          |   20 -
 arch/powerpc/include/asm/uaccess.h                                  |    2 
 arch/powerpc/kexec/core.c                                           |   17 
 arch/powerpc/kexec/file_load_64.c                                   |   14 
 arch/powerpc/net/bpf_jit_comp.c                                     |   30 +
 arch/powerpc/net/bpf_jit_comp64.c                                   |  101 ++++-
 arch/powerpc/perf/callchain.c                                       |    5 
 arch/powerpc/perf/callchain_32.c                                    |    1 
 arch/powerpc/perf/callchain_64.c                                    |    1 
 arch/powerpc/platforms/83xx/km83xx.c                                |    4 
 arch/powerpc/platforms/pseries/msi.c                                |    2 
 arch/s390/include/asm/processor.h                                   |    2 
 arch/s390/lib/xor.c                                                 |    5 
 arch/s390/mm/pfault.c                                               |    4 
 arch/x86/include/asm/kvm_host.h                                     |    3 
 arch/x86/include/uapi/asm/kvm.h                                     |    1 
 arch/x86/kernel/apic/apic.c                                         |    6 
 arch/x86/kvm/svm/avic.c                                             |    9 
 arch/x86/kvm/svm/svm.c                                              |    9 
 arch/x86/kvm/vmx/nested.c                                           |   22 -
 drivers/accel/amdxdna/aie2_ctx.c                                    |   14 
 drivers/accel/amdxdna/amdxdna_ctx.c                                 |   10 
 drivers/acpi/osi.c                                                  |   13 
 drivers/acpi/osl.c                                                  |    2 
 drivers/acpi/sleep.c                                                |    8 
 drivers/android/binder/page_range.rs                                |   83 +++-
 drivers/android/binder/process.rs                                   |    3 
 drivers/android/binder/range_alloc/array.rs                         |   35 +
 drivers/android/binder/range_alloc/mod.rs                           |    4 
 drivers/android/binder/range_alloc/tree.rs                          |   18 
 drivers/android/binder/thread.rs                                    |   17 
 drivers/ata/libata-core.c                                           |    2 
 drivers/base/property.c                                             |   27 -
 drivers/block/ublk_drv.c                                            |   12 
 drivers/char/ipmi/ipmi_si_intf.c                                    |   37 +
 drivers/cpufreq/intel_pstate.c                                      |    4 
 drivers/cpuidle/cpuidle.c                                           |   10 
 drivers/crypto/ccp/sev-dev.c                                        |   10 
 drivers/cxl/Kconfig                                                 |    1 
 drivers/firmware/cirrus/cs_dsp.c                                    |   24 -
 drivers/firmware/stratix10-rsu.c                                    |    2 
 drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c                          |    7 
 drivers/gpio/gpiolib.c                                              |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c                    |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                          |   17 
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h                            |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c                     |   14 
 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c                              |    5 
 drivers/gpu/drm/amd/amdgpu/mes_v12_0.c                              |    5 
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c                             |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c              |    1 
 drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c           |    6 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c                |   11 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c                |    6 
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c                |    3 
 drivers/gpu/drm/bridge/samsung-dsim.c                               |   25 -
 drivers/gpu/drm/bridge/ti-sn65dsi83.c                               |   13 
 drivers/gpu/drm/bridge/ti-sn65dsi86.c                               |    6 
 drivers/gpu/drm/i915/display/intel_alpm.c                           |   13 
 drivers/gpu/drm/i915/display/intel_display.c                        |    1 
 drivers/gpu/drm/i915/display/intel_dp.c                             |    7 
 drivers/gpu/drm/i915/display/intel_psr.c                            |   50 ++
 drivers/gpu/drm/i915/display/intel_vrr.c                            |   14 
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c                           |   12 
 drivers/gpu/drm/msm/adreno/a2xx_gpummu.c                            |    2 
 drivers/gpu/drm/msm/adreno/a6xx_catalog.c                           |    3 
 drivers/gpu/drm/msm/adreno/a8xx_gpu.c                               |   14 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h            |   12 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h              |   12 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h             |    4 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h              |   12 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_1_sar2130p.h            |   12 
 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h            |   12 
 drivers/gpu/drm/msm/dsi/dsi_host.c                                  |   43 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c                         |    3 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c               |   12 
 drivers/gpu/drm/sitronix/st7586.c                                   |   15 
 drivers/gpu/drm/ttm/ttm_pool_internal.h                             |    2 
 drivers/gpu/drm/xe/xe_sync.c                                        |   30 +
 drivers/gpu/drm/xe/xe_wa.c                                          |   13 
 drivers/hwmon/pmbus/q54sj108a2.c                                    |   19 -
 drivers/i3c/master/dw-i3c-master.c                                  |    4 
 drivers/i3c/master/mipi-i3c-hci/cmd.h                               |    1 
 drivers/i3c/master/mipi-i3c-hci/cmd_v1.c                            |    2 
 drivers/i3c/master/mipi-i3c-hci/cmd_v2.c                            |    2 
 drivers/i3c/master/mipi-i3c-hci/core.c                              |    9 
 drivers/i3c/master/mipi-i3c-hci/dma.c                               |   96 +++--
 drivers/i3c/master/mipi-i3c-hci/hci.h                               |    2 
 drivers/i3c/master/mipi-i3c-hci/pio.c                               |   16 
 drivers/iio/chemical/bme680_core.c                                  |    2 
 drivers/iio/chemical/sps30_i2c.c                                    |    2 
 drivers/iio/chemical/sps30_serial.c                                 |    2 
 drivers/iio/dac/ds4424.c                                            |    2 
 drivers/iio/frequency/adf4377.c                                     |    2 
 drivers/iio/gyro/mpu3050-core.c                                     |   18 
 drivers/iio/gyro/mpu3050-i2c.c                                      |    3 
 drivers/iio/imu/adis.c                                              |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c                   |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c                  |    4 
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c                    |    2 
 drivers/iio/imu/inv_icm45600/inv_icm45600.h                         |    2 
 drivers/iio/imu/inv_icm45600/inv_icm45600_core.c                    |   11 
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c                          |    8 
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h                           |    2 
 drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c                       |    5 
 drivers/iio/industrialio-buffer.c                                   |    6 
 drivers/iio/light/bh1780.c                                          |    2 
 drivers/iio/magnetometer/tlv493d.c                                  |    2 
 drivers/iio/potentiometer/mcp4131.c                                 |    2 
 drivers/iio/proximity/hx9023s.c                                     |    6 
 drivers/irqchip/irq-gic-v3-its.c                                    |    4 
 drivers/irqchip/irq-riscv-aplic-direct.c                            |   10 
 drivers/irqchip/irq-riscv-aplic-main.c                              |  187 +++++++++-
 drivers/irqchip/irq-riscv-aplic-main.h                              |   19 +
 drivers/media/dvb-core/dvb_net.c                                    |    3 
 drivers/mmc/host/dw_mmc-rockchip.c                                  |   38 +-
 drivers/mmc/host/mmci_qcom_dml.c                                    |    1 
 drivers/mmc/host/sdhci-brcmstb.c                                    |    2 
 drivers/net/bonding/bond_main.c                                     |   70 +++
 drivers/net/caif/caif_serial.c                                      |    3 
 drivers/net/can/dev/calc_bittiming.c                                |    2 
 drivers/net/can/spi/hi311x.c                                        |    5 
 drivers/net/can/usb/gs_usb.c                                        |   22 -
 drivers/net/dsa/microchip/ksz_ptp.c                                 |   11 
 drivers/net/dsa/realtek/rtl8365mb.c                                 |    3 
 drivers/net/dsa/realtek/rtl8366rb-leds.c                            |    6 
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c                            |   19 -
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c                         |   82 ++++
 drivers/net/ethernet/amd/xgbe/xgbe.h                                |    4 
 drivers/net/ethernet/arc/emac_main.c                                |   11 
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c                   |    4 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                      |   31 -
 drivers/net/ethernet/broadcom/genet/bcmgenet.h                      |    5 
 drivers/net/ethernet/broadcom/genet/bcmmii.c                        |   10 
 drivers/net/ethernet/cadence/macb_main.c                            |   98 +++++
 drivers/net/ethernet/freescale/enetc/netc_blk_ctrl.c                |   24 -
 drivers/net/ethernet/intel/e1000/e1000_main.c                       |    2 
 drivers/net/ethernet/intel/e1000e/netdev.c                          |    2 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c                  |   14 
 drivers/net/ethernet/intel/iavf/iavf.h                              |    3 
 drivers/net/ethernet/intel/iavf/iavf_ethtool.c                      |   19 -
 drivers/net/ethernet/intel/iavf/iavf_main.c                         |   81 +---
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c                     |    1 
 drivers/net/ethernet/intel/ice/devlink/devlink.c                    |    4 
 drivers/net/ethernet/intel/ice/ice_common.c                         |   13 
 drivers/net/ethernet/intel/ice/ice_ethtool.c                        |   35 -
 drivers/net/ethernet/intel/ixgbevf/vf.c                             |    3 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c             |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c            |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c         |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c                     |   23 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                   |    7 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h                   |    2 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c          |   45 +-
 drivers/net/ethernet/microsoft/mana/gdma_main.c                     |    1 
 drivers/net/ethernet/microsoft/mana/mana_en.c                       |   23 -
 drivers/net/ethernet/spacemit/k1_emac.c                             |   19 -
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                            |   16 
 drivers/net/ethernet/ti/am65-cpsw-nuss.h                            |    2 
 drivers/net/mctp/mctp-i2c.c                                         |    1 
 drivers/net/mctp/mctp-usb.c                                         |    3 
 drivers/net/phy/sfp.c                                               |    8 
 drivers/net/usb/lan78xx.c                                           |   12 
 drivers/net/usb/lan78xx.h                                           |    3 
 drivers/net/usb/qmi_wwan.c                                          |    4 
 drivers/net/usb/usbnet.c                                            |    7 
 drivers/nvme/host/pci.c                                             |    8 
 drivers/pinctrl/pinctrl-cy8c95x0.c                                  |    4 
 drivers/pmdomain/bcm/bcm2835-power.c                                |    6 
 drivers/pmdomain/rockchip/pm-domains.c                              |    2 
 drivers/regulator/pca9450-regulator.c                               |   14 
 drivers/regulator/pf9453-regulator.c                                |    2 
 drivers/remoteproc/mtk_scp.c                                        |   39 ++
 drivers/remoteproc/qcom_sysmon.c                                    |    2 
 drivers/remoteproc/qcom_wcnss.c                                     |    2 
 drivers/s390/block/dasd_eckd.c                                      |   16 
 drivers/s390/crypto/zcrypt_ccamisc.c                                |   12 
 drivers/s390/crypto/zcrypt_cex4.c                                   |    3 
 drivers/scsi/hisi_sas/hisi_sas_main.c                               |    2 
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c                              |    2 
 drivers/scsi/mpi3mr/mpi3mr_fw.c                                     |   34 +
 drivers/scsi/qla2xxx/qla_iocb.c                                     |    2 
 drivers/scsi/scsi_scan.c                                            |    8 
 drivers/scsi/ses.c                                                  |    5 
 drivers/scsi/storvsc_drv.c                                          |    5 
 drivers/spi/spi-amlogic-spifc-a4.c                                  |    5 
 drivers/spi/spi-rockchip-sfc.c                                      |    2 
 drivers/staging/rtl8723bs/core/rtw_ieee80211.c                      |   15 
 drivers/staging/rtl8723bs/core/rtw_mlme.c                           |    5 
 drivers/staging/sm750fb/sm750.c                                     |    1 
 drivers/staging/sm750fb/sm750_hw.c                                  |   22 -
 drivers/ufs/core/ufshcd.c                                           |   11 
 drivers/usb/class/cdc-acm.c                                         |    5 
 drivers/usb/class/cdc-acm.h                                         |    1 
 drivers/usb/class/cdc-wdm.c                                         |    4 
 drivers/usb/class/usbtmc.c                                          |    6 
 drivers/usb/core/message.c                                          |  100 ++++-
 drivers/usb/core/phy.c                                              |    8 
 drivers/usb/core/quirks.c                                           |   16 
 drivers/usb/dwc3/dwc3-pci.c                                         |    2 
 drivers/usb/gadget/function/f_hid.c                                 |    4 
 drivers/usb/gadget/function/f_mass_storage.c                        |   12 
 drivers/usb/gadget/function/f_ncm.c                                 |  146 ++++---
 drivers/usb/gadget/function/f_tcm.c                                 |   14 
 drivers/usb/gadget/function/u_ether.c                               |   67 +--
 drivers/usb/gadget/function/u_ether.h                               |   56 +-
 drivers/usb/gadget/function/u_ether_configfs.h                      |  176 ---------
 drivers/usb/gadget/function/u_ncm.h                                 |    4 
 drivers/usb/gadget/function/uvc_video.c                             |    2 
 drivers/usb/host/xhci-debugfs.c                                     |   10 
 drivers/usb/host/xhci-ring.c                                        |    1 
 drivers/usb/host/xhci.c                                             |    4 
 drivers/usb/image/mdc800.c                                          |    6 
 drivers/usb/misc/uss720.c                                           |    2 
 drivers/usb/misc/yurex.c                                            |    2 
 drivers/usb/renesas_usbhs/common.c                                  |    9 
 drivers/usb/roles/class.c                                           |    7 
 drivers/usb/typec/altmodes/displayport.c                            |    7 
 drivers/usb/typec/tcpm/tcpm.c                                       |    2 
 fs/afs/addr_list.c                                                  |    8 
 fs/btrfs/extent_io.c                                                |    1 
 fs/btrfs/inode.c                                                    |   19 +
 fs/btrfs/ioctl.c                                                    |   24 +
 fs/btrfs/space-info.c                                               |    5 
 fs/btrfs/transaction.c                                              |   16 
 fs/btrfs/uuid-tree.c                                                |   38 ++
 fs/btrfs/uuid-tree.h                                                |    2 
 fs/btrfs/volumes.c                                                  |    6 
 fs/ceph/addr.c                                                      |    1 
 fs/ceph/debugfs.c                                                   |    4 
 fs/ceph/dir.c                                                       |   17 
 fs/ceph/file.c                                                      |    4 
 fs/ceph/inode.c                                                     |    2 
 fs/ceph/mds_client.c                                                |    3 
 fs/file_attr.c                                                      |    2 
 fs/iomap/buffered-io.c                                              |   15 
 fs/iomap/ioend.c                                                    |   13 
 fs/nfs/nfs3proc.c                                                   |    7 
 fs/nfsd/nfsctl.c                                                    |    2 
 fs/nsfs.c                                                           |   15 
 fs/smb/client/cifsglob.h                                            |   11 
 fs/smb/client/dir.c                                                 |    1 
 fs/smb/client/file.c                                                |   18 
 fs/smb/client/fs_context.c                                          |    2 
 fs/smb/client/smb2ops.c                                             |   14 
 fs/smb/client/smb2pdu.c                                             |    5 
 fs/smb/server/auth.c                                                |   22 -
 fs/smb/server/oplock.c                                              |   35 +
 fs/smb/server/oplock.h                                              |    5 
 fs/smb/server/smb2pdu.c                                             |    8 
 fs/xfs/libxfs/xfs_defer.c                                           |    2 
 fs/xfs/xfs_bmap_item.c                                              |    2 
 fs/xfs/xfs_dquot.c                                                  |    8 
 fs/xfs/xfs_log.c                                                    |    2 
 include/kunit/run-in-irq-context.h                                  |   44 +-
 include/linux/damon.h                                               |   10 
 include/linux/io_uring_types.h                                      |    1 
 include/linux/irqchip/arm-gic-v3.h                                  |    1 
 include/linux/kthread.h                                             |   21 +
 include/linux/liveupdate.h                                          |    9 
 include/linux/migrate.h                                             |   10 
 include/linux/mm.h                                                  |   17 
 include/linux/mmc/host.h                                            |    9 
 include/linux/netdevice.h                                           |   32 +
 include/linux/ns_common.h                                           |    2 
 include/linux/rseq_types.h                                          |    6 
 include/linux/sched.h                                               |    2 
 include/linux/usb.h                                                 |    8 
 include/linux/usb/usbnet.h                                          |    1 
 include/net/ip6_tunnel.h                                            |   14 
 include/net/ip_tunnels.h                                            |    7 
 include/net/page_pool/types.h                                       |    2 
 include/trace/events/kmem.h                                         |    8 
 io_uring/eventfd.c                                                  |   10 
 io_uring/io_uring.c                                                 |   26 +
 io_uring/kbuf.c                                                     |   13 
 io_uring/net.c                                                      |    2 
 io_uring/register.c                                                 |   12 
 io_uring/zcrx.c                                                     |    5 
 kernel/bpf/verifier.c                                               |    1 
 kernel/cgroup/cgroup.c                                              |    7 
 kernel/exit.c                                                       |    6 
 kernel/fork.c                                                       |    5 
 kernel/kprobes.c                                                    |    8 
 kernel/kthread.c                                                    |   41 --
 kernel/liveupdate/luo_file.c                                        |   41 +-
 kernel/nscommon.c                                                   |    6 
 kernel/nstree.c                                                     |   29 -
 kernel/sched/core.c                                                 |   79 +---
 kernel/sched/ext.c                                                  |   85 +++-
 kernel/sched/idle.c                                                 |   11 
 kernel/time/time.c                                                  |    2 
 kernel/trace/bpf_trace.c                                            |    4 
 kernel/trace/trace.c                                                |    6 
 kernel/trace/trace_events.c                                         |   58 ++-
 kernel/trace/trace_functions_graph.c                                |   19 -
 kernel/workqueue.c                                                  |    2 
 lib/bootconfig.c                                                    |    6 
 mm/damon/core.c                                                     |   79 ++--
 mm/damon/lru_sort.c                                                 |    4 
 mm/damon/reclaim.c                                                  |    4 
 mm/damon/stat.c                                                     |    2 
 mm/damon/sysfs.c                                                    |   11 
 mm/damon/tests/vaddr-kunit.h                                        |    2 
 mm/damon/vaddr.c                                                    |   24 -
 mm/filemap.c                                                        |   15 
 mm/huge_memory.c                                                    |   13 
 mm/kfence/core.c                                                    |   29 +
 mm/memcontrol.c                                                     |    2 
 mm/memfd_luo.c                                                      |   56 ++
 mm/memory.c                                                         |    3 
 mm/migrate.c                                                        |    8 
 mm/migrate_device.c                                                 |    2 
 mm/page_alloc.c                                                     |    3 
 mm/slub.c                                                           |   54 +-
 net/batman-adv/bat_v_elp.c                                          |   10 
 net/batman-adv/hard-interface.c                                     |    8 
 net/batman-adv/hard-interface.h                                     |    1 
 net/ceph/auth.c                                                     |    6 
 net/ceph/messenger_v2.c                                             |   31 +
 net/ceph/mon_client.c                                               |    6 
 net/core/dev.c                                                      |   17 
 net/core/dev.h                                                      |   35 -
 net/core/neighbour.c                                                |    3 
 net/core/page_pool_user.c                                           |    4 
 net/ipv4/Kconfig                                                    |    2 
 net/ipv4/ip_tunnel_core.c                                           |   15 
 net/ipv4/nexthop.c                                                  |   14 
 net/ipv4/tcp.c                                                      |    3 
 net/ipv4/tcp_ao.c                                                   |    3 
 net/ipv4/tcp_ipv4.c                                                 |    3 
 net/ipv6/tcp_ipv6.c                                                 |    3 
 net/mac80211/link.c                                                 |    2 
 net/mctp/route.c                                                    |   11 
 net/ncsi/ncsi-aen.c                                                 |    3 
 net/ncsi/ncsi-rsp.c                                                 |   16 
 net/netfilter/nf_tables_api.c                                       |    4 
 net/netfilter/nfnetlink_cthelper.c                                  |    8 
 net/netfilter/nfnetlink_queue.c                                     |    4 
 net/netfilter/nft_chain_filter.c                                    |    2 
 net/netfilter/nft_set_pipapo.c                                      |    3 
 net/netfilter/xt_IDLETIMER.c                                        |    6 
 net/netfilter/xt_dccp.c                                             |    4 
 net/netfilter/xt_tcpudp.c                                           |    6 
 net/rxrpc/af_rxrpc.c                                                |    8 
 net/sched/sch_teql.c                                                |    1 
 net/shaper/shaper.c                                                 |   11 
 net/sunrpc/xprtrdma/verbs.c                                         |    7 
 net/tipc/socket.c                                                   |    2 
 rust/Makefile                                                       |    6 
 rust/kernel/str.rs                                                  |    4 
 sound/core/pcm_native.c                                             |   19 -
 sound/hda/codecs/realtek/alc269.c                                   |   25 +
 sound/soc/amd/acp/acp-mach-common.c                                 |   18 
 sound/soc/amd/acp3x-rt5682-max9836.c                                |    9 
 sound/soc/amd/yc/acp6x-mach.c                                       |   14 
 sound/soc/codecs/cs42l43-jack.c                                     |    1 
 sound/soc/codecs/rt1011.c                                           |    2 
 sound/soc/generic/simple-card-utils.c                               |   12 
 sound/soc/qcom/qdsp6/q6apm-dai.c                                    |    1 
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c                             |    1 
 sound/soc/qcom/qdsp6/q6apm.c                                        |    1 
 sound/soc/soc-core.c                                                |   11 
 sound/usb/endpoint.c                                                |    1 
 sound/usb/format.c                                                  |   70 +++
 sound/usb/mixer_scarlett2.c                                         |    2 
 sound/usb/quirks.c                                                  |    2 
 tools/objtool/check.c                                               |   10 
 tools/objtool/elf.c                                                 |    2 
 tools/objtool/klp-diff.c                                            |    3 
 tools/perf/builtin-ftrace.c                                         |    9 
 tools/perf/util/annotate.c                                          |    5 
 tools/perf/util/disasm.c                                            |    2 
 tools/perf/util/synthetic-events.c                                  |    5 
 tools/testing/selftests/filesystems/nsfs/iterate_mntns.c            |   25 -
 394 files changed, 3523 insertions(+), 1770 deletions(-)

A1RM4X (1):
USB: add QUIRK_NO_BOS for video capture several devices

Abel Vesa (1):
dt-bindings: display: msm: Fix reg ranges and clocks on Glymur

Abhinav Kumar (1):
drm/msm/dpu: Correct the SA8775P intr_underrun/intr_underrun index

Adrian Hunter (7):
i3c: mipi-i3c-hci: Use ETIMEDOUT instead of ETIME for timeout errors
i3c: mipi-i3c-hci: Factor out DMA mapping from queuing path
i3c: mipi-i3c-hci: Consolidate spinlocks
i3c: mipi-i3c-hci: Restart DMA ring correctly after dequeue abort
i3c: mipi-i3c-hci: Add missing TID field to no-op command descriptor
i3c: mipi-i3c-hci: Fix race in DMA ring dequeue
i3c: mipi-i3c-hci: Correct RING_CTRL_ABORT handling in DMA dequeue

Adrian Ng Ho Yin (1):
i3c: dw-i3c-master: Set SIR_REJECT in DAT on device attach and reattach

Akhil P Oommen (2):
drm/msm/a6xx: Fix the bogus protect error on X2-85 drm/msm/a8xx: Fix ubwc config related to swizzling

Al Viro (1):
unshare: fix unshare_fs() handling

Alan Stern (3):
USB: usbcore: Introduce usb_bulk_msg_killable()
USB: usbtmc: Use usb_bulk_msg_killable() with user-specified timeouts
USB: core: Limit the length of unkillable synchronous timeouts

Alexander Gordeev (1):
s390/pfault: Fix virtual vs physical address confusion

Alexander Potapenko (2):
mm/kfence: fix KASAN hardware tag faults during late enablement mm/kfence: disable KFENCE upon KASAN HW tags enablement

Alexandre Courbot (1):
rust: str: make NullTerminatedFormatter public

Alice Ryhl (3):
rust_binder: check ownership before using vma
rust_binder: avoid reading the written value in offsets array
rust_binder: call set_notification_done() without proc lock

Alok Tiwari (3):
i40e: fix src IP mask checks and memcpy argument names in cloud filter
octeontx2-af: devlink: fix NIX RAS reporter recovery condition
octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt status

Alysa Liu (1):
drm/amdgpu: Fix use-after-free race in VM acquire

Andreas Kemnade (1):
iio: imu: inv-mpu9150: fix irq ack preventing irq storms

Andrei-Alexandru Tachici (1):
tracing: Fix enabling multiple events on the kernel command line and bootconfig

Andy Shevchenko (2):
device property: Allow secondary lookup in fwnode_get_next_child_node()
pinctrl: cy8c95x0: Don't miss reading the last bank registers

Antoniu Miclaus (6):
iio: chemical: sps30_serial: fix buffer size in sps30_serial_read_meas()
iio: chemical: sps30_i2c: fix buffer size in sps30_i2c_read_meas()
iio: magnetometer: tlv493d: remove erroneous shift in X-axis data
iio: gyro: mpu3050-core: fix pm_runtime error handling
iio: gyro: mpu3050-i2c: fix pm_runtime error handling
iio: light: bh1780: fix PM runtime leak on error path

Ariel Silver (1):
media: dvb-net: fix OOB access in ULE extension header tables

Artem Lytkin (1):
staging: sm750fb: add missing pci_release_region on error and removal

Arun R Murthy (1):
drm/i915/dp: Read ALPM caps after DPCD init

Ashish Kalra (1):
crypto: ccp - allow callers to use HV-Fixed page API when SEV is disabled

Axel Rasmussen (1):
Revert "ptdesc: remove references to folios from __pagetable_ctor() and pagetable_dtor()"

Azamat Almazbek uulu (1):
ASoC: amd: yc: Add ASUS EXPERTBOOK BM1503CDA to quirk table

Bart Van Assche (1):
btrfs: add missing RCU unlock in error path in try_release_subpage_extent_buffer()

Bartosz Golaszewski (1):

      gpiolib: normalize the return value of gc->get() on behalf of buggy drivers

Bastien Curutchet (Schneider Electric) (1):
net: dsa: microchip: Fix error path in PTP IRQ setup

Ben Dooks (1):
ACPI: OSL: fix __iomem type on return from acpi_os_map_generic_address()

Bharath SM (1):
smb: client: fix in-place encryption corruption in SMB2_write()

Bjorn Andersson (1):
remoteproc: sysmon: Correct subsys_name_len type in QMI request

Breno Leitao (1):
workqueue: Use POOL_BH instead of WQ_BH when checking pool flags

Calvin Owens (1):
tracing: Fix trace_buf_size= cmdline parameter with sizes >= 2G

Carlos Llamas (1):
rust_binder: fix oneway spam detection

Carlos Maiolino (1):
xfs: fix returned valued from xfs_defer_can_append

Carolina Jubran (1):
net/mlx5: Fix peer miss rules host disabled checks

Casey Connolly (1):
ASoC: detect empty DMI strings

Catalin Marinas (2):
arm64: gcs: Honour mprotect(PROT_NONE) on shadow stack mappings
arm64: mm: Add PTE_DIRTY back to PAGE_KERNEL* to fix kexec/hibernation

Charles Keepax (1):
ASoC: cs42l43: Report insert for exotic peripherals

Chen Ni (4):
perf annotate: Fix hashmap__new() error checking
perf ftrace: Fix hashmap__new() error checking
ASoC: amd: acp3x-rt5682-max9836: Add missing error check for clock acquisition
ASoC: amd: acp-mach-common: Add missing error check for clock acquisition

Cheng-Yang Chou (1):
sched_ext: Remove redundant css_put() in scx_cgroup_init()

Chengfeng Ye (1):

      mctp: route: hold key->lock in mctp_flow_prepare_output()

Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss: Fix rx_filter value for PTP support

Chris Spencer (1):
iio: chemical: bme680: Fix measurement wait duration calculation

Christian Brauner (5):
nsfs: tighten permission checks for ns iteration ioctls
kthread: consolidate kthread exit paths to prevent use-after-free
nsfs: tighten permission checks for handle opening
nstree: tighten permission checks for listing
selftests: fix mntns iteration selftests

Christian Loehle (1):
bpf: drop kthread_exit from noreturn_deny

Christoffer Sandberg (1):
usb/core/quirks: Add Huawei ME906S-device to wakeup quirk

Christophe Leroy (CS GROUP) (1):
powerpc/uaccess: Fix inline assembly for clang build on PPC32

Chuck Lever (1):
perf synthetic-events: Fix stale build ID in module MMAP2 records

Corey Minyard (4):
ipmi:si: Don't block module unload if the BMC is messed up ipmi:si: Use a long timeout when the BMC is misbehaving ipmi:si: Handle waiting messages when BMC failure detected ipmi:si: Fix check for a misbehaving BMC

Cosmin Ratiu (1):

      net/mlx5: Fix deadlock between devlink lock and esw->wq

Cristian Ciocaltea (1):
drm/amdgpu: Fix kernel-doc comments for some LUT properties

Darrick J. Wong (2):
iomap: reject delalloc mappings during writeback
xfs: fix undersized l_iclog_roundoff values

Dave Airlie (2):
nouveau/gsp: drop WARN_ON in ACPI probes nouveau/dpcd: return EBUSY for aux xfer if the device is asleep

David Arcari (1):
cpufreq: intel_pstate: Fix NULL pointer dereference in update_cpu_qos_request()

David Dull (1):
netfilter: x_tables: guard option walkers against 1-byte tail reads

David Lechner (1):
drm/sitronix/st7586: fix bad pixel data due to byte swap

Dayu Jiang (1):
usb: xhci: Prevent interrupt storm on host controller error (HCE)

Dillon Varone (1):
drm/amd/display: Fallback to boot snapshot for dispclk

Dragos Tatulea (2):
net/mlx5e: RX, Fix XDP multi-buf frag counting for striding RQ net/mlx5e: RX, Fix XDP multi-buf frag counting for legacy RQ

Edward Adam Davis (1):
fs: init flags_valid before calling vfs_fileattr_get

Eric Badger (1):
xprtrdma: Decrement re_receiving on the early exit paths

Eric Biggers (3):
kunit: irq: Ensure timer doesn't fire too frequently net/tcp-ao: Fix MAC comparison to be constant-time net/tcp-md5: Fix MAC comparison to be constant-time

Eric Dumazet (1):
net: prevent NULL deref in ip[6]tunnel_xmit()

Fan Wu (2):
usb: renesas_usbhs: fix use-after-free in ISR during device removal
net: ethernet: arc: emac: quiesce interrupts before requesting IRQ

Felix Gu (3):
spi: amlogic: spifc-a4: Fix DMA mapping error handling
spi: rockchip-sfc: Fix double-free in remove() callback
mmc: mmci: Fix device_node reference leak in of_get_dml_pipe_index()

Filipe Manana (4):
btrfs: fix transaction abort when snapshotting received subvolumes
btrfs: fix transaction abort on file creation due to name hash collision
btrfs: fix transaction abort on set received ioctl due to item overflow
btrfs: abort transaction on failure to update root in the received subvol ioctl

Florian Westphal (1):
netfilter: nf_tables: always walk all pending catchall elements

Franz Schnyder (2):
drm/bridge: ti-sn65dsi86: Enable HPD polling if IRQ is not used
regulator: pf9453: Respect IRQ trigger settings from firmware

Gabor Juhos (1):
usb: core: don't power off roothub PHYs if phy_set_mode() fails

Gal Pressman (1):
net/mlx5e: Fix DMA FIFO desync on error CQE SQ recovery

Gary Guo (1):

      rust: kbuild: emit dep-info into $(depfile) directly

Geoffrey D. Bennett (1):
ALSA: usb-audio: Improve Focusrite sample rate filtering

Greg Kroah-Hartman (3):
usb: misc: uss720: properly clean up reference in uss720_probe()
staging: rtl8723bs: properly validate the data in rtw_get_ie_ex() Linux 6.19.9

Guenter Roeck (1):
smb/server: Fix another refcount leak in smb2_open()

Haibo Chen (1):
can: dev: keep the max bitrate error at 5%

Haiyue Wang (1):
mctp: i2c: fix skb memory leak in receive path

Hangbin Liu (2):
bonding: do not set usable_slaves for broadcast mode
bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states

Hao Li (1):
memcg: fix slab accounting in refill_obj_stock() trylock path

Harald Freudenberger (1):
s390/zcrypt: Enable AUTOSEL_DOM for CCA serialnr sysfs attribute

Hari Bathini (2):
powerpc64/bpf: fix kfunc call support powerpc64/bpf: fix the address returned by bpf_get_func_ip

Harry Yoo (1):
mm/slab: fix an incorrect check in obj_exts_alloc_size()

Heikki Krogerus (1):
usb: dwc3: pci: add support for the Intel Nova Lake -H

Heiko Carstens (2):
s390/stackleak: Fix __stackleak_poison() inline assembly constraint s390/xor: Fix xor_xc_2() inline assembly constraints

Helge Deller (3):
parisc: Increase initial mapping to 64 MB with KALLSYMS
parisc: Fix initial page table creation for boot
parisc: Check kernel mapping earlier at bootup

Henrique Carvalho (1):
smb: client: fix iface port assignment in parse_server_interfaces

Hristo Venev (1):
ceph: do not skip the first folio of the next object in writeback

Huiwen He (1):
tracing: Fix syscall events activation by ensuring refcount hits zero

Hyunwoo Kim (2):
netfilter: nfnetlink_queue: fix entry leak in bridge verdict error path
netfilter: nfnetlink_cthelper: fix OOB read in nfnl_cthelper_dump_table()

Ilya Dryomov (3):
libceph: reject preamble if control segment is empty
libceph: prevent potential out-of-bounds reads in process_message_header()
libceph: admit message frames only in CEPH_CON_S_OPEN state

J. Neuschäfer (1):
powerpc: 83xx: km83xx: Fix keymile vendor prefix

Jakub Kicinski (1):
page_pool: store detach_time as ktime_t to avoid false-negatives

Jakub Staniszewski (2):
ice: reintroduce retry mechanism for indirect AQ
ice: fix retry for AQ command 0x06EE

Jan Kiszka (1):
scsi: storvsc: Fix scheduling while atomic on PREEMPT_RT

Janusz Krzysztofik (1):
drm/i915: Fix potential overflow of shmem scatterlist length

Jean-Baptiste Maneyrol (4):
iio: imu: inv_icm45600: fix regulator put warning when probe fails
iio: imu: inv_icm45600: fix INT1 drive bit inverted
iio: imu: inv_icm42600: fix odr switch to the same value
iio: imu: inv_icm42600: fix odr switch when turning buffer off

Jedrzej Jagielski (1):
ixgbevf: fix link setup issue

Jenny Guanni Qu (1):
netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop()

Jens Axboe (3):

      io_uring/kbuf: check if target buffer list is still legacy on recycle
      io_uring: ensure ctx->rings is stable for task work flags manipulation
      io_uring/eventfd: use ctx->rings_rcu for flags checking

Jessica Liu (2):
irqchip/riscv-aplic: Do not clear ACPI dependencies on probe failure irqchip/riscv-aplic: Register syscore operations only once

Jian Zhang (1):
net: ncsi: fix skb leak in error paths

Jiasheng Jiang (1):
usb: gadget: f_tcm: Fix NULL pointer dereferences in nexus handling

Jiayuan Chen (1):
bonding: fix type confusion in bond_setup_by_slave()

Jim Mattson (1):
KVM: x86: Introduce KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM

Jiri Olsa (1):
bpf: Fix kprobe_multi cookies access in show_fdinfo callback

Joanne Koong (1):
iomap: don't mark folio uptodate if read IO has bytes pending

Johan Hovold (2):
gpib: lpvo_usb: fix unintended binding of FTDI 8U232AM devices
net: mctp: fix device leak on probe failure

John Keeping (1):
usb: gadget: f_hid: fix SuperSpeed descriptors

Josh Law (3):
lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() lib/bootconfig: check bounds before writing in __xbc_open_brace()

Josh Poimboeuf (3):
objtool/klp: Fix detection of corrupt static branch/call entries
objtool: Fix data alignment in elf_add_data()
objtool: Fix another stack overflow in validate_branch()

Jouni Högander (2):
drm/i915/alpm: ALPM disable fixes drm/i915/psr: Repeat Selective Update area alignment

Junxiao Bi (1):
scsi: core: Fix error handling for scsi_alloc_sdev()

Junzhong Pan (1):
usb: gadget: uvc: fix interval_duration calculation

Kalesh Singh (1):
mm/tracing: rss_stat: ensure curr is false from kthread context

Kamal Dasu (1):
mmc: sdhci-brcmstb: use correct register offset for V1 pin_sel restore

Keith Busch (1):
cxl/acpi: Fix CXL_ACPI and CXL_PMEM Kconfig tristate mismatch

Kevin Hao (1):
net: macb: Shuffle the tx ring before enabling tx

Konrad Dybcio (1):
drm/msm/dpu: Fix LM size on a number of platforms

Krzysztof Kozlowski (1):
dt-bindings: display/msm: qcom,sm8750-mdss: Fix model typo

Kuen-Han Tsai (8):
usb: gadget: f_ncm: Fix atomic context locking issue
usb: legacy: ncm: Fix NPE in gncm_bind
Revert "usb: gadget: f_ncm: Fix atomic context locking issue" Revert "usb: legacy: ncm: Fix NPE in gncm_bind"
Revert "usb: gadget: u_ether: Add auto-cleanup helper for freeing net_device" Revert "usb: gadget: f_ncm: align net_device lifecycle with bind/unbind" Revert "usb: gadget: u_ether: add gether_opts for config caching"
usb: gadget: f_ncm: Fix net_device lifecycle with device_move

Kuniyuki Iwashima (1):
nfsd: Fix cred ref leak in nfsd_nl_listener_set_doit().

Laurent Vivier (1):
qmi_wwan: allow max_mtu above hard_mtu to control rx_urb_size

Liwei Song (1):
firmware: stratix10-rsu: Fix NULL pointer dereference when RSU is disabled

Lizhi Hou (1):
accel/amdxdna: Fix runtime suspend deadlock when there is pending job

Long Li (3):
net: mana: Ring doorbell at 4 CQ wraparounds
xfs: fix integer overflow in bmap intent sort comparator
xfs: ensure dquot item is deleted from AIL only after log shutdown

Luca Ceresoli (2):
drm/bridge: ti-sn65dsi83: fix CHA_DSI_CLK_RANGE rounding drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output

Luka Gejak (1):
staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie

Lukas Schmid (1):
iio: potentiometer: mcp4131: fix double application of wiper shift

Marc Kleine-Budde (1):
can: gs_usb: gs_can_open(): always configure bitrates before starting device

Marc Zyngier (7):
KVM: arm64: Fix protected mode handling of pages larger than 4kB
KVM: arm64: pkvm: Fallback to level-3 mapping on host stage-2 fault
KVM: arm64: vgic: Pick EOIcount deactivations from AP-list tail
KVM: arm64: pkvm: Don't reprobe for ICH_VTR_EL2.TDS on CPU hotplug
usb: cdc-acm: Restore CAP_BRK functionnality to CH343 irqchip/gic-v3-its: Limit number of per-device MSIs to the range the ITS supports
KVM: arm64: Eagerly init vgic dist/redist on vgic creation

Marek Behún (1):
net: dsa: realtek: Fix LED group port bit for non-zero LED group

Mario Limonciello (4):
drm/amd: Disable MES LR compute W/A
drm/amd: Set num IP blocks to 0 if discovery fails drm/amd: Fix NULL pointer dereference in device cleanup drm/amd: Fix a few more NULL pointer dereference in device cleanup

Marios Makassikis (1):
smb: server: fix use-after-free in smb2_open()

Mark Harmstone (1):
btrfs: fix chunk map leak in btrfs_map_block() after btrfs_chunk_map_num_copies()

Masami Hiramatsu (Google) (2):
kprobes: avoid crash when rmmod/insmod after ftrace killed
kprobes: Remove unneeded warnings from __arm_kprobe_ftrace()

Mathias Nyman (1):
xhci: Fix NULL pointer dereference when reading portli debugfs files

Matt Roper (1):

      drm/xe/xe2_hpg: Correct implementation of Wa_16025250150

Matt Vollrath (1):
e1000/e1000e: Fix leak in DMA error cleanup

Max Kellermann (3):
ceph: fix i_nlink underrun during async unlink
ceph: fix memory leaks in ceph_mdsc_build_path()
ceph: add a bunch of missing ceph_path_info initializers

Maximilian Pezzullo (1):

      ata: libata-core: Disable LPM on ST1000DM010-2EP102

Maíra Canal (1):
pmdomain: bcm: bcm2835-power: Fix broken reset status read

Mehul Rao (4):
ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()
tipc: fix divide-by-zero in tipc_sk_filter_connect()
net: nexthop: fix percpu use-after-free in remove_nh_grp_entry
ublk: fix NULL pointer dereference in ublk_ctrl_set_size()

Miaoqian Lin (1):
rxrpc, afs: Fix missing error pointer check after rxrpc_kernel_lookup_peer()

Mieczyslaw Nalewaj (1):
net: dsa: realtek: rtl8365mb: remove ifOutDiscards from rx_packets

Miguel Ojeda (1):
rust: kbuild: allow unused_features

Nam Cao (1):
powerpc/pseries: Correct MSI allocation tracking

Namjae Jeon (2):
ksmbd: fix use-after-free in smb_lazy_parent_lease_break_close()
ksmbd: fix use-after-free by using call_rcu() for oplock_info

Nick Hu (1):
irqchip/riscv-aplic: Preserve APLIC states across suspend/resume

Nicolai Buchwitz (1):
net: bcmgenet: fix broken EEE by converting to phylib-managed state

Nikolay Aleksandrov (1):
drivers: net: ice: fix devlink parameters get without irdma

Nuno Sá (1):
iio: buffer: Fix wait_queue not being removed

Oleksij Rempel (5):
net: usb: lan78xx: fix silent drop of packets with checksum errors
net: usb: lan78xx: fix TX byte statistics for small packets
net: usb: lan78xx: fix WARN in __netif_napi_del_locked on disconnect
net: usb: lan78xx: skip LTM configuration for LAN7850
iio: dac: ds4424: reject -128 RAW value

Oliver Neukum (3):
usb: yurex: fix race in probe
usb: class: cdc-wdm: fix reordering issue in read code path
usb: mdc800: handle signal and read racing

Osama Abdelkader (1):
drm/bridge: samsung-dsim: Fix memory leak in error path

Patrisious Haddad (1):
net/mlx5: Fix crash when moving to switchdev mode

Paul Moses (1):
net-shapers: don't free reply skb after genlmsg_reply()

Paulo Alcantara (1):
smb: client: fix atomic open with O_DIRECT & O_SYNC

Pavan Chebbi (1):
bnxt_en: Fix RSS table size check when changing ethtool channels

Pavel Begunkov (2):
io_uring/zcrx: use READ_ONCE with user shared RQEs io_uring/net: reject SEND_VECTORIZED when unsupported

Pedro Falcato (1):
ata: libata-core: Add BRIDGE_OK quirk for QEMU drives

Peng Fan (2):
regulator: pca9450: Correct interrupt type
regulator: pca9450: Correct probed name for PCA9452

Penghe Geng (1):
mmc: core: Avoid bitfield RMW for claim/retune flags

Pengyu Luo (2):
drm/msm/dsi: fix hdisplay calculation when programming dsi registers drm/msm/dsi: fix pclk rate calculation for bonded dsi

Perry Yuan (1):
drm/amdgpu: ensure no_hw_access is visible before MMIO

Peter Collingbourne (1):
perf disasm: Fix off-by-one bug in outside check

Peter Ujfalusi (1):
ASoC: codecs: rt1011: Use component to get the dapm context in spk_mode_put

Peter Wang (1):
scsi: ufs: core: Fix possible NULL pointer dereference in ufshcd_add_command_trace()

Petr Oros (2):
iavf: fix PTP use-after-free during reset
iavf: fix incorrect reset handling in callbacks

Phil Sutter (1):
netfilter: nf_tables: Fix for duplicate device in netdev hooks

Philip Yang (1):
drm/amdkfd: Unreserve bo if queue update failed

Piotr Jaroszynski (1):
arm64: contpte: fix set_access_flags() no-op check for SMMU/ATS faults

Piotr Mazek (1):
ACPI: PM: Save NVS memory on Lenovo G70-35

Pratyush Yadav (Google) (3):
liveupdate: luo_file: remember retrieve() status
mm: memfd_luo: always make all folios uptodate
mm: memfd_luo: always dirty all folios

Qingye Zhao (1):
cgroup: fix race between task migration and iteration

RD Babiera (1):
usb: typec: altmode/displayport: set displayport signaling rate in configure message

Radu Sabau (1):
iio: imu: adis: Fix NULL pointer dereference in adis_init

Rafael J. Wysocki (1):
sched: idle: Make skipping governor callbacks more consistent

Raju Rangoju (3):
amd-xgbe: fix link status handling in xgbe_rx_adaptation
amd-xgbe: prevent CRC errors during RX adaptation with AN disabled
amd-xgbe: reset PHY settings before starting PHY

Ramanathan Choodamani (1):
wifi: mac80211: set default WMM parameters on all links

Ranjan Kumar (1):
scsi: mpi3mr: Add NULL checks when resetting request and reply queues

Raphael Zimmer (2):
libceph: Fix potential out-of-bounds access in ceph_handle_auth_reply()
libceph: Use u32 for non-negative values in ceph_monmap_decode()

Raul Pazemecxas De Andrade (1):
mm/damon/core: clear walk_control on inactive context in damos_walk()

Ravi Hothi (1):
ASoC: qcom: qdsp6: Fix q6apm remove ordering during ADSP stop and start

Ricardo B. Marlière (1):
net: bonding: Fix nd_tbl NULL dereference when IPv6 is disabled

Richard Fitzgerald (1):
firmware: cs_dsp: Fix fragmentation regression in firmware download

Rob Herring (Arm) (1):
remoteproc: qcom_wcnss: Fix reserved region mapping failure

Roberto Bergantinos Corpas (1):
nfs: return EISDIR on nfs3_proc_create if d_alias is a dir

Sabrina Dubroca (1):

      neighbour: restore protocol != 0 check in pneigh update

Sanman Pradhan (1):
hwmon: (pmbus/q54sj108a2) fix stack overflow in debugfs read

Sascha Bischoff (1):
KVM: arm64: gic: Set vgic_model before initing private IRQs

Sean Christopherson (2):
KVM: SVM: Initialize AVIC VMCB fields if AVIC is enabled with in-kernel APIC
KVM: SVM: Set/clear CR8 write interception when AVIC is (de)activated

Sean Rhodes (1):
ALSA: hda/realtek: Fix speaker pop on Star Labs StarFighter

Sebastian Andrzej Siewior (1):
cgroup: Don't expose dead tasks in cgroup

Sen Wang (1):
ASoC: simple-card-utils: fix graph_util_is_ports0() for DT overlays

SeongJae Park (3):
mm/damon: rename DAMON_MIN_REGION to DAMON_MIN_REGION_SZ mm/damon: rename min_sz_region of damon_ctx to min_region_sz mm/damon/core: disallow non-power of two min_region_sz

SeungJu Cheon (1):
iio: frequency: adf4377: Fix duplicated soft reset mask

Seungjin Bae (1):
usb: gadget: f_mass_storage: Fix potential integer overflow in check_command_size_in_blocks()

Shashank Balaji (1):
x86/apic: Disable x2apic on resume if the kernel expects so

Shawn Lin (2):
mmc: dw_mmc-rockchip: Fix runtime PM support for internal phase support
pmdomain: rockchip: Fix PD_VCODEC for RK3588

Shengming Hu (2):
fgraph: Fix thresh_return clear per-task notrace
fgraph: Fix thresh_return nosleeptime double-adjust

Shiraz Saleem (1):
net/mana: Null service_wq on setup error to prevent double destroy

Shuangpeng Bai (1):

      serial: caif: hold tty->link reference in ldisc_open and ser_release

Shuicheng Lin (2):
drm/xe/sync: Fix user fence leak on alloc failure drm/xe/sync: Cleanup partially initialized sync on parse failure

Shyam Prasad N (1):
cifs: make default value of retrans as zero

Sofia Schneider (1):
ACPI: OSI: Add DMI quirk for Acer Aspire One D255

Sourabh Jain (2):
powerpc/kexec/core: use big-endian types for crash variables powerpc/crash: adjust the elfcorehdr size

Stefan Haberland (2):
s390/dasd: Move quiesce state with pprc swap s390/dasd: Copy detected format information to secondary device

Steven Rostedt (1):
time/jiffies: Mark jiffies_64_to_clock_t() notrace

Sun YangKai (1):

      btrfs: hold space_info->lock when clearing periodic reclaim ready

Sungwoo Kim (2):
nvme-pci: Fix slab-out-of-bounds in nvme_dbbuf_set
nvme-pci: Fix race bug in nvme_poll_irqdisable()

Sunil Khatri (2):
drm/amdgpu: add upper bound check on user inputs in signal ioctl drm/amdgpu: add upper bound check on user inputs in wait ioctl

Sven Eckelmann (1):
batman-adv: Avoid double-rtnl_lock ELP metric worker

Takashi Iwai (3):
ALSA: usb-audio: Avoid implicit feedback mode on DIYINHK USB Audio 2.0
ALSA: usb-audio: Check max frame size for implicit feedback mode, too
ALSA: usb-audio: Check endpoint numbers at parsing Scarlett2 mixer interfaces

Tejun Heo (3):
sched_ext: Disable preemption between scx_claim_exit() and kicking helper work
sched_ext: Fix starvation of scx_enable() under fair-class saturation
sched_ext: Fix enqueue_task_scx() truncation of upper enqueue flags

Thomas Fourier (1):
drm/msm: Fix dma_free_attrs() buffer size

Thomas Gleixner (4):
sched/mmcid: Prevent CID stalls due to concurrent forks sched/mmcid: Handle vfork()/CLONE_VM correctly sched/mmcid: Remove pointless preempt guard sched/mmcid: Avoid full tasklist walks

Thomas Hellström (1):
mm: Fix a hmm_range_fault() livelock / starvation problem

Thorsten Blum (1):
ksmbd: Don't log keys in SMB3 signing and encryption key generation

Tom Ryan (1):
io_uring: fix physical SQE bounds check for SQE_MIXED 128-byte ops

Tomas Henzl (1):
scsi: ses: Fix devices attaching to different hosts

Tvrtko Ursulin (2):
drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl drm/ttm: Fix ttm_pool_beneficial_order() return type

Tzung-Bi Shih (1):
remoteproc: mediatek: Unprepare SCP clock during system suspend

Vasily Gorbik (1):
s390/xor: Fix xor_xc_5() inline assembly

Viktor Malik (1):

      powerpc, perf: Check that current->mm is alive before getting user callchain

Ville Syrjälä (1):
drm/i915/vrr: Configure VRR timings after enabling TRANS_DDI_FUNC_CTL

Vivian Wang (2):
net: spacemit: Fix error handling in emac_alloc_rx_desc_buffers()
net: spacemit: Fix error handling in emac_tx_mem_map()

Vladimir Riabchun (1):
scsi: qla2xxx: Completely fix fcport double free

Vlastimil Babka (1):
slab: distinguish lock and trylock for sheaf_flush_main()

Vyacheslav Vahnenko (1):
USB: ezcap401 needs USB_QUIRK_NO_BOS to function on 10gbs usb speed

Wang Shuaiwei (1):
scsi: ufs: core: Fix SError in ufshcd_rtc_work() during UFS suspend

Wei Fang (2):
net: enetc: fix incorrect fallback PHY address handling
net: enetc: do not skip setting LaBCR[MDIO_PHYAD_PRTAD] for addr 0

Weiming Shi (2):
net/sched: teql: fix NULL pointer dereference in iptunnel_xmit on TEQL slave xmit
net: add xmit recursion limit to tunnel xmit functions

Wenyuan Li (1):

      can: hi311x: hi3110_open(): add check for hi3110_power_enable() return value

Won Jung (1):
scsi: ufs: core: Reset urgent_bkops_lvl to allow runtime PM power mode

Xingui Yang (1):
scsi: hisi_sas: Fix NULL pointer exception during user_scan()

Xu Yang (2):
usb: roles: get usb role switch from parent only for usb-b-connector Revert "tcpm: allow looking for role_sw device in the main node"

Yang Wang (3):
drm/amd/pm: add missing od setting PP_OD_FEATURE_ZERO_FAN_BIT for smu v13 drm/amd/pm: add missing od setting PP_OD_FEATURE_ZERO_FAN_BIT for smu v14 drm/amd/pm: remove invalid gpu_metrics.energy_accumulator on smu v13.0.x

Yasin Lee (2):
iio: proximity: hx9023s: fix assignment order for __counted_by
iio: proximity: hx9023s: Protect against division by zero in set_samp_freq

YiFei Zhu (1):
net: Fix rcu_tasks stall in threaded busypoll

Yuan Tan (1):
netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels

Zhang Heng (1):
ASoC: amd: yc: Add DMI quirk for ASUS EXPERTBOOK PM1503CDA

Zi Yan (1):
mm/huge_memory: fix a folio_split() race condition with folio_try_get()

Zilin Guan (1):
usb: xhci: Fix memory leak in xhci_disable_slot()

Ziyi Guo (1):
usb: image: mdc800: kill download URB on timeout

matteo.cotifava (2):
ASoC: soc-core: drop delayed_work_pending() check before flush
ASoC: soc-core: flush delayed work before removing DAIs and widgets

sguttula (1):
drm/amdgpu/vcn5: Add SMU dpm interface type

wangshuaiwei (1):
scsi: ufs: core: Fix shift out of bounds when MAXQ=32

zhidao su (1):
sched_ext: Use WRITE_ONCE() for the write side of scx_enable helper pointer

Álvaro Fernández Rojas (1):
net: sfp: improve Huawei MA5671a fixup

author maintainer
#1 lore raw
Documentation/devicetree/bindings/display/msm/dp-controller.yaml +20 -1
index ebda78db87a6..02ddfaab5f56 100644
@@ -253,7 +253,6 @@ allOf:
             enum:
               # these platforms support 2 streams MST on some interfaces,
               # others are SST only
-              - qcom,glymur-dp
               - qcom,sc8280xp-dp
               - qcom,x1e80100-dp
     then:
@@ -310,6 +309,26 @@ allOf:
           minItems: 6
           maxItems: 8
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              # these platforms support 2 streams MST on some interfaces,
+              # others are SST only, but all controllers have 4 ports
+              - qcom,glymur-dp
+    then:
+      properties:
+        reg:
+          minItems: 9
+          maxItems: 9
+        clocks:
+          minItems: 5
+          maxItems: 6
+        clocks-names:
+          minItems: 5
+          maxItems: 6
+
 unevaluatedProperties: false
 
 examples:
Documentation/devicetree/bindings/display/msm/qcom,glymur-mdss.yaml +10 -6
index 2329ed96e6cb..64dde43373ac 100644
@@ -176,13 +176,17 @@ examples:
                 };
             };
 
-            displayport-controller@ae90000 {
+            displayport-controller@af54000 {
                 compatible = "qcom,glymur-dp";
-                reg = <0xae90000 0x200>,
-                      <0xae90200 0x200>,
-                      <0xae90400 0x600>,
-                      <0xae91000 0x400>,
-                      <0xae91400 0x400>;
+                reg = <0xaf54000 0x200>,
+                      <0xaf54200 0x200>,
+                      <0xaf55000 0xc00>,
+                      <0xaf56000 0x400>,
+                      <0xaf57000 0x400>,
+                      <0xaf58000 0x400>,
+                      <0xaf59000 0x400>,
+                      <0xaf5a000 0x600>,
+                      <0xaf5b000 0x600>;
 
                 interrupt-parent = <&mdss>;
                 interrupts = <12>;
Documentation/devicetree/bindings/display/msm/qcom,sm8750-mdss.yaml +1 -1
index d55fda9a523e..a38c2261ef1a 100644
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <[email protected]>
 
 description:
-  SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
+  SM8750 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
   DPU display controller, DSI and DP interfaces etc.
 
 $ref: /schemas/display/msm/mdss-common.yaml#
Documentation/virt/kvm/api.rst +8 -0
index f1f1d2e5dc7c..b1008283e11d 100644
@@ -8438,6 +8438,14 @@ KVM_X86_QUIRK_IGNORE_GUEST_PAT      By default, on Intel platforms, KVM ignores
                                     guest software, for example if it does not
                                     expose a bochs graphics device (which is
                                     known to have had a buggy driver).
+
+KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM   By default, KVM relaxes the consistency
+                                      check for GUEST_IA32_DEBUGCTL in vmcs12
+                                      to allow FREEZE_IN_SMM to be set.  When
+                                      this quirk is disabled, KVM requires this
+                                      bit to be cleared.  Note that the vmcs02
+                                      bit is still completely controlled by the
+                                      host, regardless of the quirk setting.
 =================================== ============================================
 
 7.32 KVM_CAP_MAX_VCPU_ID
Makefile +2 -1
index 372d19dae59b..96640a9632ef 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 19
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -473,6 +473,7 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
 export rust_common_flags := --edition=2021 \
 			    -Zbinary_dep_depinfo=y \
 			    -Astable_features \
+			    -Aunused_features \
 			    -Dnon_ascii_idents \
 			    -Dunsafe_op_in_unsafe_fn \
 			    -Wmissing_docs \
arch/arm64/include/asm/kvm_host.h +3 -0
index ac7f970c7883..59f25b85be2b 100644
@@ -760,6 +760,9 @@ struct kvm_host_data {
 	/* Number of debug breakpoints/watchpoints for this CPU (minus 1) */
 	unsigned int debug_brps;
 	unsigned int debug_wrps;
+
+	/* Last vgic_irq part of the AP list recorded in an LR */
+	struct vgic_irq *last_lr_irq;
 };
 
 struct kvm_host_psci_config {
arch/arm64/include/asm/pgtable-prot.h +5 -5
index ea6f5458ae2e..6dae631c7132 100644
@@ -50,11 +50,11 @@
 
 #define _PAGE_DEFAULT		(_PROT_DEFAULT | PTE_ATTRINDX(MT_NORMAL))
 
-#define _PAGE_KERNEL		(PROT_NORMAL)
-#define _PAGE_KERNEL_RO		((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY)
-#define _PAGE_KERNEL_ROX	((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY)
-#define _PAGE_KERNEL_EXEC	(PROT_NORMAL & ~PTE_PXN)
-#define _PAGE_KERNEL_EXEC_CONT	((PROT_NORMAL & ~PTE_PXN) | PTE_CONT)
+#define _PAGE_KERNEL		(PROT_NORMAL | PTE_DIRTY)
+#define _PAGE_KERNEL_RO		((PROT_NORMAL & ~PTE_WRITE) | PTE_RDONLY | PTE_DIRTY)
+#define _PAGE_KERNEL_ROX	((PROT_NORMAL & ~(PTE_WRITE | PTE_PXN)) | PTE_RDONLY | PTE_DIRTY)
+#define _PAGE_KERNEL_EXEC	((PROT_NORMAL & ~PTE_PXN) | PTE_DIRTY)
+#define _PAGE_KERNEL_EXEC_CONT	((PROT_NORMAL & ~PTE_PXN) | PTE_CONT | PTE_DIRTY)
 
 #define _PAGE_SHARED		(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN | PTE_WRITE)
 #define _PAGE_SHARED_EXEC	(_PAGE_DEFAULT | PTE_USER | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_WRITE)
arch/arm64/kernel/cpufeature.c +9 -0
index c840a93b9ef9..f5bbcdf2795c 100644
@@ -2336,6 +2336,15 @@ static bool can_trap_icv_dir_el1(const struct arm64_cpu_capabilities *entry,
 	if (this_cpu_has_cap(ARM64_HAS_GICV5_LEGACY))
 		return true;
 
+	/*
+	 * pKVM prevents late onlining of CPUs. This means that whatever
+	 * state the capability is in after deprivilege cannot be affected
+	 * by a new CPU booting -- this is garanteed to be a CPU we have
+	 * already seen, and the cap is therefore unchanged.
+	 */
+	if (system_capabilities_finalized() && is_protected_kvm_enabled())
+		return cpus_have_final_cap(ARM64_HAS_ICH_HCR_EL2_TDIR);
+
 	if (is_kernel_in_hyp_mode())
 		res.a1 = read_sysreg_s(SYS_ICH_VTR_EL2);
 	else
arch/arm64/kvm/hyp/nvhe/mem_protect.c +1 -1
index 49db32f3ddf7..ece04bb10ab0 100644
@@ -516,7 +516,7 @@ static int host_stage2_adjust_range(u64 addr, struct kvm_mem_range *range)
 		granule = kvm_granule_size(level);
 		cur.start = ALIGN_DOWN(addr, granule);
 		cur.end = cur.start + granule;
-		if (!range_included(&cur, range))
+		if (!range_included(&cur, range) && level < KVM_PGTABLE_LAST_LEVEL)
 			continue;
 		*range = cur;
 		return 0;
arch/arm64/kvm/mmu.c +5 -7
index 2caa97f87890..9f22d60b64db 100644
@@ -1753,14 +1753,12 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
 	}
 
 	/*
-	 * Both the canonical IPA and fault IPA must be hugepage-aligned to
-	 * ensure we find the right PFN and lay down the mapping in the right
-	 * place.
+	 * Both the canonical IPA and fault IPA must be aligned to the
+	 * mapping size to ensure we find the right PFN and lay down the
+	 * mapping in the right place.
 	 */
-	if (vma_pagesize == PMD_SIZE || vma_pagesize == PUD_SIZE) {
-		fault_ipa &= ~(vma_pagesize - 1);
-		ipa &= ~(vma_pagesize - 1);
-	}
+	fault_ipa = ALIGN_DOWN(fault_ipa, vma_pagesize);
+	ipa = ALIGN_DOWN(ipa, vma_pagesize);
 
 	gfn = ipa >> PAGE_SHIFT;
 	mte_allowed = kvm_vma_mte_allowed(vma);
arch/arm64/kvm/vgic/vgic-init.c +17 -17
index dc9f9db31026..6ed01c7faa91 100644
@@ -140,26 +140,9 @@ int kvm_vgic_create(struct kvm *kvm, u32 type)
 		goto out_unlock;
 	}
 
-	kvm_for_each_vcpu(i, vcpu, kvm) {
-		ret = vgic_allocate_private_irqs_locked(vcpu, type);
-		if (ret)
-			break;
-	}
-
-	if (ret) {
-		kvm_for_each_vcpu(i, vcpu, kvm) {
-			struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
-			kfree(vgic_cpu->private_irqs);
-			vgic_cpu->private_irqs = NULL;
-		}
-
-		goto out_unlock;
-	}
-
 	kvm->arch.vgic.in_kernel = true;
 	kvm->arch.vgic.vgic_model = type;
 	kvm->arch.vgic.implementation_rev = KVM_VGIC_IMP_REV_LATEST;
-
 	kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF;
 
 	aa64pfr0 = kvm_read_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1) & ~ID_AA64PFR0_EL1_GIC;
@@ -176,6 +159,23 @@ int kvm_vgic_create(struct kvm *kvm, u32 type)
 	kvm_set_vm_id_reg(kvm, SYS_ID_AA64PFR0_EL1, aa64pfr0);
 	kvm_set_vm_id_reg(kvm, SYS_ID_PFR1_EL1, pfr1);
 
+	kvm_for_each_vcpu(i, vcpu, kvm) {
+		ret = vgic_allocate_private_irqs_locked(vcpu, type);
+		if (ret)
+			break;
+	}
+
+	if (ret) {
+		kvm_for_each_vcpu(i, vcpu, kvm) {
+			struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
+			kfree(vgic_cpu->private_irqs);
+			vgic_cpu->private_irqs = NULL;
+		}
+
+		kvm->arch.vgic.vgic_model = 0;
+		goto out_unlock;
+	}
+
 	if (type == KVM_DEV_TYPE_ARM_VGIC_V3)
 		kvm->arch.vgic.nassgicap = system_supports_direct_sgis();
 
arch/arm64/kvm/vgic/vgic-v2.c +2 -2
index 585491fbda80..cafa3cb32bda 100644
@@ -115,7 +115,7 @@ void vgic_v2_fold_lr_state(struct kvm_vcpu *vcpu)
 	struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
 	struct vgic_v2_cpu_if *cpuif = &vgic_cpu->vgic_v2;
 	u32 eoicount = FIELD_GET(GICH_HCR_EOICOUNT, cpuif->vgic_hcr);
-	struct vgic_irq *irq;
+	struct vgic_irq *irq = *host_data_ptr(last_lr_irq);
 
 	DEBUG_SPINLOCK_BUG_ON(!irqs_disabled());
 
@@ -123,7 +123,7 @@ void vgic_v2_fold_lr_state(struct kvm_vcpu *vcpu)
 		vgic_v2_fold_lr(vcpu, cpuif->vgic_lr[lr]);
 
 	/* See the GICv3 equivalent for the EOIcount handling rationale */
-	list_for_each_entry(irq, &vgic_cpu->ap_list_head, ap_list) {
+	list_for_each_entry_continue(irq, &vgic_cpu->ap_list_head, ap_list) {
 		u32 lr;
 
 		if (!eoicount) {
arch/arm64/kvm/vgic/vgic-v3.c +6 -6
index 1d6dd1b545bd..db2f220c29f7 100644
@@ -148,7 +148,7 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
 	struct vgic_cpu *vgic_cpu = &vcpu->arch.vgic_cpu;
 	struct vgic_v3_cpu_if *cpuif = &vgic_cpu->vgic_v3;
 	u32 eoicount = FIELD_GET(ICH_HCR_EL2_EOIcount, cpuif->vgic_hcr);
-	struct vgic_irq *irq;
+	struct vgic_irq *irq = *host_data_ptr(last_lr_irq);
 
 	DEBUG_SPINLOCK_BUG_ON(!irqs_disabled());
 
@@ -158,12 +158,12 @@ void vgic_v3_fold_lr_state(struct kvm_vcpu *vcpu)
 	/*
 	 * EOIMode=0: use EOIcount to emulate deactivation. We are
 	 * guaranteed to deactivate in reverse order of the activation, so
-	 * just pick one active interrupt after the other in the ap_list,
-	 * and replay the deactivation as if the CPU was doing it. We also
-	 * rely on priority drop to have taken place, and the list to be
-	 * sorted by priority.
+	 * just pick one active interrupt after the other in the tail part
+	 * of the ap_list, past the LRs, and replay the deactivation as if
+	 * the CPU was doing it. We also rely on priority drop to have taken
+	 * place, and the list to be sorted by priority.
 	 */
-	list_for_each_entry(irq, &vgic_cpu->ap_list_head, ap_list) {
+	list_for_each_entry_continue(irq, &vgic_cpu->ap_list_head, ap_list) {
 		u64 lr;
 
 		/*
arch/arm64/kvm/vgic/vgic.c +6 -0
index 430aa98888fd..e22b79cfff96 100644
@@ -814,6 +814,9 @@ static void vgic_prune_ap_list(struct kvm_vcpu *vcpu)
 
 static inline void vgic_fold_lr_state(struct kvm_vcpu *vcpu)
 {
+	if (!*host_data_ptr(last_lr_irq))
+		return;
+
 	if (kvm_vgic_global_state.type == VGIC_V2)
 		vgic_v2_fold_lr_state(vcpu);
 	else
@@ -960,10 +963,13 @@ static void vgic_flush_lr_state(struct kvm_vcpu *vcpu)
 	if (irqs_outside_lrs(&als))
 		vgic_sort_ap_list(vcpu);
 
+	*host_data_ptr(last_lr_irq) = NULL;
+
 	list_for_each_entry(irq, &vgic_cpu->ap_list_head, ap_list) {
 		scoped_guard(raw_spinlock,  &irq->irq_lock) {
 			if (likely(vgic_target_oracle(irq) == vcpu)) {
 				vgic_populate_lr(vcpu, irq, count++);
+				*host_data_ptr(last_lr_irq) = irq;
 			}
 		}
 
arch/arm64/mm/contpte.c +49 -4

68 lines not on this page · raw message

arch/arm64/mm/mmap.c +5 -1
index 75f343009b4b..92b2f5097a96 100644
@@ -91,7 +91,11 @@ pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
 
 	/* Short circuit GCS to avoid bloating the table. */
 	if (system_supports_gcs() && (vm_flags & VM_SHADOW_STACK)) {
-		prot = gcs_page_prot;
+		/* Honour mprotect(PROT_NONE) on shadow stack mappings */
+		if (vm_flags & VM_ACCESS_FLAGS)
+			prot = gcs_page_prot;
+		else
+			prot = pgprot_val(protection_map[VM_NONE]);
 	} else {
 		prot = pgprot_val(protection_map[vm_flags &
 				   (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);
arch/parisc/include/asm/pgtable.h +1 -1
index 2c139a4dbf4b..17afe7a59edf 100644
@@ -85,7 +85,7 @@ extern void __update_cache(pte_t pte);
 	printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, (unsigned long)pgd_val(e))
 
 /* This is the size of the initially mapped kernel memory */
-#if defined(CONFIG_64BIT)
+#if defined(CONFIG_64BIT) || defined(CONFIG_KALLSYMS)
 #define KERNEL_INITIAL_ORDER	26	/* 1<<26 = 64MB */
 #else
 #define KERNEL_INITIAL_ORDER	25	/* 1<<25 = 32MB */
arch/parisc/kernel/head.S +6 -1
index 96e0264ac961..9188c8d87437 100644
@@ -56,6 +56,7 @@ ENTRY(parisc_kernel_start)
 
 	.import __bss_start,data
 	.import __bss_stop,data
+	.import __end,data
 
 	load32		PA(__bss_start),%r3
 	load32		PA(__bss_stop),%r4
@@ -149,7 +150,11 @@ $cpu_ok:
 	 * everything ... it will get remapped correctly later */
 	ldo		0+_PAGE_KERNEL_RWX(%r0),%r3 /* Hardwired 0 phys addr start */
 	load32		(1<<(KERNEL_INITIAL_ORDER-PAGE_SHIFT)),%r11 /* PFN count */
-	load32		PA(pg0),%r1
+	load32		PA(_end),%r1
+	SHRREG		%r1,PAGE_SHIFT,%r1  /* %r1 is PFN count for _end symbol */
+	cmpb,<<,n	%r11,%r1,1f
+	copy		%r1,%r11	/* %r1 PFN count smaller than %r11 */
+1:	load32		PA(pg0),%r1
 
 $pgt_fill_loop:
 	STREGM          %r3,ASM_PTE_ENTRY_SIZE(%r1)
arch/parisc/kernel/setup.c +12 -8
index ace483b6f19a..d3e17a7a8901 100644
@@ -120,14 +120,6 @@ void __init setup_arch(char **cmdline_p)
 #endif
 	printk(KERN_CONT ".\n");
 
-	/*
-	 * Check if initial kernel page mappings are sufficient.
-	 * panic early if not, else we may access kernel functions
-	 * and variables which can't be reached.
-	 */
-	if (__pa((unsigned long) &_end) >= KERNEL_INITIAL_SIZE)
-		panic("KERNEL_INITIAL_ORDER too small!");
-
 #ifdef CONFIG_64BIT
 	if(parisc_narrow_firmware) {
 		printk(KERN_INFO "Kernel is using PDC in 32-bit mode.\n");
@@ -279,6 +271,18 @@ void __init start_parisc(void)
 	int ret, cpunum;
 	struct pdc_coproc_cfg coproc_cfg;
 
+	/*
+	 * Check if initial kernel page mapping is sufficient.
+	 * Print warning if not, because we may access kernel functions and
+	 * variables which can't be reached yet through the initial mappings.
+	 * Note that the panic() and printk() functions are not functional
+	 * yet, so we need to use direct iodc() firmware calls instead.
+	 */
+	const char warn1[] = "CRITICAL: Kernel may crash because "
+			     "KERNEL_INITIAL_ORDER is too small.\n";
+	if (__pa((unsigned long) &_end) >= KERNEL_INITIAL_SIZE)
+		pdc_iodc_print(warn1, sizeof(warn1) - 1);
+
 	/* check QEMU/SeaBIOS marker in PAGE0 */
 	running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0);
 
arch/powerpc/include/asm/uaccess.h +1 -1
index 3e622e647d62..f77c503ecc10 100644
@@ -253,7 +253,7 @@ __gus_failed:								\
 		".section .fixup,\"ax\"\n"		\
 		"4:	li %0,%3\n"			\
 		"	li %1,0\n"			\
-		"	li %1+1,0\n"			\
+		"	li %L1,0\n"			\
 		"	b 3b\n"				\
 		".previous\n"				\
 		EX_TABLE(1b, 4b)			\
arch/powerpc/kexec/core.c +9 -8
index 104c05520bf0..dc44f11be353 100644
@@ -23,6 +23,7 @@
 #include <asm/firmware.h>
 
 #define cpu_to_be_ulong __PASTE(cpu_to_be, BITS_PER_LONG)
+#define __be_word __PASTE(__be, BITS_PER_LONG)
 
 #ifdef CONFIG_CRASH_DUMP
 void machine_crash_shutdown(struct pt_regs *regs)
@@ -146,25 +147,25 @@ int __init overlaps_crashkernel(unsigned long start, unsigned long size)
 }
 
 /* Values we need to export to the second kernel via the device tree. */
-static phys_addr_t crashk_base;
-static phys_addr_t crashk_size;
-static unsigned long long mem_limit;
+static __be_word crashk_base;
+static __be_word crashk_size;
+static __be_word mem_limit;
 
 static struct property crashk_base_prop = {
 	.name = "linux,crashkernel-base",
-	.length = sizeof(phys_addr_t),
+	.length = sizeof(__be_word),
 	.value = &crashk_base
 };
 
 static struct property crashk_size_prop = {
 	.name = "linux,crashkernel-size",
-	.length = sizeof(phys_addr_t),
+	.length = sizeof(__be_word),
 	.value = &crashk_size,
 };
 
 static struct property memory_limit_prop = {
 	.name = "linux,memory-limit",
-	.length = sizeof(unsigned long long),
+	.length = sizeof(__be_word),
 	.value = &mem_limit,
 };
 
@@ -193,11 +194,11 @@ static void __init export_crashk_values(struct device_node *node)
 }
 #endif /* CONFIG_CRASH_RESERVE */
 
-static phys_addr_t kernel_end;
+static __be_word kernel_end;
 
 static struct property kernel_end_prop = {
 	.name = "linux,kernel-end",
-	.length = sizeof(phys_addr_t),
+	.length = sizeof(__be_word),
 	.value = &kernel_end,
 };
 
arch/powerpc/kexec/file_load_64.c +13 -1
index e7ef8b2a2554..5f6d50e4c3d4 100644
@@ -450,6 +450,11 @@ static int load_elfcorehdr_segment(struct kimage *image, struct kexec_buf *kbuf)
 	kbuf->buffer = headers;
 	kbuf->mem = KEXEC_BUF_MEM_UNKNOWN;
 	kbuf->bufsz = headers_sz;
+
+	/*
+	 * Account for extra space required to accommodate additional memory
+	 * ranges in elfcorehdr due to memory hotplug events.
+	 */
 	kbuf->memsz = headers_sz + kdump_extra_elfcorehdr_size(cmem);
 	kbuf->top_down = false;
 
@@ -460,7 +465,14 @@ static int load_elfcorehdr_segment(struct kimage *image, struct kexec_buf *kbuf)
 	}
 
 	image->elf_load_addr = kbuf->mem;
-	image->elf_headers_sz = headers_sz;
+
+	/*
+	 * If CONFIG_CRASH_HOTPLUG is enabled, the elfcorehdr kexec segment
+	 * memsz can be larger than bufsz. Always initialize elf_headers_sz
+	 * with memsz. This ensures the correct size is reserved for elfcorehdr
+	 * memory in the FDT prepared for kdump.
+	 */
+	image->elf_headers_sz = kbuf->memsz;
 	image->elf_headers = headers;
 out:
 	kfree(cmem);
arch/powerpc/net/bpf_jit_comp.c +20 -10
index e199976e410a..0d2d2190af9a 100644
@@ -437,7 +437,7 @@ void bpf_jit_free(struct bpf_prog *fp)
 
 bool bpf_jit_supports_kfunc_call(void)
 {
-	return true;
+	return IS_ENABLED(CONFIG_PPC64);
 }
 
 bool bpf_jit_supports_arena(void)
@@ -722,9 +722,9 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 	 *       retval_off             [ return value      ]
 	 *                              [ reg argN          ]
 	 *                              [ ...               ]
-	 *       regs_off               [ reg_arg1          ] prog ctx context
-	 *       nregs_off              [ args count        ]
-	 *       ip_off                 [ traced function   ]
+	 *       regs_off               [ reg_arg1          ] prog_ctx
+	 *       nregs_off              [ args count        ] ((u64 *)prog_ctx)[-1]
+	 *       ip_off                 [ traced function   ] ((u64 *)prog_ctx)[-2]
 	 *                              [ ...               ]
 	 *       run_ctx_off            [ bpf_tramp_run_ctx ]
 	 *                              [ reg argN          ]
@@ -824,7 +824,7 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 
 	bpf_trampoline_save_args(image, ctx, func_frame_offset, nr_regs, regs_off);
 
-	/* Save our return address */
+	/* Save our LR/return address */
 	EMIT(PPC_RAW_MFLR(_R3));
 	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE))
 		EMIT(PPC_RAW_STL(_R3, _R1, alt_lr_off));
@@ -832,24 +832,34 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *rw_im
 		EMIT(PPC_RAW_STL(_R3, _R1, bpf_frame_size + PPC_LR_STKOFF));
 
 	/*
-	 * Save ip address of the traced function.
-	 * We could recover this from LR, but we will need to address for OOL trampoline,
-	 * and optional GEP area.
+	 * Derive IP address of the traced function.
+	 * In case of CONFIG_PPC_FTRACE_OUT_OF_LINE or BPF program, LR points to the instruction
+	 * after the 'bl' instruction in the OOL stub. Refer to ftrace_init_ool_stub() and
+	 * bpf_arch_text_poke() for OOL stub of kernel functions and bpf programs respectively.
+	 * Relevant stub sequence:
+	 *
+	 *               bl <tramp>
+	 *   LR (R3) =>  mtlr r0
+	 *               b <func_addr+4>
+	 *
+	 * Recover kernel function/bpf program address from the unconditional
+	 * branch instruction at the end of OOL stub.
 	 */
 	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE) || flags & BPF_TRAMP_F_IP_ARG) {
 		EMIT(PPC_RAW_LWZ(_R4, _R3, 4));
 		EMIT(PPC_RAW_SLWI(_R4, _R4, 6));
 		EMIT(PPC_RAW_SRAWI(_R4, _R4, 6));
 		EMIT(PPC_RAW_ADD(_R3, _R3, _R4));
-		EMIT(PPC_RAW_ADDI(_R3, _R3, 4));
 	}
 
 	if (flags & BPF_TRAMP_F_IP_ARG)
 		EMIT(PPC_RAW_STL(_R3, _R1, ip_off));
 
-	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE))
+	if (IS_ENABLED(CONFIG_PPC_FTRACE_OUT_OF_LINE)) {
 		/* Fake our LR for unwind */
+		EMIT(PPC_RAW_ADDI(_R3, _R3, 4));
 		EMIT(PPC_RAW_STL(_R3, _R1, bpf_frame_size + PPC_LR_STKOFF));
+	}
 
 	/* Save function arg count -- see bpf_get_func_arg_cnt() */
 	EMIT(PPC_RAW_LI(_R3, nr_regs));
arch/powerpc/net/bpf_jit_comp64.c +93 -8

119 lines not on this page · raw message

arch/powerpc/perf/callchain.c +5 -0
index 26aa26482c9a..992cc5c98214 100644
@@ -103,6 +103,11 @@ perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *re
 void
 perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
 {
+	perf_callchain_store(entry, perf_arch_instruction_pointer(regs));
+
+	if (!current->mm)
+		return;
+
 	if (!is_32bit_task())
 		perf_callchain_user_64(entry, regs);
 	else
arch/powerpc/perf/callchain_32.c +0 -1
index ddcc2d8aa64a..0de21c5d272c 100644
@@ -142,7 +142,6 @@ void perf_callchain_user_32(struct perf_callchain_entry_ctx *entry,
 	next_ip = perf_arch_instruction_pointer(regs);
 	lr = regs->link;
 	sp = regs->gpr[1];
-	perf_callchain_store(entry, next_ip);
 
 	while (entry->nr < entry->max_stack) {
 		fp = (unsigned int __user *) (unsigned long) sp;
arch/powerpc/perf/callchain_64.c +0 -1
index 115d1c105e8a..30fb61c5f0cb 100644
@@ -77,7 +77,6 @@ void perf_callchain_user_64(struct perf_callchain_entry_ctx *entry,
 	next_ip = perf_arch_instruction_pointer(regs);
 	lr = regs->link;
 	sp = regs->gpr[1];
-	perf_callchain_store(entry, next_ip);
 
 	while (entry->nr < entry->max_stack) {
 		fp = (unsigned long __user *) sp;
arch/powerpc/platforms/83xx/km83xx.c +2 -2
index 2b5d187d9b62..9ef8fb39dd1b 100644
@@ -155,8 +155,8 @@ machine_device_initcall(mpc83xx_km, mpc83xx_declare_of_platform_devices);
 
 /* list of the supported boards */
 static char *board[] __initdata = {
-	"Keymile,KMETER1",
-	"Keymile,kmpbec8321",
+	"keymile,KMETER1",
+	"keymile,kmpbec8321",
 	NULL
 };
 
arch/powerpc/platforms/pseries/msi.c +1 -1
index edc30cda5dbc..56f17296545a 100644
@@ -605,7 +605,7 @@ static int pseries_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
 					      &pseries_msi_irq_chip, pseries_dev);
 	}
 
-	pseries_dev->msi_used++;
+	pseries_dev->msi_used += nr_irqs;
 	return 0;
 
 out:
arch/s390/include/asm/processor.h +1 -1
index 3affba95845b..86076f27c2d9 100644
@@ -158,7 +158,7 @@ static __always_inline void __stackleak_poison(unsigned long erase_low,
 		"	j	4f\n"
 		"3:	mvc	8(1,%[addr]),0(%[addr])\n"
 		"4:"
-		: [addr] "+&a" (erase_low), [count] "+&d" (count), [tmp] "=&a" (tmp)
+		: [addr] "+&a" (erase_low), [count] "+&a" (count), [tmp] "=&a" (tmp)
 		: [poison] "d" (poison)
 		: "memory", "cc"
 		);
arch/s390/lib/xor.c +2 -3
index 1721b73b7803..81c0235c0466 100644
@@ -28,8 +28,8 @@ static void xor_xc_2(unsigned long bytes, unsigned long * __restrict p1,
 		"	j	3f\n"
 		"2:	xc	0(1,%1),0(%2)\n"
 		"3:"
-		: : "d" (bytes), "a" (p1), "a" (p2)
-		: "0", "cc", "memory");
+		: "+d" (bytes), "+a" (p1), "+a" (p2)
+		: : "0", "cc", "memory");
 }
 
 static void xor_xc_3(unsigned long bytes, unsigned long * __restrict p1,
@@ -96,7 +96,6 @@ static void xor_xc_5(unsigned long bytes, unsigned long * __restrict p1,
 		     const unsigned long * __restrict p5)
 {
 	asm volatile(
-		"	larl	1,2f\n"
 		"	aghi	%0,-1\n"
 		"	jm	6f\n"
 		"	srlg	0,%0,8\n"
arch/s390/mm/pfault.c +2 -2
index 2f829448c719..6ecd6b0a22a8 100644
@@ -62,7 +62,7 @@ int __pfault_init(void)
 		"0:	nopr	%%r7\n"
 		EX_TABLE(0b, 0b)
 		: [rc] "+d" (rc)
-		: [refbk] "a" (&pfault_init_refbk), "m" (pfault_init_refbk)
+		: [refbk] "a" (virt_to_phys(&pfault_init_refbk)), "m" (pfault_init_refbk)
 		: "cc");
 	return rc;
 }
@@ -84,7 +84,7 @@ void __pfault_fini(void)
 		"0:	nopr	%%r7\n"
 		EX_TABLE(0b, 0b)
 		:
-		: [refbk] "a" (&pfault_fini_refbk), "m" (pfault_fini_refbk)
+		: [refbk] "a" (virt_to_phys(&pfault_fini_refbk)), "m" (pfault_fini_refbk)
 		: "cc");
 }
 
arch/x86/include/asm/kvm_host.h +2 -1
index c27b3e5f60c2..8b8f7bb5cc82 100644
@@ -2470,7 +2470,8 @@ int memslot_rmap_alloc(struct kvm_memory_slot *slot, unsigned long npages);
 	 KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS |	\
 	 KVM_X86_QUIRK_SLOT_ZAP_ALL |		\
 	 KVM_X86_QUIRK_STUFF_FEATURE_MSRS |	\
-	 KVM_X86_QUIRK_IGNORE_GUEST_PAT)
+	 KVM_X86_QUIRK_IGNORE_GUEST_PAT |	\
+	 KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM)
 
 #define KVM_X86_CONDITIONAL_QUIRKS		\
 	(KVM_X86_QUIRK_CD_NW_CLEARED |		\
arch/x86/include/uapi/asm/kvm.h +1 -0
index 1208932e5cc3..774eb6989ef9 100644
@@ -476,6 +476,7 @@ struct kvm_sync_regs {
 #define KVM_X86_QUIRK_SLOT_ZAP_ALL		(1 << 7)
 #define KVM_X86_QUIRK_STUFF_FEATURE_MSRS	(1 << 8)
 #define KVM_X86_QUIRK_IGNORE_GUEST_PAT		(1 << 9)
+#define KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM (1 << 10)
 
 #define KVM_STATE_NESTED_FORMAT_VMX	0
 #define KVM_STATE_NESTED_FORMAT_SVM	1
arch/x86/kernel/apic/apic.c +6 -0
index d93f87f29d03..961714e6adae 100644
@@ -1894,6 +1894,7 @@ void __init check_x2apic(void)
 
 static inline void try_to_enable_x2apic(int remap_mode) { }
 static inline void __x2apic_enable(void) { }
+static inline void __x2apic_disable(void) { }
 #endif /* !CONFIG_X86_X2APIC */
 
 void __init enable_IR_x2apic(void)
@@ -2456,6 +2457,11 @@ static void lapic_resume(void *data)
 	if (x2apic_mode) {
 		__x2apic_enable();
 	} else {
+		if (x2apic_enabled()) {
+			pr_warn_once("x2apic: re-enabled by firmware during resume. Disabling\n");
+			__x2apic_disable();
+		}
+
 		/*
 		 * Make sure the APICBASE points to the right address
 		 *
arch/x86/kvm/svm/avic.c +6 -3
index 0f6c8596719b..b87398dff73f 100644
@@ -189,12 +189,12 @@ static void avic_activate_vmcb(struct vcpu_svm *svm)
 	struct kvm_vcpu *vcpu = &svm->vcpu;
 
 	vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK);
-
 	vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK;
 	vmcb->control.avic_physical_id |= avic_get_max_physical_id(vcpu);
-
 	vmcb->control.int_ctl |= AVIC_ENABLE_MASK;
 
+	svm_clr_intercept(svm, INTERCEPT_CR8_WRITE);
+
 	/*
 	 * Note: KVM supports hybrid-AVIC mode, where KVM emulates x2APIC MSR
 	 * accesses, while interrupt injection to a running vCPU can be
@@ -226,6 +226,9 @@ static void avic_deactivate_vmcb(struct vcpu_svm *svm)
 	vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK | X2APIC_MODE_MASK);
 	vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK;
 
+	if (!sev_es_guest(svm->vcpu.kvm))
+		svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
+
 	/*
 	 * If running nested and the guest uses its own MSR bitmap, there
 	 * is no need to update L0's msr bitmap
@@ -368,7 +371,7 @@ void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb)
 	vmcb->control.avic_physical_id = __sme_set(__pa(kvm_svm->avic_physical_id_table));
 	vmcb->control.avic_vapic_bar = APIC_DEFAULT_PHYS_BASE;
 
-	if (kvm_apicv_activated(svm->vcpu.kvm))
+	if (kvm_vcpu_apicv_active(&svm->vcpu))
 		avic_activate_vmcb(svm);
 	else
 		avic_deactivate_vmcb(svm);
arch/x86/kvm/svm/svm.c +5 -4
index a58548b35b85..1b07f665e0af 100644
@@ -1032,8 +1032,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool init_event)
 	svm_set_intercept(svm, INTERCEPT_CR0_WRITE);
 	svm_set_intercept(svm, INTERCEPT_CR3_WRITE);
 	svm_set_intercept(svm, INTERCEPT_CR4_WRITE);
-	if (!kvm_vcpu_apicv_active(vcpu))
-		svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
+	svm_set_intercept(svm, INTERCEPT_CR8_WRITE);
 
 	set_dr_intercepts(svm);
 
@@ -1141,7 +1140,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool init_event)
 		svm_clr_intercept(svm, INTERCEPT_PAUSE);
 	}
 
-	if (kvm_vcpu_apicv_active(vcpu))
+	if (enable_apicv && irqchip_in_kernel(vcpu->kvm))
 		avic_init_vmcb(svm, vmcb);
 
 	if (vnmi)
@@ -2603,9 +2602,11 @@ static int dr_interception(struct kvm_vcpu *vcpu)
 
 static int cr8_write_interception(struct kvm_vcpu *vcpu)
 {
+	u8 cr8_prev = kvm_get_cr8(vcpu);
 	int r;
 
-	u8 cr8_prev = kvm_get_cr8(vcpu);
+	WARN_ON_ONCE(kvm_vcpu_apicv_active(vcpu));
+
 	/* instruction emulation calls kvm_set_cr8() */
 	r = cr_interception(vcpu);
 	if (lapic_in_kernel(vcpu))
arch/x86/kvm/vmx/nested.c +18 -4
index 6137e5307d0f..89ef3551e35c 100644
@@ -3292,10 +3292,24 @@ static int nested_vmx_check_guest_state(struct kvm_vcpu *vcpu,
 	if (CC(vmcs12->guest_cr4 & X86_CR4_CET && !(vmcs12->guest_cr0 & X86_CR0_WP)))
 		return -EINVAL;
 
-	if ((vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS) &&
-	    (CC(!kvm_dr7_valid(vmcs12->guest_dr7)) ||
-	     CC(!vmx_is_valid_debugctl(vcpu, vmcs12->guest_ia32_debugctl, false))))
-		return -EINVAL;
+	if (vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS) {
+		u64 debugctl = vmcs12->guest_ia32_debugctl;
+
+		/*
+		 * FREEZE_IN_SMM is not virtualized, but allow L1 to set it in
+		 * vmcs12's DEBUGCTL under a quirk for backwards compatibility.
+		 * Note that the quirk only relaxes the consistency check.  The
+		 * vmcc02 bit is still under the control of the host.  In
+		 * particular, if a host administrator decides to clear the bit,
+		 * then L1 has no say in the matter.
+		 */
+		if (kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_VMCS12_ALLOW_FREEZE_IN_SMM))
+			debugctl &= ~DEBUGCTLMSR_FREEZE_IN_SMM;
+
+		if (CC(!kvm_dr7_valid(vmcs12->guest_dr7)) ||
+		    CC(!vmx_is_valid_debugctl(vcpu, debugctl, false)))
+			return -EINVAL;
+	}
 
 	if ((vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_PAT) &&
 	    CC(!kvm_pat_valid(vmcs12->guest_ia32_pat)))
drivers/accel/amdxdna/aie2_ctx.c +2 -12
index 9fc33b4298f2..9284c35aacfb 100644
@@ -165,7 +165,6 @@ aie2_sched_notify(struct amdxdna_sched_job *job)
 
 	trace_xdna_job(&job->base, job->hwctx->name, "signaled fence", job->seq);
 
-	amdxdna_pm_suspend_put(job->hwctx->client->xdna);
 	job->hwctx->priv->completed++;
 	dma_fence_signal(fence);
 
@@ -290,19 +289,11 @@ aie2_sched_job_run(struct drm_sched_job *sched_job)
 	struct dma_fence *fence;
 	int ret;
 
-	ret = amdxdna_pm_resume_get(hwctx->client->xdna);
-	if (ret)
+	if (!hwctx->priv->mbox_chann)
 		return NULL;
 
-	if (!hwctx->priv->mbox_chann) {
-		amdxdna_pm_suspend_put(hwctx->client->xdna);
-		return NULL;
-	}
-
-	if (!mmget_not_zero(job->mm)) {
-		amdxdna_pm_suspend_put(hwctx->client->xdna);
+	if (!mmget_not_zero(job->mm))
 		return ERR_PTR(-ESRCH);
-	}
 
 	kref_get(&job->refcnt);
 	fence = dma_fence_get(job->fence);
@@ -333,7 +324,6 @@ aie2_sched_job_run(struct drm_sched_job *sched_job)
 
 out:
 	if (ret) {
-		amdxdna_pm_suspend_put(hwctx->client->xdna);
 		dma_fence_put(job->fence);
 		aie2_job_put(job);
 		mmput(job->mm);
drivers/accel/amdxdna/amdxdna_ctx.c +10 -0
index 4e48519b699a..f678ae4c682d 100644
@@ -17,6 +17,7 @@
 #include "amdxdna_ctx.h"
 #include "amdxdna_gem.h"
 #include "amdxdna_pci_drv.h"
+#include "amdxdna_pm.h"
 
 #define MAX_HWCTX_ID		255
 #define MAX_ARG_COUNT		4095
@@ -445,6 +446,7 @@ amdxdna_arg_bos_lookup(struct amdxdna_client *client,
 void amdxdna_sched_job_cleanup(struct amdxdna_sched_job *job)
 {
 	trace_amdxdna_debug_point(job->hwctx->name, job->seq, "job release");
+	amdxdna_pm_suspend_put(job->hwctx->client->xdna);
 	amdxdna_arg_bos_put(job);
 	amdxdna_gem_put_obj(job->cmd_bo);
 	dma_fence_put(job->fence);
@@ -482,6 +484,12 @@ int amdxdna_cmd_submit(struct amdxdna_client *client,
 		goto cmd_put;
 	}
 
+	ret = amdxdna_pm_resume_get(xdna);
+	if (ret) {
+		XDNA_ERR(xdna, "Resume failed, ret %d", ret);
+		goto put_bos;
+	}
+
 	idx = srcu_read_lock(&client->hwctx_srcu);
 	hwctx = xa_load(&client->hwctx_xa, hwctx_hdl);
 	if (!hwctx) {
@@ -522,6 +530,8 @@ int amdxdna_cmd_submit(struct amdxdna_client *client,
 	dma_fence_put(job->fence);
 unlock_srcu:
 	srcu_read_unlock(&client->hwctx_srcu, idx);
+	amdxdna_pm_suspend_put(xdna);
+put_bos:
 	amdxdna_arg_bos_put(job);
 cmd_put:
 	amdxdna_gem_put_obj(job->cmd_bo);
drivers/acpi/osi.c +13 -0
index f2c943b934be..9470f1830ff5 100644
@@ -389,6 +389,19 @@ static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
 		},
 	},
 
+	/*
+	 * The screen backlight turns off during udev device creation
+	 * when returning true for _OSI("Windows 2009")
+	 */
+	{
+	.callback = dmi_disable_osi_win7,
+	.ident = "Acer Aspire One D255",
+	.matches = {
+		     DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+		     DMI_MATCH(DMI_PRODUCT_NAME, "AOD255"),
+		},
+	},
+
 	/*
 	 * The wireless hotkey does not work on those machines when
 	 * returning true for _OSI("Windows 2012")
drivers/acpi/osl.c +1 -1
index 05393a7315fe..2addb40961b6 100644
@@ -1681,7 +1681,7 @@ acpi_status __init acpi_os_initialize(void)
 		 * Use acpi_os_map_generic_address to pre-map the reset
 		 * register if it's in system memory.
 		 */
-		void *rv;
+		void __iomem *rv;
 
 		rv = acpi_os_map_generic_address(&acpi_gbl_FADT.reset_register);
 		pr_debug("%s: Reset register mapping %s\n", __func__,
drivers/acpi/sleep.c +8 -0
index 66ec81e306d4..132a9df98471 100644
@@ -386,6 +386,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "80E1"),
 		},
 	},
+	{
+	.callback = init_nvs_save_s3,
+	.ident = "Lenovo G70-35",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "80Q5"),
+		},
+	},
 	/*
 	 * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using
 	 * the Low Power S0 Idle firmware interface (see
drivers/android/binder/page_range.rs +63 -20

118 lines not on this page · raw message

drivers/android/binder/process.rs +2 -1
index 132055b4790f..0b03ec6418bf 100644
@@ -1289,7 +1289,8 @@ pub(crate) fn clear_death(&self, reader: &mut UserSliceReader, thread: &Thread)
     }
 
     pub(crate) fn dead_binder_done(&self, cookie: u64, thread: &Thread) {
-        if let Some(death) = self.inner.lock().pull_delivered_death(cookie) {
+        let death = self.inner.lock().pull_delivered_death(cookie);
+        if let Some(death) = death {
             death.set_notification_done(thread);
         }
     }
drivers/android/binder/range_alloc/array.rs +33 -2
index 07e1dec2ce63..ada1d1b4302e 100644
@@ -118,7 +118,7 @@ pub(crate) fn reserve_new(
         size: usize,
         is_oneway: bool,
         pid: Pid,
-    ) -> Result<usize> {
+    ) -> Result<(usize, bool)> {
         // Compute new value of free_oneway_space, which is set only on success.
         let new_oneway_space = if is_oneway {
             match self.free_oneway_space.checked_sub(size) {
@@ -146,7 +146,38 @@ pub(crate) fn reserve_new(
             .ok()
             .unwrap();
 
-        Ok(insert_at_offset)
+        // Start detecting spammers once we have less than 20%
+        // of async space left (which is less than 10% of total
+        // buffer size).
+        //
+        // (This will short-circuit, so `low_oneway_space` is
+        // only called when necessary.)
+        let oneway_spam_detected =
+            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
+
+        Ok((insert_at_offset, oneway_spam_detected))
+    }
+
+    /// Find the amount and size of buffers allocated by the current caller.
+    ///
+    /// The idea is that once we cross the threshold, whoever is responsible
+    /// for the low async space is likely to try to send another async transaction,
+    /// and at some point we'll catch them in the act.  This is more efficient
+    /// than keeping a map per pid.
+    fn low_oneway_space(&self, calling_pid: Pid) -> bool {
+        let mut total_alloc_size = 0;
+        let mut num_buffers = 0;
+
+        // Warn if this pid has more than 50 transactions, or more than 50% of
+        // async space (which is 25% of total buffer size). Oneway spam is only
+        // detected when the threshold is exceeded.
+        for range in &self.ranges {
+            if range.state.is_oneway() && range.state.pid() == calling_pid {
+                total_alloc_size += range.size;
+                num_buffers += 1;
+            }
+        }
+        num_buffers > 50 || total_alloc_size > self.size / 4
     }
 
     pub(crate) fn reservation_abort(&mut self, offset: usize) -> Result<FreedRange> {
drivers/android/binder/range_alloc/mod.rs +2 -2
index 2301e2bc1a1f..1f4734468ff1 100644
@@ -188,11 +188,11 @@ pub(crate) fn reserve_new(&mut self, mut args: ReserveNewArgs<T>) -> Result<Rese
                 self.reserve_new(args)
             }
             Impl::Array(array) => {
-                let offset =
+                let (offset, oneway_spam_detected) =
                     array.reserve_new(args.debug_id, args.size, args.is_oneway, args.pid)?;
                 Ok(ReserveNew::Success(ReserveNewSuccess {
                     offset,
-                    oneway_spam_detected: false,
+                    oneway_spam_detected,
                     _empty_array_alloc: args.empty_array_alloc,
                     _new_tree_alloc: args.new_tree_alloc,
                     _tree_alloc: args.tree_alloc,
drivers/android/binder/range_alloc/tree.rs +9 -9
index 838fdd2b47ea..48796fcdb362 100644
@@ -164,15 +164,6 @@ pub(crate) fn reserve_new(
             self.free_oneway_space
         };
 
-        // Start detecting spammers once we have less than 20%
-        // of async space left (which is less than 10% of total
-        // buffer size).
-        //
-        // (This will short-circut, so `low_oneway_space` is
-        // only called when necessary.)
-        let oneway_spam_detected =
-            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
-
         let (found_size, found_off, tree_node, free_tree_node) = match self.find_best_match(size) {
             None => {
                 pr_warn!("ENOSPC from range_alloc.reserve_new - size: {}", size);
@@ -203,6 +194,15 @@ pub(crate) fn reserve_new(
             self.free_tree.insert(free_tree_node);
         }
 
+        // Start detecting spammers once we have less than 20%
+        // of async space left (which is less than 10% of total
+        // buffer size).
+        //
+        // (This will short-circuit, so `low_oneway_space` is
+        // only called when necessary.)
+        let oneway_spam_detected =
+            is_oneway && new_oneway_space < self.size / 10 && self.low_oneway_space(pid);
+
         Ok((found_off, oneway_spam_detected))
     }
 
drivers/android/binder/thread.rs +6 -11
index e0ea33ccfe58..637563d9b813 100644
@@ -1018,12 +1018,9 @@ pub(crate) fn copy_transaction_data(
 
         // Copy offsets if there are any.
         if offsets_size > 0 {
-            {
-                let mut reader =
-                    UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size)
-                        .reader();
-                alloc.copy_into(&mut reader, aligned_data_size, offsets_size)?;
-            }
+            let mut offsets_reader =
+                UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size)
+                    .reader();
 
             let offsets_start = aligned_data_size;
             let offsets_end = aligned_data_size + offsets_size;
@@ -1044,11 +1041,9 @@ pub(crate) fn copy_transaction_data(
                 .step_by(size_of::<u64>())
                 .enumerate()
             {
-                let offset: usize = view
-                    .alloc
-                    .read::<u64>(index_offset)?
-                    .try_into()
-                    .map_err(|_| EINVAL)?;
+                let offset = offsets_reader.read::<u64>()?;
+                view.alloc.write(index_offset, &offset)?;
+                let offset: usize = offset.try_into().map_err(|_| EINVAL)?;
 
                 if offset < end_of_previous_object || !is_aligned(offset, size_of::<u32>()) {
                     pr_warn!("Got transaction with invalid offset.");
drivers/ata/libata-core.c +2 -0
index db74417db75d..7ee4eb94d218 100644
@@ -4186,6 +4186,7 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
 						ATA_QUIRK_FIRMWARE_WARN },
 
 	/* Seagate disks with LPM issues */
+	{ "ST1000DM010-2EP102",	NULL,		ATA_QUIRK_NOLPM },
 	{ "ST2000DM008-2FR102",	NULL,		ATA_QUIRK_NOLPM },
 
 	/* drives which fail FPDMA_AA activation (some may freeze afterwards)
@@ -4228,6 +4229,7 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
 	/* Devices that do not need bridging limits applied */
 	{ "MTRON MSP-SATA*",		NULL,	ATA_QUIRK_BRIDGE_OK },
 	{ "BUFFALO HD-QSU2/R5",		NULL,	ATA_QUIRK_BRIDGE_OK },
+	{ "QEMU HARDDISK",		"2.5+",	ATA_QUIRK_BRIDGE_OK },
 
 	/* Devices which aren't very happy with higher link speeds */
 	{ "WD My Book",			NULL,	ATA_QUIRK_1_5_GBPS },
drivers/base/property.c +13 -14
index 6a63860579dd..8d9a34be57fb 100644
@@ -797,7 +797,18 @@ struct fwnode_handle *
 fwnode_get_next_child_node(const struct fwnode_handle *fwnode,
 			   struct fwnode_handle *child)
 {
-	return fwnode_call_ptr_op(fwnode, get_next_child_node, child);
+	struct fwnode_handle *next;
+
+	if (IS_ERR_OR_NULL(fwnode))
+		return NULL;
+
+	/* Try to find a child in primary fwnode */
+	next = fwnode_call_ptr_op(fwnode, get_next_child_node, child);
+	if (next)
+		return next;
+
+	/* When no more children in primary, continue with secondary */
+	return fwnode_call_ptr_op(fwnode->secondary, get_next_child_node, child);
 }
 EXPORT_SYMBOL_GPL(fwnode_get_next_child_node);
 
@@ -841,19 +852,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_next_available_child_node);
 struct fwnode_handle *device_get_next_child_node(const struct device *dev,
 						 struct fwnode_handle *child)
 {
-	const struct fwnode_handle *fwnode = dev_fwnode(dev);
-	struct fwnode_handle *next;
-
-	if (IS_ERR_OR_NULL(fwnode))
-		return NULL;
-
-	/* Try to find a child in primary fwnode */
-	next = fwnode_get_next_child_node(fwnode, child);
-	if (next)
-		return next;
-
-	/* When no more children in primary, continue with secondary */
-	return fwnode_get_next_child_node(fwnode->secondary, child);
+	return fwnode_get_next_child_node(dev_fwnode(dev), child);
 }
 EXPORT_SYMBOL_GPL(device_get_next_child_node);
 
drivers/block/ublk_drv.c +9 -3
index 06e0790150d1..60053af9242e 100644
@@ -3534,15 +3534,22 @@ static int ublk_ctrl_get_features(const struct ublksrv_ctrl_cmd *header)
 	return 0;
 }
 
-static void ublk_ctrl_set_size(struct ublk_device *ub, const struct ublksrv_ctrl_cmd *header)
+static int ublk_ctrl_set_size(struct ublk_device *ub, const struct ublksrv_ctrl_cmd *header)
 {
 	struct ublk_param_basic *p = &ub->params.basic;
 	u64 new_size = header->data[0];
+	int ret = 0;
 
 	mutex_lock(&ub->mutex);
+	if (!ub->ub_disk) {
+		ret = -ENODEV;
+		goto out;
+	}
 	p->dev_sectors = new_size;
 	set_capacity_and_notify(ub->ub_disk, p->dev_sectors);
+out:
 	mutex_unlock(&ub->mutex);
+	return ret;
 }
 
 struct count_busy {
@@ -3853,8 +3860,7 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
 		ret = ublk_ctrl_end_recovery(ub, &header);
 		break;
 	case UBLK_CMD_UPDATE_SIZE:
-		ublk_ctrl_set_size(ub, &header);
-		ret = 0;
+		ret = ublk_ctrl_set_size(ub, &header);
 		break;
 	case UBLK_CMD_QUIESCE_DEV:
 		ret = ublk_ctrl_quiesce_dev(ub, &header);
drivers/char/ipmi/ipmi_si_intf.c +24 -13
index 5459ffdde8dc..6eda61664aaa 100644
@@ -809,6 +809,12 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
 			 */
 			return_hosed_msg(smi_info, IPMI_BUS_ERR);
 		}
+		if (smi_info->waiting_msg != NULL) {
+			/* Also handle if there was a message waiting. */
+			smi_info->curr_msg = smi_info->waiting_msg;
+			smi_info->waiting_msg = NULL;
+			return_hosed_msg(smi_info, IPMI_BUS_ERR);
+		}
 		smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_HOSED);
 		goto out;
 	}
@@ -918,9 +924,14 @@ static int sender(void *send_info, struct ipmi_smi_msg *msg)
 {
 	struct smi_info   *smi_info = send_info;
 	unsigned long     flags;
+	int rv = IPMI_CC_NO_ERROR;
 
 	debug_timestamp(smi_info, "Enqueue");
 
+	/*
+	 * Check here for run to completion mode.  A check under lock is
+	 * later.
+	 */
 	if (smi_info->si_state == SI_HOSED)
 		return IPMI_BUS_ERR;
 
@@ -934,18 +945,15 @@ static int sender(void *send_info, struct ipmi_smi_msg *msg)
 	}
 
 	spin_lock_irqsave(&smi_info->si_lock, flags);
-	/*
-	 * The following two lines don't need to be under the lock for
-	 * the lock's sake, but they do need SMP memory barriers to
-	 * avoid getting things out of order.  We are already claiming
-	 * the lock, anyway, so just do it under the lock to avoid the
-	 * ordering problem.
-	 */
-	BUG_ON(smi_info->waiting_msg);
-	smi_info->waiting_msg = msg;
-	check_start_timer_thread(smi_info);
+	if (smi_info->si_state == SI_HOSED) {
+		rv = IPMI_BUS_ERR;
+	} else {
+		BUG_ON(smi_info->waiting_msg);
+		smi_info->waiting_msg = msg;
+		check_start_timer_thread(smi_info);
+	}
 	spin_unlock_irqrestore(&smi_info->si_lock, flags);
-	return IPMI_CC_NO_ERROR;
+	return rv;
 }
 
 static void set_run_to_completion(void *send_info, bool i_run_to_completion)
@@ -1113,7 +1121,9 @@ static void smi_timeout(struct timer_list *t)
 		     * SI_USEC_PER_JIFFY);
 	smi_result = smi_event_handler(smi_info, time_diff);
 
-	if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
+	if (smi_info->si_state == SI_HOSED) {
+		timeout = jiffies + SI_TIMEOUT_HOSED;
+	} else if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
 		/* Running with interrupts, only do long timeouts. */
 		timeout = jiffies + SI_TIMEOUT_JIFFIES;
 		smi_inc_stat(smi_info, long_timeouts);
@@ -2226,7 +2236,8 @@ static void wait_msg_processed(struct smi_info *smi_info)
 	unsigned long jiffies_now;
 	long time_diff;
 
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
+	while (smi_info->si_state != SI_HOSED &&
+		    (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL))) {
 		jiffies_now = jiffies;
 		time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
 		     * SI_USEC_PER_JIFFY);
drivers/cpufreq/intel_pstate.c +3 -1
index ec8308629432..31df8d85816a 100644
@@ -1647,8 +1647,8 @@ static ssize_t store_no_turbo(struct kobject *a, struct kobj_attribute *b,
 static void update_cpu_qos_request(int cpu, enum freq_qos_req_type type)
 {
 	struct cpudata *cpudata = all_cpu_data[cpu];
-	unsigned int freq = cpudata->pstate.turbo_freq;
 	struct freq_qos_request *req;
+	unsigned int freq;
 
 	struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
 	if (!policy)
@@ -1661,6 +1661,8 @@ static void update_cpu_qos_request(int cpu, enum freq_qos_req_type type)
 	if (hwp_active)
 		intel_pstate_get_hwp_cap(cpudata);
 
+	freq = cpudata->pstate.turbo_freq;
+
 	if (type == FREQ_QOS_MIN) {
 		freq = DIV_ROUND_UP(freq * global.min_perf_pct, 100);
 	} else {
drivers/cpuidle/cpuidle.c +0 -10
index 65fbb8e807b9..c7876e9e024f 100644
@@ -359,16 +359,6 @@ noinstr int cpuidle_enter_state(struct cpuidle_device *dev,
 int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
 		   bool *stop_tick)
 {
-	/*
-	 * If there is only a single idle state (or none), there is nothing
-	 * meaningful for the governor to choose. Skip the governor and
-	 * always use state 0 with the tick running.
-	 */
-	if (drv->state_count <= 1) {
-		*stop_tick = false;
-		return 0;
-	}
-
 	return cpuidle_curr_governor->select(drv, dev, stop_tick);
 }
 
drivers/crypto/ccp/sev-dev.c +4 -6
index 1cdadddb744e..0d90b5f6a454 100644
@@ -1105,15 +1105,12 @@ struct page *snp_alloc_hv_fixed_pages(unsigned int num_2mb_pages)
 {
 	struct psp_device *psp_master = psp_get_master_device();
 	struct snp_hv_fixed_pages_entry *entry;
-	struct sev_device *sev;
 	unsigned int order;
 	struct page *page;
 
-	if (!psp_master || !psp_master->sev_data)
+	if (!psp_master)
 		return NULL;
 
-	sev = psp_master->sev_data;
-
 	order = get_order(PMD_SIZE * num_2mb_pages);
 
 	/*
@@ -1126,7 +1123,8 @@ struct page *snp_alloc_hv_fixed_pages(unsigned int num_2mb_pages)
 	 * This API uses SNP_INIT_EX to transition allocated pages to HV_Fixed
 	 * page state, fail if SNP is already initialized.
 	 */
-	if (sev->snp_initialized)
+	if (psp_master->sev_data &&
+	    ((struct sev_device *)psp_master->sev_data)->snp_initialized)
 		return NULL;
 
 	/* Re-use freed pages that match the request */
@@ -1162,7 +1160,7 @@ void snp_free_hv_fixed_pages(struct page *page)
 	struct psp_device *psp_master = psp_get_master_device();
 	struct snp_hv_fixed_pages_entry *entry, *nentry;
 
-	if (!psp_master || !psp_master->sev_data)
+	if (!psp_master)
 		return;
 
 	/*
drivers/cxl/Kconfig +1 -0
index 48b7314afdb8..599e126a18eb 100644
@@ -58,6 +58,7 @@ config CXL_ACPI
 	tristate "CXL ACPI: Platform Support"
 	depends on ACPI
 	depends on ACPI_NUMA
+	depends on CXL_PMEM || !CXL_PMEM
 	default CXL_BUS
 	select ACPI_TABLE_LIB
 	select ACPI_HMAT
drivers/firmware/cirrus/cs_dsp.c +18 -6
index abed96fa5853..a34633b87575 100644
@@ -1610,11 +1610,17 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware,
 			   region_name);
 
 		if (reg) {
+			/*
+			 * Although we expect the underlying bus does not require
+			 * physically-contiguous buffers, we pessimistically use
+			 * a temporary buffer instead of trusting that the
+			 * alignment of region->data is ok.
+			 */
 			region_len = le32_to_cpu(region->len);
 			if (region_len > buf_len) {
 				buf_len = round_up(region_len, PAGE_SIZE);
-				kfree(buf);
-				buf = kmalloc(buf_len, GFP_KERNEL | GFP_DMA);
+				vfree(buf);
+				buf = vmalloc(buf_len);
 				if (!buf) {
 					ret = -ENOMEM;
 					goto out_fw;
@@ -1643,7 +1649,7 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware,
 
 	ret = 0;
 out_fw:
-	kfree(buf);
+	vfree(buf);
 
 	if (ret == -EOVERFLOW)
 		cs_dsp_err(dsp, "%s: file content overflows file data\n", file);
@@ -2320,11 +2326,17 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmware
 		}
 
 		if (reg) {
+			/*
+			 * Although we expect the underlying bus does not require
+			 * physically-contiguous buffers, we pessimistically use
+			 * a temporary buffer instead of trusting that the
+			 * alignment of blk->data is ok.
+			 */
 			region_len = le32_to_cpu(blk->len);
 			if (region_len > buf_len) {
 				buf_len = round_up(region_len, PAGE_SIZE);
-				kfree(buf);
-				buf = kmalloc(buf_len, GFP_KERNEL | GFP_DMA);
+				vfree(buf);
+				buf = vmalloc(buf_len);
 				if (!buf) {
 					ret = -ENOMEM;
 					goto out_fw;
@@ -2355,7 +2367,7 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmware
 
 	ret = 0;
 out_fw:
-	kfree(buf);
+	vfree(buf);
 
 	if (ret == -EOVERFLOW)
 		cs_dsp_err(dsp, "%s: file content overflows file data\n", file);
drivers/firmware/stratix10-rsu.c +2 -0
index 41da07c445a6..e1912108a0fe 100644
@@ -768,7 +768,9 @@ static int stratix10_rsu_probe(struct platform_device *pdev)
 				 rsu_async_status_callback);
 	if (ret) {
 		dev_err(dev, "Error, getting RSU status %i\n", ret);
+		stratix10_svc_remove_async_client(priv->chan);
 		stratix10_svc_free_channel(priv->chan);
+		return ret;
 	}
 
 	/* get DCMF version from firmware */
drivers/gpib/lpvo_usb_gpib/lpvo_usb_gpib.c +4 -3
index dd68c4843490..6dc22306be8a 100644
@@ -38,8 +38,10 @@ MODULE_DESCRIPTION("GPIB driver for LPVO usb devices");
 /*
  * Table of devices that work with this driver.
  *
- * Currently, only one device is known to be used in the
- * lpvo_usb_gpib adapter (FTDI 0403:6001).
+ * Currently, only one device is known to be used in the lpvo_usb_gpib
+ * adapter (FTDI 0403:6001) but as this device id is already handled by the
+ * ftdi_sio USB serial driver the LPVO driver must not bind to it by default.
+ *
  * If your adapter uses a different chip, insert a line
  * in the following table with proper <Vendor-id>, <Product-id>.
  *
@@ -50,7 +52,6 @@ MODULE_DESCRIPTION("GPIB driver for LPVO usb devices");
  */
 
 static const struct usb_device_id skel_table[] = {
-	{ USB_DEVICE(0x0403, 0x6001) },
 	{ }					   /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, skel_table);
drivers/gpio/gpiolib.c +6 -2
index 1578cf3a8c74..2e33afbbfda4 100644
@@ -3268,8 +3268,12 @@ static int gpiochip_get(struct gpio_chip *gc, unsigned int offset)
 
 	/* Make sure this is called after checking for gc->get(). */
 	ret = gc->get(gc, offset);
-	if (ret > 1)
-		ret = -EBADE;
+	if (ret > 1) {
+		gpiochip_warn(gc,
+			"invalid return value from gc->get(): %d, consider fixing the driver\n",
+			ret);
+		ret = !!ret;
+	}
 
 	return ret;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +5 -1
index a51e76623bad..51614de32e83 100644
@@ -1428,7 +1428,10 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
 		*process_info = info;
 	}
 
-	vm->process_info = *process_info;
+	if (cmpxchg(&vm->process_info, NULL, *process_info) != NULL) {
+		ret = -EINVAL;
+		goto already_acquired;
+	}
 
 	/* Validate page directory and attach eviction fence */
 	ret = amdgpu_bo_reserve(vm->root.bo, true);
@@ -1468,6 +1471,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
 	amdgpu_bo_unreserve(vm->root.bo);
 reserve_pd_fail:
 	vm->process_info = NULL;
+already_acquired:
 	if (info) {
 		dma_fence_put(&info->eviction_fence->base);
 		*process_info = NULL;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +16 -1
index ad5a3235a75f..051c12ab5968 100644
@@ -2843,8 +2843,10 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
 		break;
 	default:
 		r = amdgpu_discovery_set_ip_blocks(adev);
-		if (r)
+		if (r) {
+			adev->num_ip_blocks = 0;
 			return r;
+		}
 		break;
 	}
 
@@ -3402,6 +3404,8 @@ int amdgpu_device_set_cg_state(struct amdgpu_device *adev,
 		i = state == AMD_CG_STATE_GATE ? j : adev->num_ip_blocks - j - 1;
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		/* skip CG for GFX, SDMA on S0ix */
 		if (adev->in_s0ix &&
 		    (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX ||
@@ -3441,6 +3445,8 @@ int amdgpu_device_set_pg_state(struct amdgpu_device *adev,
 		i = state == AMD_PG_STATE_GATE ? j : adev->num_ip_blocks - j - 1;
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		/* skip PG for GFX, SDMA on S0ix */
 		if (adev->in_s0ix &&
 		    (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GFX ||
@@ -3648,6 +3654,8 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
 	int i, r;
 
 	for (i = 0; i < adev->num_ip_blocks; i++) {
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (!adev->ip_blocks[i].version->funcs->early_fini)
 			continue;
 
@@ -3724,6 +3732,8 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev)
 		if (!adev->ip_blocks[i].status.sw)
 			continue;
 
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
 			amdgpu_ucode_free_bo(adev);
 			amdgpu_free_static_csa(&adev->virt.csa_obj);
@@ -3750,6 +3760,8 @@ static int amdgpu_device_ip_fini(struct amdgpu_device *adev)
 	for (i = adev->num_ip_blocks - 1; i >= 0; i--) {
 		if (!adev->ip_blocks[i].status.late_initialized)
 			continue;
+		if (!adev->ip_blocks[i].version)
+			continue;
 		if (adev->ip_blocks[i].version->funcs->late_fini)
 			adev->ip_blocks[i].version->funcs->late_fini(&adev->ip_blocks[i]);
 		adev->ip_blocks[i].status.late_initialized = false;
@@ -5878,6 +5890,9 @@ int amdgpu_device_mode1_reset(struct amdgpu_device *adev)
 	/* enable mmio access after mode 1 reset completed */
 	adev->no_hw_access = false;
 
+	/* ensure no_hw_access is updated before we access hw */
+	smp_mb();
+
 	amdgpu_device_load_pci_state(adev->pdev);
 	ret = amdgpu_psp_wait_for_bootloader(adev);
 	if (ret)
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +1 -1
index f65edd80cabf..380e4576f88b 100644
@@ -83,7 +83,7 @@ void amdgpu_driver_unload_kms(struct drm_device *dev)
 {
 	struct amdgpu_device *adev = drm_to_adev(dev);
 
-	if (adev == NULL)
+	if (adev == NULL || !adev->num_ip_blocks)
 		return;
 
 	amdgpu_unregister_gpu_instance(adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +8 -8
index dc8d2f52c7d6..e244c12ceb23 100644
@@ -368,15 +368,15 @@ struct amdgpu_mode_info {
 
 	struct drm_property *plane_ctm_property;
 	/**
-	 * @shaper_lut_property: Plane property to set pre-blending shaper LUT
-	 * that converts color content before 3D LUT. If
-	 * plane_shaper_tf_property != Identity TF, AMD color module will
+	 * @plane_shaper_lut_property: Plane property to set pre-blending
+	 * shaper LUT that converts color content before 3D LUT.
+	 * If plane_shaper_tf_property != Identity TF, AMD color module will
 	 * combine the user LUT values with pre-defined TF into the LUT
 	 * parameters to be programmed.
 	 */
 	struct drm_property *plane_shaper_lut_property;
 	/**
-	 * @shaper_lut_size_property: Plane property for the size of
+	 * @plane_shaper_lut_size_property: Plane property for the size of
 	 * pre-blending shaper LUT as supported by the driver (read-only).
 	 */
 	struct drm_property *plane_shaper_lut_size_property;
@@ -400,10 +400,10 @@ struct amdgpu_mode_info {
 	 */
 	struct drm_property *plane_lut3d_property;
 	/**
-	 * @plane_degamma_lut_size_property: Plane property to define the max
-	 * size of 3D LUT as supported by the driver (read-only). The max size
-	 * is the max size of one dimension and, therefore, the max number of
-	 * entries for 3D LUT array is the 3D LUT size cubed;
+	 * @plane_lut3d_size_property: Plane property to define the max size
+	 * of 3D LUT as supported by the driver (read-only). The max size is
+	 * the max size of one dimension and, therefore, the max number of
+	 * entries for 3D LUT array is the 3D LUT size cubed.
 	 */
 	struct drm_property *plane_lut3d_size_property;
 	/**
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c +14 -0
index f61886745e33..35d261db1474 100644
@@ -35,6 +35,8 @@
 static const struct dma_fence_ops amdgpu_userq_fence_ops;
 static struct kmem_cache *amdgpu_userq_fence_slab;
 
+#define AMDGPU_USERQ_MAX_HANDLES	(1U << 16)
+
 int amdgpu_userq_fence_slab_init(void)
 {
 	amdgpu_userq_fence_slab = kmem_cache_create("amdgpu_userq_fence",
@@ -476,6 +478,11 @@ int amdgpu_userq_signal_ioctl(struct drm_device *dev, void *data,
 	if (!amdgpu_userq_enabled(dev))
 		return -ENOTSUPP;
 
+	if (args->num_syncobj_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    args->num_bo_write_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    args->num_bo_read_handles > AMDGPU_USERQ_MAX_HANDLES)
+		return -EINVAL;
+
 	num_syncobj_handles = args->num_syncobj_handles;
 	syncobj_handles = memdup_user(u64_to_user_ptr(args->syncobj_handles),
 				      size_mul(sizeof(u32), num_syncobj_handles));
@@ -661,6 +668,11 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 	if (!amdgpu_userq_enabled(dev))
 		return -ENOTSUPP;
 
+	if (wait_info->num_syncobj_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    wait_info->num_bo_write_handles > AMDGPU_USERQ_MAX_HANDLES ||
+	    wait_info->num_bo_read_handles > AMDGPU_USERQ_MAX_HANDLES)
+		return -EINVAL;
+
 	num_read_bo_handles = wait_info->num_bo_read_handles;
 	bo_handles_read = memdup_user(u64_to_user_ptr(wait_info->bo_read_handles),
 				      size_mul(sizeof(u32), num_read_bo_handles));
@@ -873,6 +885,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 				dma_fence_unwrap_for_each(f, &iter, fence) {
 					if (num_fences >= wait_info->num_fences) {
 						r = -EINVAL;
+						dma_fence_put(fence);
 						goto free_fences;
 					}
 
@@ -897,6 +910,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 
 			if (num_fences >= wait_info->num_fences) {
 				r = -EINVAL;
+				dma_fence_put(fence);
 				goto free_fences;
 			}
 
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +0 -5
index ceddc953785f..896400b1073d 100644
@@ -718,11 +718,6 @@ static int mes_v11_0_set_hw_resources(struct amdgpu_mes *mes)
 	mes_set_hw_res_pkt.enable_reg_active_poll = 1;
 	mes_set_hw_res_pkt.enable_level_process_quantum_check = 1;
 	mes_set_hw_res_pkt.oversubscription_timer = 50;
-	if ((mes->adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x7f)
-		mes_set_hw_res_pkt.enable_lr_compute_wa = 1;
-	else
-		dev_info_once(mes->adev->dev,
-			      "MES FW version must be >= 0x7f to enable LR compute workaround.\n");
 
 	if (amdgpu_mes_log_enable) {
 		mes_set_hw_res_pkt.enable_mes_event_int_logging = 1;
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c +0 -5
index 744e95d3984a..231aba48d8d2 100644
@@ -779,11 +779,6 @@ static int mes_v12_0_set_hw_resources(struct amdgpu_mes *mes, int pipe)
 	mes_set_hw_res_pkt.use_different_vmid_compute = 1;
 	mes_set_hw_res_pkt.enable_reg_active_poll = 1;
 	mes_set_hw_res_pkt.enable_level_process_quantum_check = 1;
-	if ((mes->adev->mes.sched_version & AMDGPU_MES_VERSION_MASK) >= 0x82)
-		mes_set_hw_res_pkt.enable_lr_compute_wa = 1;
-	else
-		dev_info_once(adev->dev,
-			      "MES FW version must be >= 0x82 to enable LR compute workaround.\n");
 
 	/*
 	 * Keep oversubscribe timer for sdma . When we have unmapped doorbell
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c +4 -0
index 0202df5db1e1..6109124f852e 100644
@@ -174,6 +174,10 @@ static int vcn_v5_0_0_sw_init(struct amdgpu_ip_block *ip_block)
 		fw_shared->present_flag_0 = cpu_to_le32(AMDGPU_FW_SHARED_FLAG_0_UNIFIED_QUEUE);
 		fw_shared->sq.is_enabled = 1;
 
+		fw_shared->present_flag_0 |= cpu_to_le32(AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG);
+		fw_shared->smu_dpm_interface.smu_interface_type = (adev->flags & AMD_IS_APU) ?
+			AMDGPU_VCN_SMU_DPM_INTERFACE_APU : AMDGPU_VCN_SMU_DPM_INTERFACE_DGPU;
+
 		if (amdgpu_vcnfw_log)
 			amdgpu_vcn_fwlog_init(&adev->vcn.inst[i]);
 
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -0
index 7fbb5c274ccc..7bf712032c52 100644
@@ -606,6 +606,7 @@ int pqm_update_queue_properties(struct process_queue_manager *pqm,
 					 p->queue_size)) {
 			pr_debug("ring buf 0x%llx size 0x%llx not mapped on GPU\n",
 				 p->queue_address, p->queue_size);
+			amdgpu_bo_unreserve(vm->root.bo);
 			return -EFAULT;
 		}
 
drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c +5 -1
index 1ce61f057020..62887ce5fe20 100644
@@ -71,7 +71,11 @@ void dcn401_initialize_min_clocks(struct dc *dc)
 		 * audio corruption. Read current DISPCLK from DENTIST and request the same
 		 * freq to ensure that the timing is valid and unchanged.
 		 */
-		clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+		if (dc->clk_mgr->funcs->get_dispclk_from_dentist) {
+			clocks->dispclk_khz = dc->clk_mgr->funcs->get_dispclk_from_dentist(dc->clk_mgr);
+		} else {
+			clocks->dispclk_khz = dc->clk_mgr->boot_snapshot.dispclk * 1000;
+		}
 	}
 	clocks->ref_dtbclk_khz = dc->clk_mgr->bw_params->clk_table.entries[0].dtbclk_mhz * 1000;
 	clocks->fclk_p_state_change_support = true;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +9 -2
index eaeff6a9bc50..f4ce4dd02780 100644
@@ -2110,6 +2110,7 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
 		(struct gpu_metrics_v1_3 *)smu_table->gpu_metrics_table;
 	SmuMetricsExternal_t metrics_ext;
 	SmuMetrics_t *metrics = &metrics_ext.SmuMetrics;
+	uint32_t mp1_ver = amdgpu_ip_version(smu->adev, MP1_HWIP, 0);
 	int ret = 0;
 
 	ret = smu_cmn_get_metrics_table(smu,
@@ -2134,7 +2135,12 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
 					       metrics->Vcn1ActivityPercentage);
 
 	gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-	gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+
+	if ((mp1_ver == IP_VERSION(13, 0, 0) && smu->smc_fw_version <= 0x004e1e00) ||
+	    (mp1_ver == IP_VERSION(13, 0, 10) && smu->smc_fw_version <= 0x00500800))
+		gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+	else
+		gpu_metrics->energy_accumulator = UINT_MAX;
 
 	if (metrics->AverageGfxActivity <= SMU_13_0_0_BUSY_THRESHOLD)
 		gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
@@ -2290,7 +2296,8 @@ static int smu_v13_0_0_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v13_0_0_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +4 -2
index a3fc35b9011e..e7b2e823812c 100644
@@ -2120,7 +2120,8 @@ static ssize_t smu_v13_0_7_get_gpu_metrics(struct smu_context *smu,
 					       metrics->Vcn1ActivityPercentage);
 
 	gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-	gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
+	gpu_metrics->energy_accumulator = smu->smc_fw_version <= 0x00521400 ?
+		metrics->EnergyAccumulator : UINT_MAX;
 
 	if (metrics->AverageGfxActivity <= SMU_13_0_7_BUSY_THRESHOLD)
 		gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
@@ -2276,7 +2277,8 @@ static int smu_v13_0_7_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v13_0_7_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c +2 -1
index d7642d388bc3..fa535f43876b 100644
@@ -2413,7 +2413,8 @@ static int smu_v14_0_2_restore_user_od_settings(struct smu_context *smu)
 	user_od_table->OverDriveTable.FeatureCtrlMask = BIT(PP_OD_FEATURE_GFXCLK_BIT) |
 							BIT(PP_OD_FEATURE_UCLK_BIT) |
 							BIT(PP_OD_FEATURE_GFX_VF_CURVE_BIT) |
-							BIT(PP_OD_FEATURE_FAN_CURVE_BIT);
+							BIT(PP_OD_FEATURE_FAN_CURVE_BIT) |
+							BIT(PP_OD_FEATURE_ZERO_FAN_BIT);
 	res = smu_v14_0_2_upload_overdrive_table(smu, user_od_table);
 	user_od_table->OverDriveTable.FeatureCtrlMask = 0;
 	if (res == 0)
drivers/gpu/drm/bridge/samsung-dsim.c +16 -9
index eabc4c32f6ab..ad8c6aa49d48 100644
@@ -1881,6 +1881,14 @@ static int samsung_dsim_register_te_irq(struct samsung_dsim *dsi, struct device
 	return 0;
 }
 
+static void samsung_dsim_unregister_te_irq(struct samsung_dsim *dsi)
+{
+	if (dsi->te_gpio) {
+		free_irq(gpiod_to_irq(dsi->te_gpio), dsi);
+		gpiod_put(dsi->te_gpio);
+	}
+}
+
 static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 				    struct mipi_dsi_device *device)
 {
@@ -1955,13 +1963,13 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 	if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO)) {
 		ret = samsung_dsim_register_te_irq(dsi, &device->dev);
 		if (ret)
-			return ret;
+			goto err_remove_bridge;
 	}
 
 	if (pdata->host_ops && pdata->host_ops->attach) {
 		ret = pdata->host_ops->attach(dsi, device);
 		if (ret)
-			return ret;
+			goto err_unregister_te_irq;
 	}
 
 	dsi->lanes = device->lanes;
@@ -1969,14 +1977,13 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host,
 	dsi->mode_flags = device->mode_flags;
 
 	return 0;
-}
 
-static void samsung_dsim_unregister_te_irq(struct samsung_dsim *dsi)
-{
-	if (dsi->te_gpio) {
-		free_irq(gpiod_to_irq(dsi->te_gpio), dsi);
-		gpiod_put(dsi->te_gpio);
-	}
+err_unregister_te_irq:
+	if (!(device->mode_flags & MIPI_DSI_MODE_VIDEO))
+		samsung_dsim_unregister_te_irq(dsi);
+err_remove_bridge:
+	drm_bridge_remove(&dsi->bridge);
+	return ret;
 }
 
 static int samsung_dsim_host_detach(struct mipi_dsi_host *host,
drivers/gpu/drm/bridge/ti-sn65dsi83.c +7 -6
index fffb47b62f43..43344c2e15b7 100644
@@ -351,9 +351,9 @@ static u8 sn65dsi83_get_dsi_range(struct sn65dsi83 *ctx,
 	 *  DSI_CLK = mode clock * bpp / dsi_data_lanes / 2
 	 * the 2 is there because the bus is DDR.
 	 */
-	return DIV_ROUND_UP(clamp((unsigned int)mode->clock *
-			    mipi_dsi_pixel_format_to_bpp(ctx->dsi->format) /
-			    ctx->dsi->lanes / 2, 40000U, 500000U), 5000U);
+	return clamp((unsigned int)mode->clock *
+		     mipi_dsi_pixel_format_to_bpp(ctx->dsi->format) /
+		     ctx->dsi->lanes / 2, 40000U, 500000U) / 5000U;
 }
 
 static u8 sn65dsi83_get_dsi_div(struct sn65dsi83 *ctx)
@@ -474,6 +474,7 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,
 					struct drm_atomic_state *state)
 {
 	struct sn65dsi83 *ctx = bridge_to_sn65dsi83(bridge);
+	const unsigned int dual_factor = ctx->lvds_dual_link ? 2 : 1;
 	const struct drm_bridge_state *bridge_state;
 	const struct drm_crtc_state *crtc_state;
 	const struct drm_display_mode *mode;
@@ -606,18 +607,18 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,
 	/* 32 + 1 pixel clock to ensure proper operation */
 	le16val = cpu_to_le16(32 + 1);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_SYNC_DELAY_LOW, &le16val, 2);
-	le16val = cpu_to_le16(mode->hsync_end - mode->hsync_start);
+	le16val = cpu_to_le16((mode->hsync_end - mode->hsync_start) / dual_factor);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_HSYNC_PULSE_WIDTH_LOW,
 			  &le16val, 2);
 	le16val = cpu_to_le16(mode->vsync_end - mode->vsync_start);
 	regmap_bulk_write(ctx->regmap, REG_VID_CHA_VSYNC_PULSE_WIDTH_LOW,
 			  &le16val, 2);
 	regmap_write(ctx->regmap, REG_VID_CHA_HORIZONTAL_BACK_PORCH,
-		     mode->htotal - mode->hsync_end);
+		     (mode->htotal - mode->hsync_end) / dual_factor);
 	regmap_write(ctx->regmap, REG_VID_CHA_VERTICAL_BACK_PORCH,
 		     mode->vtotal - mode->vsync_end);
 	regmap_write(ctx->regmap, REG_VID_CHA_HORIZONTAL_FRONT_PORCH,
-		     mode->hsync_start - mode->hdisplay);
+		     (mode->hsync_start - mode->hdisplay) / dual_factor);
 	regmap_write(ctx->regmap, REG_VID_CHA_VERTICAL_FRONT_PORCH,
 		     mode->vsync_start - mode->vdisplay);
 	regmap_write(ctx->regmap, REG_VID_CHA_TEST_PATTERN, 0x00);
drivers/gpu/drm/bridge/ti-sn65dsi86.c +4 -2
index 276d05d25ad8..98d64ad791d0 100644
@@ -1415,6 +1415,7 @@ static int ti_sn_bridge_probe(struct auxiliary_device *adev,
 {
 	struct ti_sn65dsi86 *pdata = dev_get_drvdata(adev->dev.parent);
 	struct device_node *np = pdata->dev->of_node;
+	const struct i2c_client *client = to_i2c_client(pdata->dev);
 	int ret;
 
 	pdata->next_bridge = devm_drm_of_get_bridge(&adev->dev, np, 1, 0);
@@ -1433,8 +1434,9 @@ static int ti_sn_bridge_probe(struct auxiliary_device *adev,
 			   ? DRM_MODE_CONNECTOR_DisplayPort : DRM_MODE_CONNECTOR_eDP;
 
 	if (pdata->bridge.type == DRM_MODE_CONNECTOR_DisplayPort) {
-		pdata->bridge.ops = DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_DETECT |
-				    DRM_BRIDGE_OP_HPD;
+		pdata->bridge.ops = DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_DETECT;
+		if (client->irq)
+			pdata->bridge.ops |= DRM_BRIDGE_OP_HPD;
 		/*
 		 * If comms were already enabled they would have been enabled
 		 * with the wrong value of HPD_DISABLE. Update it now. Comms
drivers/gpu/drm/i915/display/intel_alpm.c +1 -12
index 6372f533f65b..affa3daefd59 100644
@@ -43,12 +43,6 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
 
 void intel_alpm_init(struct intel_dp *intel_dp)
 {
-	u8 dpcd;
-
-	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_RECEIVER_ALPM_CAP, &dpcd) < 0)
-		return;
-
-	intel_dp->alpm_dpcd = dpcd;
 	mutex_init(&intel_dp->alpm.lock);
 }
 
@@ -564,12 +558,7 @@ void intel_alpm_disable(struct intel_dp *intel_dp)
 	mutex_lock(&intel_dp->alpm.lock);
 
 	intel_de_rmw(display, ALPM_CTL(display, cpu_transcoder),
-		     ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE |
-		     ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
-
-	intel_de_rmw(display,
-		     PORT_ALPM_CTL(cpu_transcoder),
-		     PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
+		     ALPM_CTL_ALPM_ENABLE | ALPM_CTL_LOBF_ENABLE, 0);
 
 	drm_dbg_kms(display->drm, "Disabling ALPM\n");
 	mutex_unlock(&intel_dp->alpm.lock);
drivers/gpu/drm/i915/display/intel_display.c +0 -1
index 095a319f8bc9..144f232d61c5 100644
@@ -1614,7 +1614,6 @@ static void hsw_configure_cpu_transcoder(const struct intel_crtc_state *crtc_sta
 	}
 
 	intel_set_transcoder_timings(crtc_state);
-	intel_vrr_set_transcoder_timings(crtc_state);
 
 	if (cpu_transcoder != TRANSCODER_EDP)
 		intel_de_write(display, TRANS_MULT(display, cpu_transcoder),
drivers/gpu/drm/i915/display/intel_dp.c +7 -0
index ee258df439a7..b6ce11267b92 100644
@@ -4547,6 +4547,7 @@ static bool
 intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector)
 {
 	struct intel_display *display = to_intel_display(intel_dp);
+	int ret;
 
 	/* this function is meant to be called only once */
 	drm_WARN_ON(display->drm, intel_dp->dpcd[DP_DPCD_REV] != 0);
@@ -4586,6 +4587,12 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector
 	 */
 	intel_dp_init_source_oui(intel_dp);
 
+	/* Read the ALPM DPCD caps */
+	ret = drm_dp_dpcd_read_byte(&intel_dp->aux, DP_RECEIVER_ALPM_CAP,
+				    &intel_dp->alpm_dpcd);
+	if (ret < 0)
+		return false;
+
 	/*
 	 * This has to be called after intel_dp->edp_dpcd is filled, PSR checks
 	 * for SET_POWER_CAPABLE bit in intel_dp->edp_dpcd[1]
drivers/gpu/drm/i915/display/intel_psr.c +38 -12

81 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_vrr.c +14 -0
index b92c42fde937..81128a27d455 100644
@@ -528,6 +528,18 @@ void intel_vrr_set_transcoder_timings(const struct intel_crtc_state *crtc_state)
 	if (!HAS_VRR(display))
 		return;
 
+	/*
+	 * Bspec says:
+	 * "(note: VRR needs to be programmed after
+	 *  TRANS_DDI_FUNC_CTL and before TRANS_CONF)."
+	 *
+	 * In practice it turns out that ICL can hang if
+	 * TRANS_VRR_VMAX/FLIPLINE are written before
+	 * enabling TRANS_DDI_FUNC_CTL.
+	 */
+	drm_WARN_ON(display->drm,
+		    !(intel_de_read(display, TRANS_DDI_FUNC_CTL(display, cpu_transcoder)) & TRANS_DDI_FUNC_ENABLE));
+
 	/*
 	 * This bit seems to have two meanings depending on the platform:
 	 * TGL: generate VRR "safe window" for DSB vblank waits
@@ -754,6 +766,8 @@ void intel_vrr_transcoder_enable(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_display *display = to_intel_display(crtc_state);
 
+	intel_vrr_set_transcoder_timings(crtc_state);
+
 	if (!intel_vrr_possible(crtc_state))
 		return;
 
drivers/gpu/drm/i915/gem/i915_gem_shmem.c +9 -3
index 26dda55a07ff..6c0c4cf1517a 100644
@@ -151,8 +151,12 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			}
 		} while (1);
 
-		nr_pages = min_t(unsigned long,
-				folio_nr_pages(folio), page_count - i);
+		nr_pages = min_array(((unsigned long[]) {
+					folio_nr_pages(folio),
+					page_count - i,
+					max_segment / PAGE_SIZE,
+				      }), 3);
+
 		if (!i ||
 		    sg->length >= max_segment ||
 		    folio_pfn(folio) != next_pfn) {
@@ -162,7 +166,9 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			st->nents++;
 			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
 		} else {
-			/* XXX: could overflow? */
+			nr_pages = min_t(unsigned long, nr_pages,
+					 (max_segment - sg->length) / PAGE_SIZE);
+
 			sg->length += nr_pages * PAGE_SIZE;
 		}
 		next_pfn = folio_pfn(folio) + nr_pages;
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c +1 -1
index 0407c9bc8c1b..4467b04527cd 100644
@@ -78,7 +78,7 @@ static void a2xx_gpummu_destroy(struct msm_mmu *mmu)
 {
 	struct a2xx_gpummu *gpummu = to_a2xx_gpummu(mmu);
 
-	dma_free_attrs(mmu->dev, TABLE_SIZE, gpummu->table, gpummu->pt_base,
+	dma_free_attrs(mmu->dev, TABLE_SIZE + 32, gpummu->table, gpummu->pt_base,
 		DMA_ATTR_FORCE_CONTIGUOUS);
 
 	kfree(gpummu);
drivers/gpu/drm/msm/adreno/a6xx_catalog.c +1 -2
index 550a53a7865e..38561f26837e 100644
@@ -1759,7 +1759,7 @@ static const u32 x285_protect_regs[] = {
 	A6XX_PROTECT_NORDWR(0x27c06, 0x0000),
 };
 
-DECLARE_ADRENO_PROTECT(x285_protect, 64);
+DECLARE_ADRENO_PROTECT(x285_protect, 15);
 
 static const struct adreno_reglist_pipe a840_nonctxt_regs[] = {
 	{ REG_A8XX_CP_SMMU_STREAM_ID_LPAC, 0x00000101, BIT(PIPE_NONE) },
@@ -1966,5 +1966,4 @@ static inline __always_unused void __build_asserts(void)
 	BUILD_BUG_ON(a660_protect.count > a660_protect.count_max);
 	BUILD_BUG_ON(a690_protect.count > a690_protect.count_max);
 	BUILD_BUG_ON(a730_protect.count > a730_protect.count_max);
-	BUILD_BUG_ON(a840_protect.count > a840_protect.count_max);
 }
drivers/gpu/drm/msm/adreno/a8xx_gpu.c +12 -2
index 30de078e9dfd..3b17ddac0753 100644
@@ -306,11 +306,21 @@ static void a8xx_set_ubwc_config(struct msm_gpu *gpu)
 	hbb = cfg->highest_bank_bit - 13;
 	hbb_hi = hbb >> 2;
 	hbb_lo = hbb & 3;
-	a8xx_write_pipe(gpu, PIPE_BV, REG_A8XX_GRAS_NC_MODE_CNTL, hbb << 5);
-	a8xx_write_pipe(gpu, PIPE_BR, REG_A8XX_GRAS_NC_MODE_CNTL, hbb << 5);
+
+	a8xx_write_pipe(gpu, PIPE_BV, REG_A8XX_GRAS_NC_MODE_CNTL,
+			hbb << 5 |
+			level3_swizzling_dis << 4 |
+			level2_swizzling_dis << 3);
+
+	a8xx_write_pipe(gpu, PIPE_BR, REG_A8XX_GRAS_NC_MODE_CNTL,
+			hbb << 5 |
+			level3_swizzling_dis << 4 |
+			level2_swizzling_dis << 3);
 
 	a8xx_write_pipe(gpu, PIPE_BR, REG_A8XX_RB_CCU_NC_MODE_CNTL,
 			yuvnotcomptofc << 6 |
+			level3_swizzling_dis << 5 |
+			level2_swizzling_dis << 4 |
 			hbb_hi << 3 |
 			hbb_lo << 1);
 
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h +6 -6
index 303d33dc7783..9f2bceca1789 100644
@@ -133,7 +133,7 @@ static const struct dpu_sspp_cfg sc8280xp_sspp[] = {
 static const struct dpu_lm_cfg sc8280xp_lm[] = {
 	{
 		.name = "lm_0", .id = LM_0,
-		.base = 0x44000, .len = 0x320,
+		.base = 0x44000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_1,
@@ -141,7 +141,7 @@ static const struct dpu_lm_cfg sc8280xp_lm[] = {
 		.dspp = DSPP_0,
 	}, {
 		.name = "lm_1", .id = LM_1,
-		.base = 0x45000, .len = 0x320,
+		.base = 0x45000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_0,
@@ -149,7 +149,7 @@ static const struct dpu_lm_cfg sc8280xp_lm[] = {
 		.dspp = DSPP_1,
 	}, {
 		.name = "lm_2", .id = LM_2,
-		.base = 0x46000, .len = 0x320,
+		.base = 0x46000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_3,
@@ -157,7 +157,7 @@ static const struct dpu_lm_cfg sc8280xp_lm[] = {
 		.dspp = DSPP_2,
 	}, {
 		.name = "lm_3", .id = LM_3,
-		.base = 0x47000, .len = 0x320,
+		.base = 0x47000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_2,
@@ -165,14 +165,14 @@ static const struct dpu_lm_cfg sc8280xp_lm[] = {
 		.dspp = DSPP_3,
 	}, {
 		.name = "lm_4", .id = LM_4,
-		.base = 0x48000, .len = 0x320,
+		.base = 0x48000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_5,
 		.pingpong = PINGPONG_4,
 	}, {
 		.name = "lm_5", .id = LM_5,
-		.base = 0x49000, .len = 0x320,
+		.base = 0x49000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_4,
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h +6 -6
index b09a6af4c474..04b22167f93d 100644
@@ -134,7 +134,7 @@ static const struct dpu_sspp_cfg sm8450_sspp[] = {
 static const struct dpu_lm_cfg sm8450_lm[] = {
 	{
 		.name = "lm_0", .id = LM_0,
-		.base = 0x44000, .len = 0x320,
+		.base = 0x44000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_1,
@@ -142,7 +142,7 @@ static const struct dpu_lm_cfg sm8450_lm[] = {
 		.dspp = DSPP_0,
 	}, {
 		.name = "lm_1", .id = LM_1,
-		.base = 0x45000, .len = 0x320,
+		.base = 0x45000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_0,
@@ -150,7 +150,7 @@ static const struct dpu_lm_cfg sm8450_lm[] = {
 		.dspp = DSPP_1,
 	}, {
 		.name = "lm_2", .id = LM_2,
-		.base = 0x46000, .len = 0x320,
+		.base = 0x46000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_3,
@@ -158,7 +158,7 @@ static const struct dpu_lm_cfg sm8450_lm[] = {
 		.dspp = DSPP_2,
 	}, {
 		.name = "lm_3", .id = LM_3,
-		.base = 0x47000, .len = 0x320,
+		.base = 0x47000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_2,
@@ -166,14 +166,14 @@ static const struct dpu_lm_cfg sm8450_lm[] = {
 		.dspp = DSPP_3,
 	}, {
 		.name = "lm_4", .id = LM_4,
-		.base = 0x48000, .len = 0x320,
+		.base = 0x48000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_5,
 		.pingpong = PINGPONG_4,
 	}, {
 		.name = "lm_5", .id = LM_5,
-		.base = 0x49000, .len = 0x320,
+		.base = 0x49000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_4,
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h +2 -2
index 0f7b4a224e4c..42cf3bd5a12a 100644
@@ -366,8 +366,8 @@ static const struct dpu_intf_cfg sa8775p_intf[] = {
 		.type = INTF_NONE,
 		.controller_id = MSM_DP_CONTROLLER_0,	/* pair with intf_0 for DP MST */
 		.prog_fetch_lines_worst_case = 24,
-		.intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
-		.intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+		.intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+		.intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
 	}, {
 		.name = "intf_7", .id = INTF_7,
 		.base = 0x3b000, .len = 0x280,
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h +6 -6
index 465b6460f875..4c7eb55d474c 100644
@@ -131,7 +131,7 @@ static const struct dpu_sspp_cfg sm8550_sspp[] = {
 static const struct dpu_lm_cfg sm8550_lm[] = {
 	{
 		.name = "lm_0", .id = LM_0,
-		.base = 0x44000, .len = 0x320,
+		.base = 0x44000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_1,
@@ -139,7 +139,7 @@ static const struct dpu_lm_cfg sm8550_lm[] = {
 		.dspp = DSPP_0,
 	}, {
 		.name = "lm_1", .id = LM_1,
-		.base = 0x45000, .len = 0x320,
+		.base = 0x45000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_0,
@@ -147,7 +147,7 @@ static const struct dpu_lm_cfg sm8550_lm[] = {
 		.dspp = DSPP_1,
 	}, {
 		.name = "lm_2", .id = LM_2,
-		.base = 0x46000, .len = 0x320,
+		.base = 0x46000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_3,
@@ -155,7 +155,7 @@ static const struct dpu_lm_cfg sm8550_lm[] = {
 		.dspp = DSPP_2,
 	}, {
 		.name = "lm_3", .id = LM_3,
-		.base = 0x47000, .len = 0x320,
+		.base = 0x47000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_2,
@@ -163,14 +163,14 @@ static const struct dpu_lm_cfg sm8550_lm[] = {
 		.dspp = DSPP_3,
 	}, {
 		.name = "lm_4", .id = LM_4,
-		.base = 0x48000, .len = 0x320,
+		.base = 0x48000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_5,
 		.pingpong = PINGPONG_4,
 	}, {
 		.name = "lm_5", .id = LM_5,
-		.base = 0x49000, .len = 0x320,
+		.base = 0x49000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_4,
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_1_sar2130p.h +6 -6
index 6caa7d40f368..dec83ea8167d 100644
@@ -131,7 +131,7 @@ static const struct dpu_sspp_cfg sar2130p_sspp[] = {
 static const struct dpu_lm_cfg sar2130p_lm[] = {
 	{
 		.name = "lm_0", .id = LM_0,
-		.base = 0x44000, .len = 0x320,
+		.base = 0x44000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_1,
@@ -139,7 +139,7 @@ static const struct dpu_lm_cfg sar2130p_lm[] = {
 		.dspp = DSPP_0,
 	}, {
 		.name = "lm_1", .id = LM_1,
-		.base = 0x45000, .len = 0x320,
+		.base = 0x45000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_0,
@@ -147,7 +147,7 @@ static const struct dpu_lm_cfg sar2130p_lm[] = {
 		.dspp = DSPP_1,
 	}, {
 		.name = "lm_2", .id = LM_2,
-		.base = 0x46000, .len = 0x320,
+		.base = 0x46000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_3,
@@ -155,7 +155,7 @@ static const struct dpu_lm_cfg sar2130p_lm[] = {
 		.dspp = DSPP_2,
 	}, {
 		.name = "lm_3", .id = LM_3,
-		.base = 0x47000, .len = 0x320,
+		.base = 0x47000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_2,
@@ -163,14 +163,14 @@ static const struct dpu_lm_cfg sar2130p_lm[] = {
 		.dspp = DSPP_3,
 	}, {
 		.name = "lm_4", .id = LM_4,
-		.base = 0x48000, .len = 0x320,
+		.base = 0x48000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_5,
 		.pingpong = PINGPONG_4,
 	}, {
 		.name = "lm_5", .id = LM_5,
-		.base = 0x49000, .len = 0x320,
+		.base = 0x49000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_4,
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h +6 -6
index 7243eebb85f3..52ff4baa668a 100644
@@ -130,7 +130,7 @@ static const struct dpu_sspp_cfg x1e80100_sspp[] = {
 static const struct dpu_lm_cfg x1e80100_lm[] = {
 	{
 		.name = "lm_0", .id = LM_0,
-		.base = 0x44000, .len = 0x320,
+		.base = 0x44000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_1,
@@ -138,7 +138,7 @@ static const struct dpu_lm_cfg x1e80100_lm[] = {
 		.dspp = DSPP_0,
 	}, {
 		.name = "lm_1", .id = LM_1,
-		.base = 0x45000, .len = 0x320,
+		.base = 0x45000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_0,
@@ -146,7 +146,7 @@ static const struct dpu_lm_cfg x1e80100_lm[] = {
 		.dspp = DSPP_1,
 	}, {
 		.name = "lm_2", .id = LM_2,
-		.base = 0x46000, .len = 0x320,
+		.base = 0x46000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_3,
@@ -154,7 +154,7 @@ static const struct dpu_lm_cfg x1e80100_lm[] = {
 		.dspp = DSPP_2,
 	}, {
 		.name = "lm_3", .id = LM_3,
-		.base = 0x47000, .len = 0x320,
+		.base = 0x47000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_2,
@@ -162,14 +162,14 @@ static const struct dpu_lm_cfg x1e80100_lm[] = {
 		.dspp = DSPP_3,
 	}, {
 		.name = "lm_4", .id = LM_4,
-		.base = 0x48000, .len = 0x320,
+		.base = 0x48000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_5,
 		.pingpong = PINGPONG_4,
 	}, {
 		.name = "lm_5", .id = LM_5,
-		.base = 0x49000, .len = 0x320,
+		.base = 0x49000, .len = 0x400,
 		.features = MIXER_MSM8998_MASK,
 		.sblk = &sdm845_lm_sblk,
 		.lm_pair = LM_4,
drivers/gpu/drm/msm/dsi/dsi_host.c +31 -12

77 lines not on this page · raw message

drivers/gpu/drm/nouveau/nouveau_connector.c +3 -0
index 63621b1510f6..902e0e93e968 100644
@@ -1230,6 +1230,9 @@ nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)
 	u8 size = msg->size;
 	int ret;
 
+	if (pm_runtime_suspended(nv_connector->base.dev->dev))
+		return -EBUSY;
+
 	nv_encoder = find_encoder(&nv_connector->base, DCB_OUTPUT_DP);
 	if (!nv_encoder)
 		return -ENODEV;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c +6 -6
index 7fb13434c051..a575a8dbf727 100644
@@ -737,8 +737,8 @@ r535_gsp_acpi_caps(acpi_handle handle, CAPS_METHOD_DATA *caps)
 	if (!obj)
 		goto done;
 
-	if (WARN_ON(obj->type != ACPI_TYPE_BUFFER) ||
-	    WARN_ON(obj->buffer.length != 4))
+	if (obj->type != ACPI_TYPE_BUFFER ||
+	    obj->buffer.length != 4)
 		goto done;
 
 	caps->status = 0;
@@ -773,8 +773,8 @@ r535_gsp_acpi_jt(acpi_handle handle, JT_METHOD_DATA *jt)
 	if (!obj)
 		goto done;
 
-	if (WARN_ON(obj->type != ACPI_TYPE_BUFFER) ||
-	    WARN_ON(obj->buffer.length != 4))
+	if (obj->type != ACPI_TYPE_BUFFER ||
+	    obj->buffer.length != 4)
 		goto done;
 
 	jt->status = 0;
@@ -861,8 +861,8 @@ r535_gsp_acpi_dod(acpi_handle handle, DOD_METHOD_DATA *dod)
 
 	_DOD = output.pointer;
 
-	if (WARN_ON(_DOD->type != ACPI_TYPE_PACKAGE) ||
-	    WARN_ON(_DOD->package.count > ARRAY_SIZE(dod->acpiIdList)))
+	if (_DOD->type != ACPI_TYPE_PACKAGE ||
+	    _DOD->package.count > ARRAY_SIZE(dod->acpiIdList))
 		return;
 
 	for (int i = 0; i < _DOD->package.count; i++) {
drivers/gpu/drm/sitronix/st7586.c +6 -9
index b57ebf37a664..16b6b4e368af 100644
@@ -347,6 +347,12 @@ static int st7586_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
+	/*
+	 * Override value set by mipi_dbi_spi_init(). This driver is a bit
+	 * non-standard, so best to set it explicitly here.
+	 */
+	dbi->write_memory_bpw = 8;
+
 	/* Cannot read from this controller via SPI */
 	dbi->read_commands = NULL;
 
@@ -356,15 +362,6 @@ static int st7586_probe(struct spi_device *spi)
 	if (ret)
 		return ret;
 
-	/*
-	 * we are using 8-bit data, so we are not actually swapping anything,
-	 * but setting mipi->swap_bytes makes mipi_dbi_typec3_command() do the
-	 * right thing and not use 16-bit transfers (which results in swapped
-	 * bytes on little-endian systems and causes out of order data to be
-	 * sent to the display).
-	 */
-	dbi->swap_bytes = true;
-
 	drm_mode_config_reset(drm);
 
 	ret = drm_dev_register(drm, 0);
drivers/gpu/drm/ttm/ttm_pool_internal.h +1 -1
index 82c4b7e56a99..24c179fd69d1 100644
@@ -17,7 +17,7 @@ static inline bool ttm_pool_uses_dma32(struct ttm_pool *pool)
 	return pool->alloc_flags & TTM_ALLOCATION_POOL_USE_DMA32;
 }
 
-static inline bool ttm_pool_beneficial_order(struct ttm_pool *pool)
+static inline unsigned int ttm_pool_beneficial_order(struct ttm_pool *pool)
 {
 	return pool->alloc_flags & 0xff;
 }
drivers/gpu/drm/xe/xe_sync.c +21 -9
index ff74528ca0c6..2b1f92ef7188 100644
@@ -146,8 +146,10 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 
 		if (!signal) {
 			sync->fence = drm_syncobj_fence_get(sync->syncobj);
-			if (XE_IOCTL_DBG(xe, !sync->fence))
-				return -EINVAL;
+			if (XE_IOCTL_DBG(xe, !sync->fence)) {
+				err = -EINVAL;
+				goto free_sync;
+			}
 		}
 		break;
 
@@ -167,17 +169,21 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 
 		if (signal) {
 			sync->chain_fence = dma_fence_chain_alloc();
-			if (!sync->chain_fence)
-				return -ENOMEM;
+			if (!sync->chain_fence) {
+				err = -ENOMEM;
+				goto free_sync;
+			}
 		} else {
 			sync->fence = drm_syncobj_fence_get(sync->syncobj);
-			if (XE_IOCTL_DBG(xe, !sync->fence))
-				return -EINVAL;
+			if (XE_IOCTL_DBG(xe, !sync->fence)) {
+				err = -EINVAL;
+				goto free_sync;
+			}
 
 			err = dma_fence_chain_find_seqno(&sync->fence,
 							 sync_in.timeline_value);
 			if (err)
-				return err;
+				goto free_sync;
 		}
 		break;
 
@@ -200,8 +206,10 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 			if (XE_IOCTL_DBG(xe, IS_ERR(sync->ufence)))
 				return PTR_ERR(sync->ufence);
 			sync->ufence_chain_fence = dma_fence_chain_alloc();
-			if (!sync->ufence_chain_fence)
-				return -ENOMEM;
+			if (!sync->ufence_chain_fence) {
+				err = -ENOMEM;
+				goto free_sync;
+			}
 			sync->ufence_syncobj = ufence_syncobj;
 		}
 
@@ -216,6 +224,10 @@ int xe_sync_entry_parse(struct xe_device *xe, struct xe_file *xef,
 	sync->timeline_value = sync_in.timeline_value;
 
 	return 0;
+
+free_sync:
+	xe_sync_entry_cleanup(sync);
+	return err;
 }
 ALLOW_ERROR_INJECTION(xe_sync_entry_parse, ERRNO);
 
drivers/gpu/drm/xe/xe_wa.c +7 -6
index 68238e73015b..4039a6428e6c 100644
@@ -255,12 +255,13 @@ static const struct xe_rtp_entry_sr gt_was[] = {
 
 	{ XE_RTP_NAME("16025250150"),
 	  XE_RTP_RULES(GRAPHICS_VERSION(2001)),
-	  XE_RTP_ACTIONS(SET(LSN_VC_REG2,
-			     LSN_LNI_WGT(1) |
-			     LSN_LNE_WGT(1) |
-			     LSN_DIM_X_WGT(1) |
-			     LSN_DIM_Y_WGT(1) |
-			     LSN_DIM_Z_WGT(1)))
+	  XE_RTP_ACTIONS(FIELD_SET(LSN_VC_REG2,
+				   LSN_LNI_WGT_MASK | LSN_LNE_WGT_MASK |
+				   LSN_DIM_X_WGT_MASK | LSN_DIM_Y_WGT_MASK |
+				   LSN_DIM_Z_WGT_MASK,
+				   LSN_LNI_WGT(1) | LSN_LNE_WGT(1) |
+				   LSN_DIM_X_WGT(1) | LSN_DIM_Y_WGT(1) |
+				   LSN_DIM_Z_WGT(1)))
 	},
 
 	/* Xe2_HPM */
drivers/hwmon/pmbus/q54sj108a2.c +10 -9
index 4d7086d83aa3..7b0d292a425a 100644
@@ -78,7 +78,8 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
 	int idx = *idxp;
 	struct q54sj108a2_data *psu = to_psu(idxp, idx);
 	char data[I2C_SMBUS_BLOCK_MAX + 2] = { 0 };
-	char data_char[I2C_SMBUS_BLOCK_MAX + 2] = { 0 };
+	char data_char[I2C_SMBUS_BLOCK_MAX * 2 + 2] = { 0 };
+	char *out = data;
 	char *res;
 
 	switch (idx) {
@@ -149,27 +150,27 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
 		if (rc < 0)
 			return rc;
 
-		res = bin2hex(data, data_char, 32);
-		rc = res - data;
-
+		res = bin2hex(data_char, data, rc);
+		rc = res - data_char;
+		out = data_char;
 		break;
 	case Q54SJ108A2_DEBUGFS_FLASH_KEY:
 		rc = i2c_smbus_read_block_data(psu->client, PMBUS_FLASH_KEY_WRITE, data);
 		if (rc < 0)
 			return rc;
 
-		res = bin2hex(data, data_char, 4);
-		rc = res - data;
-
+		res = bin2hex(data_char, data, rc);
+		rc = res - data_char;
+		out = data_char;
 		break;
 	default:
 		return -EINVAL;
 	}
 
-	data[rc] = '\n';
+	out[rc] = '\n';
 	rc += 2;
 
-	return simple_read_from_buffer(buf, count, ppos, data, rc);
+	return simple_read_from_buffer(buf, count, ppos, out, rc);
 }
 
 static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *buf,
drivers/i3c/master/dw-i3c-master.c +2 -2
index 4033bc16677f..f9b981abd10c 100644
@@ -1010,7 +1010,7 @@ static int dw_i3c_master_reattach_i3c_dev(struct i3c_dev_desc *dev,
 		master->free_pos &= ~BIT(pos);
 	}
 
-	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr),
+	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(dev->info.dyn_addr) | DEV_ADDR_TABLE_SIR_REJECT,
 	       master->regs +
 	       DEV_ADDR_TABLE_LOC(master->datstartaddr, data->index));
 
@@ -1039,7 +1039,7 @@ static int dw_i3c_master_attach_i3c_dev(struct i3c_dev_desc *dev)
 	master->free_pos &= ~BIT(pos);
 	i3c_dev_set_master_data(dev, data);
 
-	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr),
+	writel(DEV_ADDR_TABLE_DYNAMIC_ADDR(master->devs[pos].addr) | DEV_ADDR_TABLE_SIR_REJECT,
 	       master->regs +
 	       DEV_ADDR_TABLE_LOC(master->datstartaddr, data->index));
 
drivers/i3c/master/mipi-i3c-hci/cmd.h +1 -0
index 1d6dd2c5d01a..b1bf87daa651 100644
@@ -17,6 +17,7 @@
 #define CMD_0_TOC			W0_BIT_(31)
 #define CMD_0_ROC			W0_BIT_(30)
 #define CMD_0_ATTR			W0_MASK(2, 0)
+#define CMD_0_TID			W0_MASK(6, 3)
 
 /*
  * Response Descriptor Structure
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c +1 -1
index eb8a3ae2990d..efb7a1f92641 100644
@@ -336,7 +336,7 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci)
 		hci->io->queue_xfer(hci, xfer, 1);
 		if (!wait_for_completion_timeout(&done, HZ) &&
 		    hci->io->dequeue_xfer(hci, xfer, 1)) {
-			ret = -ETIME;
+			ret = -ETIMEDOUT;
 			break;
 		}
 		if ((RESP_STATUS(xfer->response) == RESP_ERR_ADDR_HEADER ||
drivers/i3c/master/mipi-i3c-hci/cmd_v2.c +1 -1
index efb4326a25b7..5fc2e4c55ebb 100644
@@ -277,7 +277,7 @@ static int hci_cmd_v2_daa(struct i3c_hci *hci)
 		hci->io->queue_xfer(hci, xfer, 2);
 		if (!wait_for_completion_timeout(&done, HZ) &&
 		    hci->io->dequeue_xfer(hci, xfer, 2)) {
-			ret = -ETIME;
+			ret = -ETIMEDOUT;
 			break;
 		}
 		if (RESP_STATUS(xfer[0].response) != RESP_SUCCESS) {
drivers/i3c/master/mipi-i3c-hci/core.c +6 -3
index 607d77ab0e54..c529c527d722 100644
@@ -230,7 +230,7 @@ static int i3c_hci_send_ccc_cmd(struct i3c_master_controller *m,
 		goto out;
 	if (!wait_for_completion_timeout(&done, HZ) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = prefixed; i < nxfers; i++) {
@@ -309,7 +309,7 @@ static int i3c_hci_i3c_xfers(struct i3c_dev_desc *dev,
 		goto out;
 	if (!wait_for_completion_timeout(&done, HZ) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = 0; i < nxfers; i++) {
@@ -357,7 +357,7 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev,
 		goto out;
 	if (!wait_for_completion_timeout(&done, m->i2c.timeout) &&
 	    hci->io->dequeue_xfer(hci, xfer, nxfers)) {
-		ret = -ETIME;
+		ret = -ETIMEDOUT;
 		goto out;
 	}
 	for (i = 0; i < nxfers; i++) {
@@ -631,6 +631,9 @@ static int i3c_hci_init(struct i3c_hci *hci)
 	if (ret)
 		return ret;
 
+	spin_lock_init(&hci->lock);
+	mutex_init(&hci->control_mutex);
+
 	/*
 	 * Now let's reset the hardware.
 	 * SOFT_RST must be clear before we write to it.
drivers/i3c/master/mipi-i3c-hci/dma.c +61 -35

186 lines not on this page · raw message

drivers/i3c/master/mipi-i3c-hci/hci.h +2 -0
index 249ccb13c909..32c8aecde9f7 100644
@@ -45,6 +45,8 @@ struct i3c_hci {
 	const struct hci_io_ops *io;
 	void *io_data;
 	const struct hci_cmd_ops *cmd;
+	spinlock_t lock;
+	struct mutex control_mutex;
 	atomic_t next_cmd_tid;
 	u32 caps;
 	unsigned int quirks;
drivers/i3c/master/mipi-i3c-hci/pio.c +7 -9
index 710faa46a00f..67dc34163d51 100644
@@ -124,7 +124,6 @@ struct hci_pio_ibi_data {
 };
 
 struct hci_pio_data {
-	spinlock_t lock;
 	struct hci_xfer *curr_xfer, *xfer_queue;
 	struct hci_xfer *curr_rx, *rx_queue;
 	struct hci_xfer *curr_tx, *tx_queue;
@@ -146,7 +145,6 @@ static int hci_pio_init(struct i3c_hci *hci)
 		return -ENOMEM;
 
 	hci->io_data = pio;
-	spin_lock_init(&pio->lock);
 
 	size_val = pio_reg_read(QUEUE_SIZE);
 	dev_info(&hci->master.dev, "CMD/RESP FIFO = %ld entries\n",
@@ -609,7 +607,7 @@ static int hci_pio_queue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int n)
 		xfer[i].data_left = xfer[i].data_len;
 	}
 
-	spin_lock_irq(&pio->lock);
+	spin_lock_irq(&hci->lock);
 	prev_queue_tail = pio->xfer_queue;
 	pio->xfer_queue = &xfer[n - 1];
 	if (pio->curr_xfer) {
@@ -623,7 +621,7 @@ static int hci_pio_queue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int n)
 			pio_reg_read(INTR_STATUS),
 			pio_reg_read(INTR_SIGNAL_ENABLE));
 	}
-	spin_unlock_irq(&pio->lock);
+	spin_unlock_irq(&hci->lock);
 	return 0;
 }
 
@@ -694,14 +692,14 @@ static bool hci_pio_dequeue_xfer(struct i3c_hci *hci, struct hci_xfer *xfer, int
 	struct hci_pio_data *pio = hci->io_data;
 	int ret;
 
-	spin_lock_irq(&pio->lock);
+	spin_lock_irq(&hci->lock);
 	dev_dbg(&hci->master.dev, "n=%d status=%#x/%#x", n,
 		pio_reg_read(INTR_STATUS), pio_reg_read(INTR_SIGNAL_ENABLE));
 	dev_dbg(&hci->master.dev, "main_status = %#x/%#x",
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/iio/chemical/bme680_core.c +1 -1
index 70f81c4a96ba..24e0b59e2fdf 100644

Lines of this file are not shown. View the raw message.

drivers/iio/chemical/sps30_i2c.c +1 -1
index f692c089d17b..c92f04990c34 100644

Lines of this file are not shown. View the raw message.

drivers/iio/chemical/sps30_serial.c +1 -1
index 008bc88590f3..a5e6bc08d5fd 100644

Lines of this file are not shown. View the raw message.

drivers/iio/dac/ds4424.c +1 -1
index a8198ba4f98a..059acca45f64 100644

Lines of this file are not shown. View the raw message.

drivers/iio/frequency/adf4377.c +1 -1
index 08833b7035e4..48aa4b015a14 100644

Lines of this file are not shown. View the raw message.

drivers/iio/gyro/mpu3050-core.c +13 -5
index ee2fcd20545d..317e7b217ec6 100644

Lines of this file are not shown. View the raw message.

drivers/iio/gyro/mpu3050-i2c.c +1 -2
index 092878f2c886..6549b22e643d 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/adis.c +1 -1
index d160147cce0b..a2bc1d14ed91 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +2 -0
index 54760d8f92a2..0ab6eddf0543 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c +4 -0
index ada968be954d..68a395758031 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +2 -0
index 7ef0a25ec74f..11339ddf1da3 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_icm45600/inv_icm45600.h +1 -1
index c5b5446f6c3b..1c796d4b2a40 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_icm45600/inv_icm45600_core.c +8 -3
index 25bd9757a594..d49053161a65 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_mpu6050/inv_mpu_core.c +8 -0
index b2fa1f4957a5..5796896d54cd 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h +2 -0
index 211901f8b8eb..6239b1a803f7 100644

Lines of this file are not shown. View the raw message.

drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c +4 -1
index 10a473342075..22c1ce66f99e 100644

Lines of this file are not shown. View the raw message.

drivers/iio/industrialio-buffer.c +4 -2
index c6259213e150..a09c0d263d7f 100644

Lines of this file are not shown. View the raw message.

drivers/iio/light/bh1780.c +1 -1
index 5d3c6d5276ba..a740d1f992a8 100644

Lines of this file are not shown. View the raw message.

drivers/iio/magnetometer/tlv493d.c +1 -1
index ec53fd40277b..e5e050af2b74 100644

Lines of this file are not shown. View the raw message.

drivers/iio/potentiometer/mcp4131.c +1 -1
index ad082827aad5..56c9111ef5e8 100644

Lines of this file are not shown. View the raw message.

drivers/iio/proximity/hx9023s.c +4 -2
index 2918dfc0df54..17e00ee2b6f8 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-gic-v3-its.c +4 -0
index 2988def30972..a51e8e6a8181 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-riscv-aplic-direct.c +10 -0
index c2a75bf3d20c..5a9650225dd8 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-riscv-aplic-main.c +184 -3

187 lines not on this page · raw message

drivers/irqchip/irq-riscv-aplic-main.h +19 -0
index b0ad8cde69b1..2d8ad7138541 100644

Lines of this file are not shown. View the raw message.

drivers/media/dvb-core/dvb_net.c +3 -0
index 8bb8dd34c223..a2159b2bc176 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/dw_mmc-rockchip.c +37 -1
index 62c68cda1e21..ff6a52d85e52 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/mmci_qcom_dml.c +1 -0
index 3da6112fbe39..67371389cc33 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/sdhci-brcmstb.c +1 -1
index c9442499876c..57e45951644e 100644

Lines of this file are not shown. View the raw message.

drivers/net/bonding/bond_main.c +63 -7

70 lines not on this page · raw message

drivers/net/caif/caif_serial.c +3 -0
index b90890030751..1873d8287bb9 100644

Lines of this file are not shown. View the raw message.

drivers/net/can/dev/calc_bittiming.c +1 -1
index cc4022241553..42498e9d3f38 100644

Lines of this file are not shown. View the raw message.

drivers/net/can/spi/hi311x.c +4 -1
index e00d3dbc4cf4..91b1fa970f8f 100644

Lines of this file are not shown. View the raw message.

drivers/net/can/usb/gs_usb.c +16 -6
index d8b2dd74b3a1..6faa877d33ae 100644

Lines of this file are not shown. View the raw message.

drivers/net/dsa/microchip/ksz_ptp.c +8 -3
index 997e4a76d0a6..318ab38ac49b 100644

Lines of this file are not shown. View the raw message.

drivers/net/dsa/realtek/rtl8365mb.c +1 -2
index f938a3f701cc..31fa94dac627 100644

Lines of this file are not shown. View the raw message.

drivers/net/dsa/realtek/rtl8366rb-leds.c +3 -3
index 99c890681ae6..509ffd3f8db5 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/amd/xgbe/xgbe-drv.c +10 -9
index 20ce2ed4cd9f..6de12a0e0655 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +75 -7

82 lines not on this page · raw message

drivers/net/ethernet/amd/xgbe/xgbe.h +4 -0
index 4ba23779b2b7..3bc748c7cb24 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/arc/emac_main.c +11 -0
index 8283aeee35fb..dde4046cbf01 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +2 -2
index c76a7623870b..fa452d6272e0 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/genet/bcmgenet.c +12 -19
index 05512aa10c20..1c2fdaca14f9 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/genet/bcmgenet.h +1 -4
index 5ec3979779ec..9e4110c7fdf6 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/genet/bcmmii.c +5 -5
index 38f854b94a79..a4e0d5a68268 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/cadence/macb_main.c +95 -3

98 lines not on this page · raw message

drivers/net/ethernet/freescale/enetc/netc_blk_ctrl.c +10 -14
index 7fd39f895290..92a0f824dae7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/e1000/e1000_main.c +0 -2
index 7f078ec9c14c..15160427c8b3 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/e1000e/netdev.c +0 -2
index ddbe2f7d8112..6bcb57609d16 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +7 -7
index 1fa877b52f61..5a383ed09f79 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/iavf/iavf.h +1 -2
index a87e0c6d4017..e9fb0a0919e3 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/iavf/iavf_ethtool.c +6 -13
index 2cc21289a707..6ff3842a1ff1 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/iavf/iavf_main.c +28 -53

81 lines not on this page · raw message

drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +0 -1
index 88156082a41d..a52c100dcbc5 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/devlink/devlink.c +2 -2
index 2ef39cc70c21..7de749d3f047 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_common.c +10 -3
index a400bf4f239a..26eb8e05498b 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ice/ice_ethtool.c +14 -21
index 1b343c53874e..fa4c7ae9ff6b 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/ixgbevf/vf.c +2 -1
index 74d320879513..b67b580f7f1c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +3 -3
index 0f9953eaf1b0..2a715872e9ed 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +0 -1
index 9f6454102cf7..d6ace2b6fc1d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c +1 -1
index feef86fff4bf..91cfabc45032 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +9 -14
index 1f6930c77437..3000286bf29c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +4 -3
index 4b7a1ce7f406..32bf93e4ffce 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +2 -0
index 714ad28e8445..0276609a617c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +25 -20

45 lines not on this page · raw message

drivers/net/ethernet/microsoft/mana/gdma_main.c +1 -0
index 3926d18f1840..cbea0ea242c2 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/microsoft/mana/mana_en.c +18 -5
index d487bf2f1cf1..4a616a97d89d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/spacemit/k1_emac.c +13 -6
index b49c4708bf9e..d64ca7bbda9e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/am65-cpsw-nuss.c +9 -7
index 967918050433..265ce5479915 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/ti/am65-cpsw-nuss.h +1 -1
index 917c37e4e89b..7750448e4746 100644

Lines of this file are not shown. View the raw message.

drivers/net/mctp/mctp-i2c.c +1 -0
index 8043b57bdf25..f138b0251313 100644

Lines of this file are not shown. View the raw message.

drivers/net/mctp/mctp-usb.c +1 -2
index ef860cfc629f..3b5dff144177 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/sfp.c +7 -1
index 43aefdd8b70f..ca0992533572 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/lan78xx.c +8 -4
index 065588c9cfa6..858a442d6996 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/lan78xx.h +3 -0
index 968e5e5faee0..17a934acff3d 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/qmi_wwan.c +2 -2
index 3a4985b582cb..05acac10cd2b 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/usbnet.c +4 -3
index 9280ef544bbb..f9f7506d9427 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +5 -3
index d86f2565a92c..3c83076a57e5 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/pinctrl-cy8c95x0.c +2 -2
index a4b04bf6d081..5c055d344ac9 100644

Lines of this file are not shown. View the raw message.

drivers/pmdomain/bcm/bcm2835-power.c +3 -3
index 1d29addfe036..0450202bbee2 100644

Lines of this file are not shown. View the raw message.

drivers/pmdomain/rockchip/pm-domains.c +1 -1
index 997e93c12951..44d34840ede7 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/pca9450-regulator.c +10 -4
index 5fa868264250..45d7dc44c2cd 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/pf9453-regulator.c +1 -1
index 779a6fdb0574..eed3055d1c1c 100644

Lines of this file are not shown. View the raw message.

drivers/remoteproc/mtk_scp.c +39 -0
index 98d00bd5200c..b0b65aefc719 100644

Lines of this file are not shown. View the raw message.

drivers/remoteproc/qcom_sysmon.c +1 -1
index 660ac6fc4082..c6cc6e519fe5 100644

Lines of this file are not shown. View the raw message.

drivers/remoteproc/qcom_wcnss.c +1 -1
index ee18bf2e8054..4add9037dbd5 100644

Lines of this file are not shown. View the raw message.

drivers/s390/block/dasd_eckd.c +16 -0
index b08e900687f3..c0f665a2929d 100644

Lines of this file are not shown. View the raw message.

drivers/s390/crypto/zcrypt_ccamisc.c +7 -5
index 573bad1d6d86..37a157a1d969 100644

Lines of this file are not shown. View the raw message.

drivers/s390/crypto/zcrypt_cex4.c +1 -2
index 6ba7fbddd3f7..8aa78f415336 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/hisi_sas/hisi_sas_main.c +1 -1
index 30a9c6612651..c2b082f1252c 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +1 -1
index 2f9e01717ef3..f69efc6494b8 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpi3mr/mpi3mr_fw.c +19 -15
index 8c4bb7169a87..8382afed1281 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_iocb.c +0 -2
index 3224044f1775..0de015de7eb5 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_scan.c +2 -6
index c64ef71633d8..c8762323c54d 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ses.c +2 -3
index 2c61624cb4b0..50e744e89129 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/storvsc_drv.c +3 -2
index b43d876747b7..68c837146b9e 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-amlogic-spifc-a4.c +2 -3
index 35a7c4965e11..f324aa39a897 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-rockchip-sfc.c +1 -1
index b3c2b03b1153..8acf95563697 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8723bs/core/rtw_ieee80211.c +10 -5
index 8fdeeda88a6d..3a3161ff1e7f 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8723bs/core/rtw_mlme.c +4 -1
index 936c850e5aab..2142c2872adf 100644

Lines of this file are not shown. View the raw message.

drivers/staging/sm750fb/sm750.c +1 -0
index fecd7457e615..2d54d52ba357 100644

Lines of this file are not shown. View the raw message.

drivers/staging/sm750fb/sm750_hw.c +11 -11
index ce46f240cbaf..b3a16b22359c 100644

Lines of this file are not shown. View the raw message.

drivers/ufs/core/ufshcd.c +6 -5
index 80fafad339c7..5038b8428fc3 100644

Lines of this file are not shown. View the raw message.

drivers/usb/class/cdc-acm.c +5 -0
index 54be4aa1dcb2..8b2446463a50 100644

Lines of this file are not shown. View the raw message.

drivers/usb/class/cdc-acm.h +1 -0
index 759ac15631d3..76f73853a60b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/class/cdc-wdm.c +3 -1
index ecd6d1f39e49..92567324c5da 100644

Lines of this file are not shown. View the raw message.

drivers/usb/class/usbtmc.c +3 -3
index 206f1b738ed3..4cee3fa74e0d 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/message.c +79 -21

100 lines not on this page · raw message

drivers/usb/core/phy.c +1 -7
index faa20054ad5a..4bba1c275740 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/quirks.c +16 -0
index c4d85089d19b..9fef2f4d604a 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/dwc3-pci.c +2 -0
index 6ecadc81bd6b..6c1cbb722ca8 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/f_hid.c +4 -0
index 3ddfd4f66f0b..f1f8e7c1d528 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/f_mass_storage.c +10 -2
index 94d478b6bcd3..6f275c3d11ac 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/f_ncm.c +80 -66

146 lines not on this page · raw message

drivers/usb/gadget/function/f_tcm.c +14 -0
index 6e8804f04baa..7b27f8082ace 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/u_ether.c +22 -45

67 lines not on this page · raw message

drivers/usb/gadget/function/u_ether.h +26 -30

56 lines not on this page · raw message

drivers/usb/gadget/function/u_ether_configfs.h +0 -176

176 lines not on this page · raw message

drivers/usb/gadget/function/u_ncm.h +1 -3
index d99330fe31e8..b1f3db8b68c1 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/uvc_video.c +1 -1
index f568dee08b3b..bbde1db6833b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-debugfs.c +9 -1
index c1eb1036ede9..5ff5b761bccf 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-ring.c +1 -0
index 9315ba18310d..1cbefee3c4ca 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci.c +2 -2
index b3ba16b9718c..e94cf92e012b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/image/mdc800.c +4 -2
index 7b7e1554ea20..10d72562e4d2 100644

Lines of this file are not shown. View the raw message.

drivers/usb/misc/uss720.c +1 -1
index b26c1d382d59..3138f5dca6da 100644

Lines of this file are not shown. View the raw message.

drivers/usb/misc/yurex.c +1 -1
index 70dff0db5354..6d03e689850a 100644

Lines of this file are not shown. View the raw message.

drivers/usb/renesas_usbhs/common.c +9 -0
index cf4a0367d6d6..8c93bde4b816 100644

Lines of this file are not shown. View the raw message.

drivers/usb/roles/class.c +6 -1
index 30482d4cf826..b7cdc62d420f 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/altmodes/displayport.c +6 -1
index d96ab106a980..8b51b32ec5d4 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/tcpm/tcpm.c +1 -1
index be49a976428f..4ca2746ce16b 100644

Lines of this file are not shown. View the raw message.

fs/afs/addr_list.c +4 -4
index e941da5b6dd9..b1704de3d95f 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/extent_io.c +1 -0
index f6cca3c97166..3e6be1911237 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/inode.c +19 -0
index 827554963a7c..13f1f3b52b04 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/ioctl.c +21 -3
index c9284ce6c6e7..1a5d98811f2b 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/space-info.c +4 -1
index 30aedf596b54..13b2bbe67430 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/transaction.c +16 -0
index d3e1ba257b9c..5fc3735e790e 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/uuid-tree.c +38 -0
index e3a1310fa7d5..a3c244ff3a0c 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/uuid-tree.h +2 -0
index c60ad20325cc..02b235a3653f 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/volumes.c +4 -2
index 1cbe7c6a2889..fbf23d20cce0 100644

Lines of this file are not shown. View the raw message.

fs/ceph/addr.c +0 -1
index c6c853748942..20ac6371ba2c 100644

Lines of this file are not shown. View the raw message.

fs/ceph/debugfs.c +2 -2
index f3fe786b4143..7dc307790240 100644

Lines of this file are not shown. View the raw message.

fs/ceph/dir.c +15 -2
index 804588524cd5..cb5461b9300e 100644

Lines of this file are not shown. View the raw message.

fs/ceph/file.c +2 -2
index 9152b4722710..10c4df48dbdc 100644

Lines of this file are not shown. View the raw message.

fs/ceph/inode.c +1 -1
index 2966f88310e3..5781412bfbc1 100644

Lines of this file are not shown. View the raw message.

fs/ceph/mds_client.c +3 -0
index c45bd19d4b1c..109658e4d023 100644

Lines of this file are not shown. View the raw message.

fs/file_attr.c +1 -1
index 13cdb31a3e94..4889cf59b256 100644

Lines of this file are not shown. View the raw message.

fs/iomap/buffered-io.c +12 -3
index e3bedcbb5f1e..660457e60e2f 100644

Lines of this file are not shown. View the raw message.

fs/iomap/ioend.c +7 -6
index 86f44922ed3b..f418cfde3276 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs3proc.c +6 -1
index 1181f9cc6dbd..f8bc9bffdad9 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/nfsctl.c +1 -1
index ec9782fd4a36..85e3bd0e82ba 100644

Lines of this file are not shown. View the raw message.

fs/nsfs.c +14 -1
index bf27d5da91f1..392d2d7f85f7 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/cifsglob.h +11 -0
index 3eca5bfb7030..0c3d2bbef938 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/dir.c +1 -0
index 747256025e49..462d8e751ecf 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/file.c +3 -15
index 7ff5cc9c5c5b..89dab96292de 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/fs_context.c +1 -1
index 2527d2d29f19..e0d2cd78c82f 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2ops.c +12 -2
index 4eb7879479ba..9bfd3711030b 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2pdu.c +4 -1
index bf4a13acc8b8..a00bcfd08152 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/auth.c +2 -20
index a69e8694605a..36c4ad5663f4 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/oplock.c +25 -10
index a5967ac46604..cfc2a431fa91 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/oplock.h +3 -2
index 9a56eaadd0dd..921e3199e4df 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/smb2pdu.c +4 -4
index b682e8160504..bfb75bad7266 100644

Lines of this file are not shown. View the raw message.

fs/xfs/libxfs/xfs_defer.c +1 -1
index 5b377cbbb1f7..e8db2f6149e0 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_bmap_item.c +1 -1
index 80f0c4bcc483..bcc89d65de7f 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_dquot.c +7 -1
index 612ca682a513..d00f0a466b58 100644

Lines of this file are not shown. View the raw message.

fs/xfs/xfs_log.c +2 -0
index d4544ccafea5..7668557018c6 100644

Lines of this file are not shown. View the raw message.

include/kunit/run-in-irq-context.h +28 -16

44 lines not on this page · raw message

include/linux/damon.h +5 -5
index 3813373a9200..33e59d53d9f1 100644

Lines of this file are not shown. View the raw message.

include/linux/io_uring_types.h +1 -0
index 4c9770536eb5..f3a8a1306cf4 100644

Lines of this file are not shown. View the raw message.

include/linux/irqchip/arm-gic-v3.h +1 -0
index 70c0948f978e..0225121f3013 100644

Lines of this file are not shown. View the raw message.

include/linux/kthread.h +20 -1
index 8d27403888ce..68d4b31d8989 100644

Lines of this file are not shown. View the raw message.

include/linux/liveupdate.h +6 -3
index a7f6ee5b6771..5ccdcc462af2 100644

Lines of this file are not shown. View the raw message.

include/linux/migrate.h +9 -1
index 26ca00c325d9..d5af2b7f577b 100644

Lines of this file are not shown. View the raw message.

include/linux/mm.h +6 -11
index f0d5be9dc736..05dbfdb6dd1e 100644

Lines of this file are not shown. View the raw message.

include/linux/mmc/host.h +5 -4
index e0e2c265e5d1..ba84f02c2a10 100644

Lines of this file are not shown. View the raw message.

include/linux/netdevice.h +32 -0
index 6655b0c6e42b..65d85dc9c8f0 100644

Lines of this file are not shown. View the raw message.

include/linux/ns_common.h +2 -0
index 825f5865bfc5..c8e227a3f9e2 100644

Lines of this file are not shown. View the raw message.

include/linux/rseq_types.h +5 -1
index ef0811379c54..a612959c5b17 100644

Lines of this file are not shown. View the raw message.

include/linux/sched.h +0 -2
index eb1c4c347a5c..0719862970a2 100644

Lines of this file are not shown. View the raw message.

include/linux/usb.h +6 -2
index e85105939af8..32e17626dfdc 100644

Lines of this file are not shown. View the raw message.

include/linux/usb/usbnet.h +1 -0
index 2945923a8a95..7296fdf3d88b 100644

Lines of this file are not shown. View the raw message.

include/net/ip6_tunnel.h +14 -0
index 120db2865811..359b595f1df9 100644

Lines of this file are not shown. View the raw message.

include/net/ip_tunnels.h +7 -0
index 4021e6a73e32..80662f812080 100644

Lines of this file are not shown. View the raw message.

include/net/page_pool/types.h +1 -1
index 1509a536cb85..fb4f03ccd615 100644

Lines of this file are not shown. View the raw message.

include/trace/events/kmem.h +7 -1
index 7f93e754da5c..cd7920c81f85 100644

Lines of this file are not shown. View the raw message.

io_uring/eventfd.c +7 -3
index 78f8ab7db104..ab789e1ebe91 100644

Lines of this file are not shown. View the raw message.

io_uring/io_uring.c +23 -3
index 63efd60829f3..ac1a5cf10287 100644

Lines of this file are not shown. View the raw message.

io_uring/kbuf.c +11 -2
index dae5b4ab3819..e7f444953dfb 100644

Lines of this file are not shown. View the raw message.

io_uring/net.c +2 -0
index d9a4b83804a2..cfcd49f0cecf 100644

Lines of this file are not shown. View the raw message.

io_uring/register.c +12 -0
index 12318c276068..ff9d75ffbd15 100644

Lines of this file are not shown. View the raw message.

io_uring/zcrx.c +3 -2
index 93da8933a91f..262ac732cf96 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/verifier.c +0 -1
index b594a065b83c..9c4723cdac70 100644

Lines of this file are not shown. View the raw message.

kernel/cgroup/cgroup.c +7 -0
index 5f0d33b04910..3f9e4bcd7198 100644

Lines of this file are not shown. View the raw message.

kernel/exit.c +6 -0
index 8a87021211ae..ede3117fa7d4 100644

Lines of this file are not shown. View the raw message.

kernel/fork.c +2 -3
index b1f3915d5f8e..5b45887435dc 100644

Lines of this file are not shown. View the raw message.

kernel/kprobes.c +6 -2
index ab8f9fc1f0d1..87e6f4d61b95 100644

Lines of this file are not shown. View the raw message.

kernel/kthread.c +5 -36

41 lines not on this page · raw message

kernel/liveupdate/luo_file.c +25 -16

41 lines not on this page · raw message

kernel/nscommon.c +6 -0
index bdc3c86231d3..3166c1fd844a 100644

Lines of this file are not shown. View the raw message.

kernel/nstree.c +4 -25
index f36c59e6951d..6d12e5900ac0 100644

Lines of this file are not shown. View the raw message.

kernel/sched/core.c +28 -51

79 lines not on this page · raw message

kernel/sched/ext.c +71 -14

85 lines not on this page · raw message

kernel/sched/idle.c +10 -1
index abf8f15d60c9..69c70d509e1c 100644

Lines of this file are not shown. View the raw message.

kernel/time/time.c +1 -1
index 0ba8e3c50d62..155cf7def914 100644

Lines of this file are not shown. View the raw message.

kernel/trace/bpf_trace.c +3 -1
index 325579c7da26..e448a2553f7c 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace.c +3 -3
index bce112e1bbba..04c81fbf483f 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_events.c +42 -16

58 lines not on this page · raw message

kernel/trace/trace_functions_graph.c +13 -6
index 1de6f1573621..b9c81fbd98dc 100644

Lines of this file are not shown. View the raw message.

kernel/workqueue.c +1 -1
index 2909c19540ed..a4574c1e276a 100644

Lines of this file are not shown. View the raw message.

lib/bootconfig.c +3 -3
index 81f29c29f47b..0728c4a95249 100644

Lines of this file are not shown. View the raw message.

mm/damon/core.c +44 -35

79 lines not on this page · raw message

mm/damon/lru_sort.c +2 -2
index 49b4bc294f4e..9cef1619527f 100644

Lines of this file are not shown. View the raw message.

mm/damon/reclaim.c +2 -2
index 36a582e09eae..c262ec6cb545 100644

Lines of this file are not shown. View the raw message.

mm/damon/stat.c +1 -1
index ed8e3629d31a..922a6a6e65db 100644

Lines of this file are not shown. View the raw message.

mm/damon/sysfs.c +6 -5
index 95fd9375a7d8..4a74c46770c0 100644

Lines of this file are not shown. View the raw message.

mm/damon/tests/vaddr-kunit.h +1 -1
index 30dc5459f1d2..cfae870178bf 100644

Lines of this file are not shown. View the raw message.

mm/damon/vaddr.c +12 -12
index 23ed738a0bd6..226a3f0c9b4a 100644

Lines of this file are not shown. View the raw message.

mm/filemap.c +10 -5
index ebd75684cb0a..d98e4883f13d 100644

Lines of this file are not shown. View the raw message.

mm/huge_memory.c +9 -4
index d3beddd8cc30..e3992314df9a 100644

Lines of this file are not shown. View the raw message.

mm/kfence/core.c +23 -6
index 4f79ec720752..30959c97b881 100644

Lines of this file are not shown. View the raw message.

mm/memcontrol.c +1 -1
index 702c3db624a0..a7b5192ad7d5 100644

Lines of this file are not shown. View the raw message.

mm/memfd_luo.c +49 -7

56 lines not on this page · raw message

mm/memory.c +2 -1
index da360a6eb8a4..20172476a57f 100644

Lines of this file are not shown. View the raw message.

mm/migrate.c +4 -4
index 4688b9e38cd2..cf6449b4202e 100644

Lines of this file are not shown. View the raw message.

mm/migrate_device.c +1 -1
index 23379663b1e1..deab89fd4541 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +2 -1
index 04e32adaeb1d..469ee8cb7b2e 100644

Lines of this file are not shown. View the raw message.

mm/slub.c +37 -17

54 lines not on this page · raw message

net/batman-adv/bat_v_elp.c +9 -1
index cb16c1ed2a58..fe832093d421 100644

Lines of this file are not shown. View the raw message.

net/batman-adv/hard-interface.c +4 -4
index 5113f879736b..1c488049d554 100644

Lines of this file are not shown. View the raw message.

net/batman-adv/hard-interface.h +1 -0
index 9db8a310961e..9ba8fb2bdceb 100644

Lines of this file are not shown. View the raw message.

net/ceph/auth.c +4 -2
index d38c9eadbe2f..0d75679c6a7e 100644

Lines of this file are not shown. View the raw message.

net/ceph/messenger_v2.c +21 -10
index 31e042dc1b3f..4653330374e4 100644

Lines of this file are not shown. View the raw message.

net/ceph/mon_client.c +3 -3
index fa8dd2a20f7d..94a7a82ca475 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +11 -6
index 994e21a697c3..9fa068095124 100644

Lines of this file are not shown. View the raw message.

net/core/dev.h +0 -35
index da18536cbd35..49173702e15e 100644

Lines of this file are not shown. View the raw message.

net/core/neighbour.c +2 -1
index 96a3b1a93252..e4ee0c02fb44 100644

Lines of this file are not shown. View the raw message.

net/core/page_pool_user.c +2 -2
index c82a95beceff..ee5060d8eec0 100644

Lines of this file are not shown. View the raw message.

net/ipv4/Kconfig +2 -0
index b71c22475c51..df922f9f5289 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_tunnel_core.c +15 -0
index 2e61ac137128..5683c328990f 100644

Lines of this file are not shown. View the raw message.

net/ipv4/nexthop.c +11 -3
index 7b9d70f9b31c..427c20117594 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp.c +2 -1
index 699212cd6c22..7fbaccf4c0ad 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_ao.c +2 -1
index 34b8450829d0..849a69c1f497 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_ipv4.c +2 -1
index d27965294aef..750e3ac90587 100644

Lines of this file are not shown. View the raw message.

net/ipv6/tcp_ipv6.c +2 -1
index ca68ce16bcbe..1ba201e69a3d 100644

Lines of this file are not shown. View the raw message.

net/mac80211/link.c +2 -0
index 1e05845872af..b659497680b5 100644

Lines of this file are not shown. View the raw message.

net/mctp/route.c +7 -4
index ecbbe4beb213..7a94b58f0097 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-aen.c +2 -1
index 62fb1031763d..040a31557201 100644

Lines of this file are not shown. View the raw message.

net/ncsi/ncsi-rsp.c +12 -4
index 271ec6c3929e..fbd84bc8026a 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +1 -3
index a3865924a505..c9a76c760b17 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nfnetlink_cthelper.c +4 -4
index 97248963a7d3..71a248cca746 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nfnetlink_queue.c +3 -1
index 34548213f2f1..0b96d20bacb7 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_chain_filter.c +1 -1
index b16185e9a6dd..041426e3bdbf 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_set_pipapo.c +2 -1
index d9b74d588c76..394b78a00a6a 100644

Lines of this file are not shown. View the raw message.

net/netfilter/xt_IDLETIMER.c +6 -0
index d73957592c9d..bb7af92ac82a 100644

Lines of this file are not shown. View the raw message.

net/netfilter/xt_dccp.c +2 -2
index e5a13ecbe67a..037ab93e25d0 100644

Lines of this file are not shown. View the raw message.

net/netfilter/xt_tcpudp.c +4 -2
index e8991130a3de..f76cf18f1a24 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/af_rxrpc.c +5 -3
index 0c2c68c4b07e..0f90272ac254 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_teql.c +1 -0
index 6e4bdaa876ed..783300d8b019 100644

Lines of this file are not shown. View the raw message.

net/shaper/shaper.c +2 -9
index 7101a48bce54..318a0567a698 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/xprtrdma/verbs.c +4 -3
index 63262ef0c2e3..8abbd9c4045a 100644

Lines of this file are not shown. View the raw message.

net/tipc/socket.c +2 -0
index 817b07d95a91..a7e6f5a9fd51 100644

Lines of this file are not shown. View the raw message.

rust/Makefile +2 -4
index 725158740fc6..066c194c23b9 100644

Lines of this file are not shown. View the raw message.

rust/kernel/str.rs +2 -2
index fa87779d2253..3f8918764640 100644

Lines of this file are not shown. View the raw message.

sound/core/pcm_native.c +16 -3
index 0a358d94b17c..495ff93fcd1d 100644

Lines of this file are not shown. View the raw message.

sound/hda/codecs/realtek/alc269.c +25 -0
index f5719e630d28..4c49f1195e1b 100644

Lines of this file are not shown. View the raw message.

sound/soc/amd/acp/acp-mach-common.c +14 -4
index 4d99472c75ba..09f6c9a2c041 100644

Lines of this file are not shown. View the raw message.

sound/soc/amd/acp3x-rt5682-max9836.c +7 -2
index 4ca1978020a9..d1eb6f12a183 100644

Lines of this file are not shown. View the raw message.

sound/soc/amd/yc/acp6x-mach.c +14 -0
index f1a63475100d..1324543b42d7 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/cs42l43-jack.c +1 -0
index b83bc4de1301..3e04e6897b14 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/rt1011.c +1 -1
index 9f34a6a35487..03f31d9d916e 100644

Lines of this file are not shown. View the raw message.

sound/soc/generic/simple-card-utils.c +8 -4
index bdc02e85b089..9e5be0eaa77f 100644

Lines of this file are not shown. View the raw message.

sound/soc/qcom/qdsp6/q6apm-dai.c +1 -0
index aaeeadded7aa..7e9d0b393bf9 100644

Lines of this file are not shown. View the raw message.

sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +1 -0
index 528756f1332b..5be37eeea329 100644

Lines of this file are not shown. View the raw message.

sound/soc/qcom/qdsp6/q6apm.c +1 -0
index 94cc6376a367..5b8367a966b9 100644

Lines of this file are not shown. View the raw message.

sound/soc/soc-core.c +8 -3
index e4b21bf39e59..23ba821cd759 100644

Lines of this file are not shown. View the raw message.

sound/usb/endpoint.c +1 -0
index 686f09529067..1a020ea55875 100644

Lines of this file are not shown. View the raw message.

sound/usb/format.c +65 -5

70 lines not on this page · raw message

sound/usb/mixer_scarlett2.c +2 -0
index 7b31504c5f24..4342d93ab771 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks.c +2 -0
index a89ea2233180..caca0e586d83 100644

Lines of this file are not shown. View the raw message.

tools/objtool/check.c +5 -5
index 37ec0d757e9b..eba35bb8c0bd 100644

Lines of this file are not shown. View the raw message.

tools/objtool/elf.c +1 -1
index 2c02c7b49265..3da90686350d 100644

Lines of this file are not shown. View the raw message.

tools/objtool/klp-diff.c +3 -0
index 9f1f4011eb9c..d94632e80955 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-ftrace.c +7 -2
index 6b6eec65f93f..4cc33452d79b 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/annotate.c +4 -1
index 791d60f97c23..df7b7e70c19f 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/disasm.c +1 -1
index 88706b98b906..b1be847446fe 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/synthetic-events.c +5 -0
index 2ba9fa25e00a..7a47e21c6704 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/filesystems/nsfs/iterate_mntns.c +15 -10
index 61e55dfbf121..e19ff8168baf 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.