Skip to contentSkip to conversation

Linux 6.12.24

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 20, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.12.24 kernel.

All users of the 6.12 kernel series must upgrade.

The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.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/admin-guide/kernel-parameters.txt                           |    2 
 Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml            |    3 
 Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml            |    3 
 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml            |    2 
 Makefile                                                                  |    5 
 arch/arm64/boot/dts/exynos/google/gs101.dtsi                              |    1 
 arch/arm64/boot/dts/mediatek/mt8173.dtsi                                  |    6 
 arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi                 |    7 
 arch/arm64/include/asm/cputype.h                                          |    4 
 arch/arm64/include/asm/spectre.h                                          |    1 
 arch/arm64/include/asm/traps.h                                            |    4 
 arch/arm64/kernel/proton-pack.c                                           |  218 ++-
 arch/arm64/kvm/arm.c                                                      |    6 
 arch/arm64/mm/mmu.c                                                       |    3 
 arch/powerpc/kvm/powerpc.c                                                |    5 
 arch/s390/Makefile                                                        |    2 
 arch/s390/kernel/perf_cpum_cf.c                                           |    9 
 arch/s390/kernel/perf_cpum_sf.c                                           |    3 
 arch/s390/pci/pci_bus.c                                                   |    3 
 arch/s390/pci/pci_mmio.c                                                  |   18 
 arch/sparc/include/asm/pgtable_64.h                                       |    2 
 arch/sparc/mm/tlb.c                                                       |    5 
 arch/x86/Kconfig                                                          |   20 
 arch/x86/include/asm/irqflags.h                                           |   40 
 arch/x86/include/asm/paravirt.h                                           |   20 
 arch/x86/include/asm/paravirt_types.h                                     |    3 
 arch/x86/kernel/acpi/boot.c                                               |   11 
 arch/x86/kernel/cpu/amd.c                                                 |    2 
 arch/x86/kernel/e820.c                                                    |   17 
 arch/x86/kernel/paravirt.c                                                |   13 
 arch/x86/kernel/signal_32.c                                               |   62 -
 arch/x86/kvm/cpuid.c                                                      |    8 
 arch/x86/kvm/x86.c                                                        |    4 
 arch/x86/mm/pat/set_memory.c                                              |    6 
 arch/x86/xen/enlighten.c                                                  |   10 
 arch/x86/xen/setup.c                                                      |    3 
 drivers/accel/ivpu/ivpu_debugfs.c                                         |    4 
 drivers/accel/ivpu/ivpu_ipc.c                                             |    3 
 drivers/accel/ivpu/ivpu_ms.c                                              |   24 
 drivers/acpi/platform_profile.c                                           |   20 
 drivers/ata/ahci.c                                                        |   11 
 drivers/ata/ahci.h                                                        |    1 
 drivers/ata/libahci.c                                                     |    4 
 drivers/ata/libata-core.c                                                 |   38 
 drivers/ata/libata-eh.c                                                   |   11 
 drivers/ata/pata_pxa.c                                                    |    6 
 drivers/ata/sata_sx4.c                                                    |   13 
 drivers/auxdisplay/hd44780.c                                              |    4 
 drivers/base/devres.c                                                     |    7 
 drivers/block/ublk_drv.c                                                  |   90 +
 drivers/bluetooth/btintel_pcie.c                                          |    1 
 drivers/bluetooth/btqca.c                                                 |   13 
 drivers/bluetooth/btusb.c                                                 |    4 
 drivers/bluetooth/hci_ldisc.c                                             |   19 
 drivers/bluetooth/hci_qca.c                                               |    2 
 drivers/bluetooth/hci_uart.h                                              |    1 
 drivers/bus/mhi/host/main.c                                               |   16 
 drivers/char/tpm/tpm-chip.c                                               |    6 
 drivers/char/tpm/tpm-interface.c                                          |    7 
 drivers/char/tpm/tpm_tis_core.c                                           |   20 
 drivers/char/tpm/tpm_tis_core.h                                           |    1 
 drivers/clk/qcom/clk-branch.c                                             |    4 
 drivers/clk/qcom/gdsc.c                                                   |   61 -
 drivers/clk/renesas/r9a07g043-cpg.c                                       |    7 
 drivers/clocksource/timer-stm32-lp.c                                      |    4 
 drivers/crypto/ccp/sp-pci.c                                               |   15 
 drivers/gpio/gpio-tegra186.c                                              |   27 
 drivers/gpio/gpio-zynq.c                                                  |    1 
 drivers/gpio/gpiolib-of.c                                                 |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                                |   10 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c                                    |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h                                    |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c                                 |   43 
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c                                  |   10 
 drivers/gpu/drm/amd/amdkfd/kfd_device.c                                   |    5 
 drivers/gpu/drm/amd/amdkfd/kfd_process.c                                  |   17 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c                    |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_svm.c                                      |   31 
 drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_resource_mgmt.c               |   26 
 drivers/gpu/drm/amd/display/dc/hubp/dcn31/dcn31_hubp.c                    |    2 
 drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c                   |   22 
 drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c                          |    5 
 drivers/gpu/drm/drm_atomic_helper.c                                       |    2 
 drivers/gpu/drm/drm_debugfs.c                                             |    2 
 drivers/gpu/drm/drm_panel.c                                               |    5 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                            |   46 
 drivers/gpu/drm/i915/gt/intel_rc6.c                                       |   19 
 drivers/gpu/drm/i915/gt/uc/intel_huc.c                                    |   11 
 drivers/gpu/drm/i915/gt/uc/intel_huc.h                                    |    1 
 drivers/gpu/drm/i915/gt/uc/intel_uc.c                                     |    1 
 drivers/gpu/drm/i915/selftests/i915_selftest.c                            |   18 
 drivers/gpu/drm/mediatek/mtk_dpi.c                                        |   23 
 drivers/gpu/drm/tests/drm_client_modeset_test.c                           |    3 
 drivers/gpu/drm/tests/drm_cmdline_parser_test.c                           |   10 
 drivers/gpu/drm/tests/drm_kunit_helpers.c                                 |   22 
 drivers/gpu/drm/tests/drm_modes_test.c                                    |   22 
 drivers/gpu/drm/tests/drm_probe_helper_test.c                             |    8 
 drivers/gpu/drm/xe/xe_gt.c                                                |    4 
 drivers/gpu/drm/xe/xe_gt_sriov_vf.c                                       |   16 
 drivers/gpu/drm/xe/xe_gt_sriov_vf.h                                       |    1 
 drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c                             |  108 -
 drivers/gpu/drm/xe/xe_tuning.c                                            |    8 
 drivers/gpu/drm/xe/xe_wa.c                                                |    7 
 drivers/hid/Kconfig                                                       |   14 
 drivers/hid/Makefile                                                      |    1 
 drivers/hid/hid-ids.h                                                     |   37 
 drivers/hid/hid-universal-pidff.c                                         |  202 +++
 drivers/hid/usbhid/hid-core.c                                             |    1 
 drivers/hid/usbhid/hid-pidff.c                                            |  569 ++++++----
 drivers/hid/usbhid/hid-pidff.h                                            |   33 
 drivers/hsi/clients/ssi_protocol.c                                        |    1 
 drivers/i3c/master.c                                                      |    3 
 drivers/i3c/master/svc-i3c-master.c                                       |    2 
 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c                            |   32 
 drivers/iommu/exynos-iommu.c                                              |    4 
 drivers/iommu/intel/iommu.c                                               |    2 
 drivers/iommu/intel/irq_remapping.c                                       |   71 -
 drivers/iommu/iommufd/device.c                                            |  123 ++
 drivers/iommu/iommufd/fault.c                                             |    8 
 drivers/iommu/iommufd/iommufd_private.h                                   |   33 
 drivers/iommu/mtk_iommu.c                                                 |   26 
 drivers/leds/rgb/leds-qcom-lpg.c                                          |    8 
 drivers/mailbox/tegra-hsp.c                                               |   72 +
 drivers/md/dm-ebs-target.c                                                |    7 
 drivers/md/dm-integrity.c                                                 |   48 
 drivers/md/dm-verity-target.c                                             |    8 
 drivers/media/common/siano/smsdvb-main.c                                  |    2 
 drivers/media/i2c/adv748x/adv748x.h                                       |    2 
 drivers/media/i2c/ccs/ccs-core.c                                          |    6 
 drivers/media/i2c/hi556.c                                                 |    5 
 drivers/media/i2c/imx214.c                                                |   25 
 drivers/media/i2c/imx219.c                                                |  106 +
 drivers/media/i2c/imx319.c                                                |    9 
 drivers/media/i2c/ov7251.c                                                |    4 
 drivers/media/pci/intel/ipu6/ipu6-isys-video.c                            |    1 
 drivers/media/pci/mgb4/mgb4_cmt.c                                         |    8 
 drivers/media/platform/chips-media/wave5/wave5-hw.c                       |    2 
 drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c                  |   31 
 drivers/media/platform/chips-media/wave5/wave5-vpu.c                      |    4 
 drivers/media/platform/chips-media/wave5/wave5-vpuapi.c                   |   10 
 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c         |    5 
 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c |    3 
 drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c        |    6 
 drivers/media/platform/nuvoton/npcm-video.c                               |    6 
 drivers/media/platform/qcom/venus/hfi_parser.c                            |  100 +
 drivers/media/platform/qcom/venus/hfi_venus.c                             |   18 
 drivers/media/platform/rockchip/rga/rga-hw.c                              |    2 
 drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c                   |    5 
 drivers/media/platform/st/stm32/dma2d/dma2d.c                             |    3 
 drivers/media/rc/streamzap.c                                              |   68 -
 drivers/media/test-drivers/vim2m.c                                        |    6 
 drivers/media/test-drivers/visl/visl-core.c                               |   12 
 drivers/media/usb/uvc/uvc_driver.c                                        |    9 
 drivers/media/v4l2-core/v4l2-dv-timings.c                                 |    4 
 drivers/mfd/ene-kb3930.c                                                  |    2 
 drivers/misc/pci_endpoint_test.c                                          |    3 
 drivers/mmc/host/dw_mmc.c                                                 |   94 +
 drivers/mmc/host/dw_mmc.h                                                 |   27 
 drivers/mtd/inftlcore.c                                                   |    9 
 drivers/mtd/mtdpstore.c                                                   |   12 
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                                  |    2 
 drivers/mtd/nand/raw/r852.c                                               |    3 
 drivers/net/can/flexcan/flexcan-core.c                                    |   35 
 drivers/net/can/flexcan/flexcan.h                                         |    5 
 drivers/net/dsa/mv88e6xxx/chip.c                                          |   23 
 drivers/net/ethernet/google/gve/gve_ethtool.c                             |    4 
 drivers/net/ethernet/marvell/octeontx2/nic/qos.c                          |    5 
 drivers/net/ethernet/microsoft/mana/mana_en.c                             |   46 
 drivers/net/ethernet/wangxun/libwx/wx_lib.c                               |    3 
 drivers/net/phy/phy_device.c                                              |   57 -
 drivers/net/phy/sfp.c                                                     |   13 
 drivers/net/ppp/ppp_synctty.c                                             |    5 
 drivers/net/usb/asix_devices.c                                            |   17 
 drivers/net/usb/cdc_ether.c                                               |    7 
 drivers/net/usb/r8152.c                                                   |    6 
 drivers/net/usb/r8153_ecm.c                                               |    6 
 drivers/net/wireless/ath/ath11k/ahb.c                                     |    4 
 drivers/net/wireless/ath/ath11k/core.c                                    |    3 
 drivers/net/wireless/ath/ath11k/dp.c                                      |   35 
 drivers/net/wireless/ath/ath11k/fw.c                                      |    3 
 drivers/net/wireless/ath/ath11k/pci.c                                     |    3 
 drivers/net/wireless/ath/ath12k/dp_mon.c                                  |    2 
 drivers/net/wireless/ath/ath12k/dp_rx.c                                   |   42 
 drivers/net/wireless/ath/ath12k/pci.c                                     |    1 
 drivers/net/wireless/mediatek/mt76/eeprom.c                               |    4 
 drivers/net/wireless/mediatek/mt76/mt76.h                                 |    1 
 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c                      |    4 
 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c                           |    1 
 drivers/net/wireless/mediatek/mt76/mt7925/main.c                          |   16 
 drivers/net/wireless/mediatek/mt76/mt7925/mcu.c                           |    5 
 drivers/net/wireless/mediatek/mt76/mt7925/mcu.h                           |    4 
 drivers/ntb/ntb_transport.c                                               |    2 
 drivers/nvme/target/fcloop.c                                              |    2 
 drivers/of/irq.c                                                          |   80 -
 drivers/pci/controller/cadence/pci-j721e.c                                |    5 
 drivers/pci/controller/pcie-brcmstb.c                                     |   13 
 drivers/pci/controller/pcie-rockchip-host.c                               |    2 
 drivers/pci/controller/pcie-rockchip.h                                    |    1 
 drivers/pci/controller/vmd.c                                              |   12 
 drivers/pci/devres.c                                                      |   18 
 drivers/pci/hotplug/pciehp_core.c                                         |    5 
 drivers/pci/iomap.c                                                       |   29 
 drivers/pci/pci.c                                                         |    6 
 drivers/pci/pci.h                                                         |   16 
 drivers/pci/probe.c                                                       |   22 
 drivers/perf/arm_pmu.c                                                    |    8 
 drivers/perf/dwc_pcie_pmu.c                                               |   33 
 drivers/phy/freescale/phy-fsl-imx8m-pcie.c                                |   11 
 drivers/pinctrl/qcom/pinctrl-msm.c                                        |   12 
 drivers/pinctrl/samsung/pinctrl-exynos-arm64.c                            |   98 -
 drivers/pinctrl/samsung/pinctrl-exynos.h                                  |   22 
 drivers/pinctrl/samsung/pinctrl-samsung.c                                 |    1 
 drivers/pinctrl/samsung/pinctrl-samsung.h                                 |    4 
 drivers/platform/chrome/cros_ec_lpc.c                                     |   22 
 drivers/platform/x86/x86-android-tablets/Kconfig                          |    1 
 drivers/pwm/pwm-fsl-ftm.c                                                 |    6 
 drivers/pwm/pwm-mediatek.c                                                |    8 
 drivers/pwm/pwm-rcar.c                                                    |   24 
 drivers/s390/virtio/virtio_ccw.c                                          |   16 
 drivers/scsi/mpi3mr/mpi3mr.h                                              |   14 
 drivers/scsi/mpi3mr/mpi3mr_app.c                                          |   24 
 drivers/scsi/mpi3mr/mpi3mr_fw.c                                           |   99 +
 drivers/scsi/st.c                                                         |    2 
 drivers/soc/samsung/exynos-chipid.c                                       |    2 
 drivers/spi/spi-cadence-quadspi.c                                         |    6 
 drivers/target/target_core_spc.c                                          |    2 
 drivers/thermal/mediatek/lvts_thermal.c                                   |   52 
 drivers/thermal/rockchip_thermal.c                                        |    1 
 drivers/vdpa/mlx5/core/mr.c                                               |    7 
 drivers/video/backlight/led_bl.c                                          |    5 
 drivers/video/fbdev/omap2/omapfb/dss/dispc.c                              |    6 
 drivers/xen/balloon.c                                                     |   34 
 drivers/xen/xenfs/xensyms.c                                               |    4 
 fs/btrfs/disk-io.c                                                        |   12 
 fs/btrfs/extent-tree.c                                                    |    8 
 fs/btrfs/tests/extent-map-tests.c                                         |    1 
 fs/btrfs/transaction.c                                                    |   12 
 fs/btrfs/zoned.c                                                          |    6 
 fs/dlm/lock.c                                                             |    2 
 fs/erofs/fileio.c                                                         |    2 
 fs/ext4/inode.c                                                           |   68 -
 fs/ext4/namei.c                                                           |    2 
 fs/ext4/super.c                                                           |   17 
 fs/ext4/xattr.c                                                           |   11 
 fs/f2fs/checkpoint.c                                                      |   21 
 fs/f2fs/f2fs.h                                                            |   32 
 fs/f2fs/inode.c                                                           |    8 
 fs/f2fs/node.c                                                            |  110 -
 fs/f2fs/super.c                                                           |    4 
 fs/file.c                                                                 |   26 
 fs/jbd2/journal.c                                                         |    1 
 fs/jfs/jfs_dmap.c                                                         |   10 
 fs/jfs/jfs_imap.c                                                         |    4 
 fs/namespace.c                                                            |    3 
 fs/nfsd/nfs4callback.c                                                    |    2 
 fs/nfsd/nfsctl.c                                                          |    9 
 fs/nfsd/stats.c                                                           |    4 
 fs/nfsd/stats.h                                                           |    2 
 fs/smb/client/cifsencrypt.c                                               |   16 
 fs/smb/client/connect.c                                                   |    3 
 fs/smb/client/fs_context.c                                                |    5 
 fs/smb/client/inode.c                                                     |   10 
 fs/smb/client/reparse.c                                                   |    4 
 fs/smb/client/sess.c                                                      |    7 
 fs/smb/client/smb2misc.c                                                  |    9 
 fs/smb/client/smb2ops.c                                                   |    6 
 fs/smb/client/smb2pdu.c                                                   |   11 
 fs/udf/inode.c                                                            |    1 
 fs/userfaultfd.c                                                          |   51 
 include/drm/drm_kunit_helpers.h                                           |    3 
 include/drm/intel/i915_pciids.h                                           |    5 
 include/linux/cgroup-defs.h                                               |    1 
 include/linux/cgroup.h                                                    |    2 
 include/linux/hid.h                                                       |    6 
 include/linux/io_uring_types.h                                            |    3 
 include/linux/kvm_host.h                                                  |    2 
 include/linux/page-flags.h                                                |    6 
 include/linux/pci_ids.h                                                   |    2 
 include/linux/perf_event.h                                                |   45 
 include/linux/pgtable.h                                                   |   14 
 include/linux/printk.h                                                    |    6 
 include/linux/tpm.h                                                       |    1 
 include/net/bluetooth/hci.h                                               |   16 
 include/net/bluetooth/hci_core.h                                          |    4 
 include/net/mac80211.h                                                    |    6 
 include/net/sctp/structs.h                                                |    3 
 include/net/sock.h                                                        |   40 
 include/uapi/linux/kfd_ioctl.h                                            |    2 
 include/uapi/linux/landlock.h                                             |    2 
 include/uapi/linux/perf_event.h                                           |   11 
 include/uapi/linux/psp-sev.h                                              |   21 
 include/uapi/linux/rkisp1-config.h                                        |    2 
 include/xen/interface/xen-mca.h                                           |    2 
 io_uring/io_uring.c                                                       |    4 
 io_uring/kbuf.c                                                           |    2 
 io_uring/net.c                                                            |    3 
 kernel/cgroup/cgroup.c                                                    |    6 
 kernel/cgroup/cpuset.c                                                    |  176 +--
 kernel/events/core.c                                                      |  255 ++--
 kernel/events/internal.h                                                  |    1 
 kernel/locking/lockdep.c                                                  |    3 
 kernel/power/hibernate.c                                                  |    6 
 kernel/printk/printk.c                                                    |    4 
 kernel/reboot.c                                                           |    1 
 kernel/sched/ext.c                                                        |    4 
 kernel/trace/ftrace.c                                                     |    9 
 kernel/trace/ring_buffer.c                                                |    5 
 kernel/trace/trace_events.c                                               |    4 
 kernel/trace/trace_events_synth.c                                         |    1 
 kernel/trace/trace_fprobe.c                                               |   26 
 kernel/trace/trace_probe.c                                                |   28 
 lib/sg_split.c                                                            |    2 
 lib/zstd/common/portability_macros.h                                      |    2 
 mm/damon/ops-common.c                                                     |    2 
 mm/damon/paddr.c                                                          |   24 
 mm/hugetlb.c                                                              |    2 
 mm/memory-failure.c                                                       |   11 
 mm/memory_hotplug.c                                                       |    3 
 mm/mremap.c                                                               |   10 
 mm/page_vma_mapped.c                                                      |   13 
 mm/rmap.c                                                                 |    2 
 mm/shmem.c                                                                |    3 
 mm/vmscan.c                                                               |    2 
 net/8021q/vlan_dev.c                                                      |   31 
 net/bluetooth/hci_sync.c                                                  |    6 
 net/core/filter.c                                                         |   80 -
 net/core/page_pool.c                                                      |    8 
 net/core/page_pool_user.c                                                 |    2 
 net/core/sock.c                                                           |    5 
 net/ethtool/netlink.c                                                     |    8 
 net/ipv6/route.c                                                          |    8 
 net/mac80211/debugfs.c                                                    |   44 
 net/mac80211/iface.c                                                      |    5 
 net/mac80211/mesh_hwmp.c                                                  |   14 
 net/mac80211/mlme.c                                                       |   45 
 net/mptcp/sockopt.c                                                       |   28 
 net/mptcp/subflow.c                                                       |   19 
 net/netfilter/nft_set_pipapo_avx2.c                                       |    3 
 net/sched/cls_api.c                                                       |   66 -
 net/sched/sch_codel.c                                                     |    5 
 net/sched/sch_fq_codel.c                                                  |    6 
 net/sched/sch_sfq.c                                                       |   66 -
 net/sctp/socket.c                                                         |   22 
 net/sctp/transport.c                                                      |    2 
 net/sunrpc/xprtrdma/svc_rdma_transport.c                                  |    3 
 net/tipc/link.c                                                           |    1 
 net/tls/tls_main.c                                                        |    6 
 scripts/generate_builtin_ranges.awk                                       |    5 
 security/integrity/ima/ima.h                                              |    3 
 security/integrity/ima/ima_main.c                                         |   18 
 security/landlock/errata.h                                                |   99 +
 security/landlock/errata/abi-4.h                                          |   15 
 security/landlock/errata/abi-6.h                                          |   19 
 security/landlock/fs.c                                                    |   39 
 security/landlock/setup.c                                                 |   38 
 security/landlock/setup.h                                                 |    3 
 security/landlock/syscalls.c                                              |   22 
 security/landlock/task.c                                                  |   12 
 sound/pci/hda/hda_intel.c                                                 |   44 
 sound/pci/hda/patch_realtek.c                                             |   22 
 sound/soc/amd/ps/acp63.h                                                  |    1 
 sound/soc/amd/ps/pci-ps.c                                                 |    2 
 sound/soc/amd/yc/acp6x-mach.c                                             |   14 
 sound/soc/codecs/wcd937x.c                                                |    2 
 sound/soc/fsl/fsl_audmix.c                                                |   16 
 sound/soc/intel/common/soc-acpi-intel-adl-match.c                         |   29 
 sound/soc/qcom/qdsp6/q6apm-dai.c                                          |   60 -
 sound/soc/qcom/qdsp6/q6apm.c                                              |   18 
 sound/soc/qcom/qdsp6/q6apm.h                                              |    3 
 sound/soc/qcom/qdsp6/q6asm-dai.c                                          |   19 
 sound/soc/sof/topology.c                                                  |    4 
 sound/usb/midi.c                                                          |   80 +
 tools/lib/bpf/btf_dump.c                                                  |    4 
 tools/objtool/check.c                                                     |    5 
 tools/power/cpupower/bench/parse.c                                        |    4 
 tools/testing/ktest/ktest.pl                                              |    8 
 tools/testing/selftests/futex/functional/futex_wait_wouldblock.c          |    2 
 tools/testing/selftests/landlock/base_test.c                              |   46 
 tools/testing/selftests/landlock/common.h                                 |    1 
 tools/testing/selftests/landlock/scoped_signal_test.c                     |  108 +
 tools/testing/selftests/net/mptcp/mptcp_connect.c                         |   11 
 virt/kvm/Kconfig                                                          |    2 
 virt/kvm/eventfd.c                                                        |   10 
 383 files changed, 5034 insertions(+), 2068 deletions(-)

Aakarsh Jain (1):
media: s5p-mfc: Corrected NV12M/NV21M plane-sizes

Abel Vesa (2):
leds: rgb: leds-qcom-lpg: Fix pwm resolution max for Hi-Res PWMs
leds: rgb: leds-qcom-lpg: Fix calculation of best period Hi-Res PWMs

Abhinav Kumar (1):
drm: allow encoder mode_set even when connectors change for crtc

Adrian Hunter (1):
perf/core: Add aux_pause, aux_resume, aux_start_paused

Ajit Pandey (1):
clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks

Alain Volmat (1):
dt-bindings: media: st,stmipid02: correct lane-polarities maxItems

Alexander Aring (2):
dlm: fix error if inactive rsb is not hashed
dlm: fix error if active rsb is not hashed

Alexandra Diupina (1):
cifs: avoid NULL pointer dereference in dbg call

Alexandre Torgue (1):
clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup

Alexey Klimov (1):
ASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path

Aman (1):
CIFS: Propagate min offload along with other parameters from primary to secondary channels.

Amit Machhiwal (1):
KVM: PPC: Enable CAP_SPAPR_TCE_VFIO on pSeries KVM guests

Andrew Wyatt (5):
drm: panel-orientation-quirks: Add support for AYANEO 2S
drm: panel-orientation-quirks: Add quirks for AYA NEO Flip DS and KB
drm: panel-orientation-quirks: Add quirk for AYA NEO Slide
drm: panel-orientation-quirks: Add new quirk for GPD Win 2
drm: panel-orientation-quirks: Add quirk for OneXPlayer Mini (Intel)

Andy Chiu (1):
ftrace: Properly merge notrace hashes

Andy Shevchenko (1):
gpiolib: of: Fix the choice for Ingenic NAND quirk

AngeloGioacchino Del Regno (2):
drm/mediatek: mtk_dpi: Move the input_2p_en bit to platform data drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off

Arnaud Lecomte (1):
net: ppp: Add bound checking for skb data on ppp_sync_txmung

Arnd Bergmann (2):
media: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning
media: mediatek: vcodec: mark vdec_vp9_slice_map_counts_eob_coef noinline

Arseniy Krasnov (2):
Bluetooth: hci_uart: fix race during initialization
Bluetooth: hci_uart: Fix another race during initialization

Artem Sadovnikov (1):
ext4: fix off-by-one error in do_split

Ayush Jain (1):
ktest: Fix Test Failures Due to Missing LOG_FILE Directories

Badal Nilawar (1):
drm/i915: Disable RPG during live selftest

Bard Liao (1):
ASoC: Intel: adl: add 2xrt1316 audio configuration

Bhupesh (1):
ext4: ignore xattrs past end

Bingbu Cao (1):
media: intel/ipu6: set the dev_parent of video device to pdev

Birger Koblitz (1):
net: sfp: add quirk for 2.5G OEM BX SFP

Bjorn Helgaas (1):
PCI: Enable Configuration RRS SV early

Boqun Feng (1):
locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()

Boris Burkov (1):
btrfs: harden block_group::bg_list against list_del() races

Bryan O'Donoghue (2):
clk: qcom: gdsc: Release pm subdomains in reverse add order
clk: qcom: gdsc: Capture pm_genpd_add_subdomain result code

Chao Yu (3):
f2fs: don't retry IO for corrupted data scenario
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks() Revert "f2fs: rebuild nat_bits during umount"

Chaohai Chen (1):
scsi: target: spc: Fix RSOC parameter data header size

Chen-Yu Tsai (1):
arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string

Chenyuan Yang (3):
net: libwx: handle page_pool_dev_alloc_pages error
soc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe()
mfd: ene-kb3930: Fix a potential NULL pointer dereference

Christian König (1):
drm/amdgpu: grab an additional reference on the gang fence v2

Chuck Lever (1):
NFSD: Fix CB_GETATTR status fix

Ciprian Marian Costea (2):
can: flexcan: Add quirk to handle separate interrupt lines for mailboxes
can: flexcan: add NXP S32G2/S32G3 SoC support

Cong Liu (1):
selftests: mptcp: fix incorrect fd checks in main_loop

Cong Wang (1):

      codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()

Daniel Kral (1):
ahci: add PCI ID for Marvell 88SE9215 SATA Controller

Daniel Schaefer (1):
platform/chrome: cros_ec_lpc: Match on Framework ACPI device

Daniel Wagner (1):
nvmet-fcloop: swap list_add_tail arguments

Dave Stevenson (1):
media: imx219: Adjust PLL settings based on the number of MIPI lanes

David Hildenbrand (2):
mm/rmap: reject hugetlb folios in folio_make_device_exclusive() s390/virtio_ccw: Don't allocate/assign airqs for non-existing queues

David Yat Sin (1):
drm/amdkfd: clamp queue size to minimum

Dionna Glaze (1):
crypto: ccp - Fix uAPI definitions of PSP errors

Dmitry Baryshkov (1):
Bluetooth: qca: simplify WCN399x NVM loading

Douglas Anderson (6):
arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
arm64: cputype: Add MIDR_CORTEX_A76AE
arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists

Eder Zulian (1):
libbpf: Prevent compiler warnings/errors

Edward Adam Davis (2):
jfs: Prevent copying of nlink with value 0 from disk inode
jfs: add sanity check for agwidth in dbMount

Edward Liaw (1):
selftests/futex: futex_waitv wouldblock test should fail

Emily Deng (1):
drm/amdgpu: Fix the race condition for draining retry fault

Fedor Pchelkin (1):
ntb: use 64-bit arithmetic for the MSI doorbell mask

Filipe Manana (2):
btrfs: fix non-empty delayed iputs list on unmount due to compressed write workers
btrfs: tests: fix chunk map leak after failure to add it to the tree

Florian Westphal (1):
nft_set_pipapo: fix incorrect avx2 match of 5th field octet

Frederic Weisbecker (1):
perf: Fix hang while freeing sigtrap event

Gabriele Paoloni (1):
tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER

Gang Yan (1):
mptcp: fix NULL pointer in can_accept_new_subflow

Gavrilov Ilia (1):
wifi: mac80211: fix integer overflow in hwmp_route_info_get()

Geliang Tang (1):
selftests: mptcp: close fd_in before returning in main_loop

Greg Kroah-Hartman (1):

      Linux 6.12.24

Guixin Liu (1):
gpio: tegra186: fix resource handling in ACPI probe path

Haiyang Zhang (1):
net: mana: Switch to page pool for jumbo frames

Hans de Goede (2):
platform/x86: x86-android-tablets: Add select POWER_SUPPLY to Kconfig
media: hi556: Fix memory leak (on error) in hi556_check_hwcfg()

Haoxiang Li (3):
auxdisplay: hd44780: Fix an API misuse in hd44780.c
wifi: mt76: Add check for devm_kstrdup()
ASoC: codecs: wcd937x: fix a potential memory leak in wcd937x_soc_codec_probe()

Hariprasad Kelam (1):
octeontx2-pf: qos: fix VF root node parent queue index

Henry Martin (1):
ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()

Herve Codina (1):
backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()

Huacai Chen (1):
ahci: Marvell 88SE9215 controllers prefer DMA for ATAPI

Icenowy Zheng (1):
wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table

Ido Schimmel (1):
ipv6: Align behavior across nexthops during path selection

Ingo Molnar (1):
zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault

Jacek Lawrynowicz (3):
accel/ivpu: Fix PM related deadlocks in MS IOCTLs accel/ivpu: Fix warning in ivpu_ipc_send_receive_internal() accel/ivpu: Fix deadlock in ivpu_ms_cleanup()

Jackson.lee (4):
media: chips-media: wave5: Fix gray color on screen
media: chips-media: wave5: Avoid race condition in the interrupt handler
media: chips-media: wave5: Fix a hang after seeking
media: chips-media: wave5: Fix timeout while testing 10bit hevc fluster

Jake Hillion (1):
sched_ext: create_dsq: Return -EEXIST on duplicate request

Jakub Kicinski (1):
net: tls: explicitly disallow disconnect

Jan Beulich (1):
xenfs/xensyms: respect hypervisor's "next" indication

Jan Kara (2):
udf: Fix inode_getblk() return value
jbd2: remove wrong sb->s_sequence check

Janaki Ramaiah Thota (1):
Bluetooth: hci_qca: use the power sequencer for wcn6750

Jane Chu (1):
mm: make page_mapped_in_vma() hugetlb walk aware

Jann Horn (1):
ext4: don't treat fhandle lookup of ea_inode as FS corruption

Janusz Krzysztofik (1):
drm/i915/huc: Fix fence not released on early probe errors

Jason Xing (1):
page_pool: avoid infinite loop to schedule delayed worker

Jeff Hugo (1):
bus: mhi: host: Fix race between unprepare and queue_buf

Jeff Layton (1):
nfsd: don't ignore the return code of svc_proc_register()

Jens Axboe (1):
io_uring/kbuf: reject zero sized provided buffers

Jiande Lu (1):
Bluetooth: btusb: Add 2 HWIDs for MT7922

Jiasheng Jiang (4):
media: mediatek: vcodec: Fix a resource leak related to the scp device in FW initialization
media: platform: stm32: Add check for clk_enable()
mtd: Add check for devm_kcalloc()
mtd: Replace kcalloc() with devm_kcalloc()

Jinjiang Tu (1):
mm/hwpoison: introduce folio_contain_hwpoisoned_page() helper

Jo Van Bulck (1):
dm-integrity: fix non-constant-time tag verification

Johannes Berg (1):
wifi: mac80211: add strict mode disabling workarounds

Johannes Thumshirn (2):
btrfs: zoned: fix zone activation with missing devices
btrfs: zoned: fix zone finishing with missing devices

John Keeping (1):
media: rockchip: rga: fix rga offset lookup

Jonathan McDowell (3):
tpm, tpm_tis: Workaround failed command reception on Infineon devices
tpm: End any active auth session before shutdown
tpm, tpm_tis: Fix timeout handling when waiting for TPM status

Josh Poimboeuf (2):
objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()

Joshua Washington (1):
gve: handle overflow when reporting TX consumed descriptors

Kai Mäkisara (1):
scsi: st: Fix array overflow in st_setup()

Kaixin Wang (1):
HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition

Kamal Dasu (1):
mtd: rawnand: brcmnand: fix PM resume warning

Karina Yankevich (1):
media: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf()

Kartik Rajput (1):
mailbox: tegra-hsp: Define dimensioning masks in SoC data

Kaustabh Chakraborty (1):
mmc: dw_mmc: add a quirk for accessing 64-bit FIFOs in two halves

Kees Cook (1):
xen/mcelog: Add __nonstring annotations for unterminated strings

Keir Fraser (1):
arm64: mops: Do not dereference src reg for a set operation

Kiran K (1):
Bluetooth: btintel_pcie: Add device id of Whale Peak

Kirill A. Shutemov (1):
x86/paravirt: Move halt paravirt calls under CONFIG_PARAVIRT

Kris Van Hees (1):
kbuild: exclude .rodata.(cst|str)* when building ranges

Krzysztof Kozlowski (3):
dt-bindings: coresight: qcom,coresight-tpda: Fix too many 'reg'
dt-bindings: coresight: qcom,coresight-tpdm: Fix too many 'reg'
gpio: zynq: Fix wakeup source leaks on device unbind

Kunihiko Hayashi (1):
misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error

Kuniyuki Iwashima (1):
net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.

Lad Prabhakar (1):
clk: renesas: r9a07g043: Fix HP clock source for RZ/Five

Leonid Arapov (1):
fbdev: omapfb: Add 'plane' value check

Lizhi Xu (1):
PM: hibernate: Avoid deadlock in hibernate_compressor_param_set()

Lorenzo Stoakes (1):
mm/mremap: correctly handle partial mremap() of VMA starting at 0

Louis-Alexis Eyraud (1):
iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group

Lu Baolu (1):
iommu/vt-d: Fix possible circular locking dependency

Luca Ceresoli (2):
drm/debugfs: fix printk format for bridge index
drm/bridge: panel: forbid initializing a panel with unknown connector type

Lucas De Marchi (1):
drivers: base: devres: Allow to release group on device release

Lukas Wunner (1):
PCI: pciehp: Avoid unnecessary device replacement check

Ma Ke (2):
PCI: Fix reference leak in pci_alloc_child_bus()
PCI: Fix reference leak in pci_register_host_bridge()

Manish Dharanenthiran (1):
wifi: ath12k: Fix invalid data access in ath12k_dp_rx_h_undecap_nwifi

Manjunatha Venkatesh (1):
i3c: Add NULL pointer check in i3c_master_queue_ibi()

Marc Herbert (1):
mm/hugetlb: move hugetlb_sysctl_init() to the __init section

Marek Behún (2):
net: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family
net: dsa: mv88e6xxx: fix internal PHYs for 6320 family

Marek Szyprowski (1):
iommu/exynos: Fix suspend/resume with IDENTITY domain

Mark Rutland (1):
perf: arm_pmu: Don't disable counter in armpmu_add()

Martin Schiller (1):
net: sfp: add quirk for FS SFP-10GM-T copper SFP+ module

Martin Tůma (2):
media: mgb4: Fix CMT registers update logic
media: mgb4: Fix switched CMT frequency range "magic values" sets

Masami Hiramatsu (Google) (2):
tracing: probe-events: Add comments about entry data storing code
tracing: fprobe events: Fix possible UAF on modules

Mateusz Guzik (1):
fs: consistently deref the files table with rcu_dereference_raw()

Mathieu Desnoyers (1):
mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock

Matthew Majewski (1):
media: vim2m: print device name after registering device

Matthew Wilcox (Oracle) (1):
x86/mm: Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW

Matthieu Baerts (NGI0) (3):
mptcp: sockopt: fix getting IPV6_V6ONLY
mptcp: sockopt: fix getting freebind & transparent
mptcp: only inc MPJoinAckHMacFailure for HMAC failures

Max Grobecker (1):
x86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine

Max Schulze (1):
net: usb: asix_devices: add FiberGecko DeviceID

Maxim Mikityanskiy (2):
ALSA: hda: intel: Fix Optimus when GPU has no sound
ALSA: hda: intel: Add Lenovo IdeaPad Z570 to probe denylist

Maxime Chevallier (1):
net: ethtool: Don't call .cleanup_data when prepare_data fails

Maxime Ripard (5):
drm/tests: modeset: Fix drm_display_mode memory leak drm/tests: helpers: Create kunit helper to destroy a drm_display_mode drm/tests: cmdline: Fix drm_display_mode memory leak drm/tests: modes: Fix drm_display_mode memory leak drm/tests: probe-helper: Fix drm_display_mode memory leak

Miaoqing Pan (2):
wifi: ath11k: fix memory leak in ath11k_xxx_remove()
wifi: ath12k: fix memory leak in ath12k_pci_remove()

Michal Wajdeczko (1):
drm/xe/vf: Don't try to trigger a full GT reset if VF

Mickaël Salaün (7):
landlock: Move code to ease future backports
landlock: Add the errata interface
landlock: Add erratum for TCP fix
landlock: Always allow signals between threads of the same process
landlock: Prepare to add second errata selftests/landlock: Split signal_scoping_threads tests selftests/landlock: Add a new test for setuid()

Mike Katsnelson (1):
drm/amd/display: stop DML2 from removing pipes based on planes

Mikulas Patocka (3):
dm-ebs: fix prefetch-vs-suspend race
dm-integrity: set ti->error on memory allocation failure
dm-verity: fix prefetch-vs-suspend race

Mimi Zohar (2):
ima: limit the number of open-writers integrity violations
ima: limit the number of ToMToU integrity violations

Ming Lei (1):
ublk: fix handling recovery & reissue in ublk_abort_queue()

Ming Yen Hsieh (4):
wifi: mt76: mt7925: ensure wow pattern command align fw format
wifi: mt76: mt7925: fix country count limitation for CLC
wifi: mt76: mt7925: fix the wrong link_idx when a p2p_device is present
wifi: mt76: mt7925: fix the wrong simultaneous cap for MLO

Miquel Raynal (1):
spi: cadence-qspi: Fix probe on AM62A LP SK

Miri Korenblit (1):

      wifi: mac80211: ensure sdata->work is canceled before initialized.

Murad Masimov (1):
media: streamzap: prevent processing IR data on URB failure

Myrrh Periwinkle (1):
x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions()

Nathan Chancellor (2):
ACPI: platform-profile: Fix CFI violation when accessing sysfs files
kbuild: Add '-fno-builtin-wcslen'

Nicolas Dufresne (1):
media: visl: Fix ERANGE error when setting enum controls

Nicolin Chen (3):
iommufd: Fix uninitialized rc in iommufd_access_rw() iommu/tegra241-cmdqv: Fix warnings due to dmam_free_coherent()
iommufd: Make attach_handle generic than fault specific

Niklas Cassel (2):
ata: libata-core: Add 'external' to the libata.force kernel parameter
ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode

Niklas Schnelle (2):
s390/pci: Fix s390_mmio_read/write syscall page fault handling s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs

Niklas Söderlund (2):
media: uapi: rkisp1-config: Fix typo in extensible params example
media: i2c: adv748x: Fix test pattern selection mask

Ninad Malwade (1):
arm64: tegra: Remove the Orin NX/Nano suspend key

Nícolas F. R. A. Prado (2):
thermal/drivers/mediatek/lvts: Disable monitor mode during suspend thermal/drivers/mediatek/lvts: Disable Stage 3 thermal threshold

Octavian Purdila (2):
net_sched: sch_sfq: use a temporary work area for validating configuration
net_sched: sch_sfq: move the limit validation

Ojaswin Mujoo (1):
ext4: protect ext4_release_dquot against freezing

Olga Kornievskaia (2):
svcrdma: do not unregister device for listeners
NFSD: fix decoding in nfs4_xdr_dec_cb_getattr

P Praneesh (2):
wifi: ath11k: Fix DMA buffer allocation to resolve SWIOTLB issues
wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process

Pali Rohár (1):
cifs: Ensure that all non-client-specific reparse points are processed by the server

Paul E. McKenney (1):
Flush console log from kernel_power_off()

Paulo Alcantara (1):
smb: client: fix UAF in decryption with multichannel

Pavel Begunkov (3):
net: page_pool: don't cast mp param to devmem io_uring/net: fix accept multishot handling io_uring/net: fix io_req_post_cqe abuse by send bundle

Pedro Nishiyama (2):
Bluetooth: Add quirk for broken READ_VOICE_SETTING
Bluetooth: Add quirk for broken READ_PAGE_SCAN_TYPE

Peter Griffin (2):
arm64: dts: exynos: gs101: disable pinctrl_gsacore node
pinctrl: samsung: add support for eint_fltcon_offset

Peter Xu (1):
mm/userfaultfd: fix release hang over concurrent GUP

Peter Zijlstra (1):
perf/core: Simplify the perf_event_alloc() error path

Petr Vaněk (1):
x86/acpi: Don't limit CPUs to 1 for Xen PV guests due to disabled ACPI

Philip Yang (4):
drm/amdgpu: Unlocked unmap only clear page table leaves drm/amdkfd: Fix mode1 reset crash issue drm/amdkfd: Fix pqm_destroy_queue race with GPU reset drm/amdkfd: debugfs hang_hws skip GPU with MES

Philipp Hahn (1):
cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk

Philipp Stanner (2):
PCI: Check BAR index for validity
PCI: Fix wrong length of devres array

Rand Deeb (2):
fs/jfs: cast inactags to s64 to prevent potential overflow fs/jfs: Prevent integer overflow in AG size calculation

Ranjan Kumar (2):
scsi: mpi3mr: Avoid reply queue full condition
scsi: mpi3mr: Synchronous access b/w reset and tm thread for reply queue

Ricard Wanderlof (1):
ALSA: usb-audio: Fix CME quirk for UF series keyboards

Ricardo Cañuelo Navarro (1):
sctp: detect and prevent references to a freed transport in sendmsg

Ricardo Ribalda (3):
media: uvcvideo: Add quirk for Actions UVC05
media: nuvoton: Fix reference handling of ece_node
media: nuvoton: Fix reference handling of ece_pdev

Roger Pau Monne (1):
x86/xen: fix balloon target initialization for PVH dom0

Roman Smirnov (1):
cifs: fix integer overflow in match_server()

Ryan Roberts (3):
sparc/mm: disable preemption in lazy mmu mode sparc/mm: avoid calling arch_enter/leave_lazy_mmu() in set_ptes
mm: fix lazy mmu docs and usage

Ryo Takakura (1):
PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type

Sakari Ailus (8):
Revert "media: imx214: Fix the error handling in imx214_probe()"
media: i2c: ccs: Set the device's runtime PM status correctly in remove
media: i2c: ccs: Set the device's runtime PM status correctly in probe
media: i2c: ov7251: Set enable GPIO low in probe
media: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO
media: i2c: imx319: Rectify runtime PM handling probe and remove
media: i2c: imx219: Rectify runtime PM handling in probe and remove
media: i2c: imx214: Rectify probe error handling related to runtime PM

Sean Christopherson (6):
iommu/vt-d: Put IRTE back into posted MSI mode if vCPU posting is disabled iommu/vt-d: Don't clobber posted vCPU IRTE when host IRQ affinity changes iommu/vt-d: Wire up irq_ack() to irq_move_irq() for posted MSIs
KVM: Allow building irqbypass.ko as as module when kvm.ko is a module
KVM: x86: Explicitly zero-initialize on-stack CPUID unions
KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses

Sharan Kumar M (1):

      ALSA: hda/realtek: Enable Mute LED on HP OMEN 16 Laptop xd000xx

Shawn Lin (1):
PCI: Add Rockchip Vendor ID

Shekhar Chauhan (1):
drm/xe/bmg: Add new PCI IDs

Sheng Yong (1):
erofs: set error to bio if file-backed IO fails

Shengjiu Wang (1):
ASoC: fsl_audmix: register card device depends on 'dais' property

Shuai Xue (1):
mm/hwpoison: do not send SIGBUS to processes with recovered clean pages

Si-Wei Liu (1):
vdpa/mlx5: Fix oversized null mkey longer than 32bit

Siddharth Vadapalli (1):
PCI: j721e: Fix the value of .linkdown_irq_regfield for J784S4

Srinivas Kandagatla (5):
ASoC: q6apm: add q6apm_get_hw_pointer helper
ASoC: q6apm-dai: schedule all available frames to avoid dsp under-runs
ASoC: q6apm-dai: make use of q6apm_get_hw_pointer
ASoC: qdsp6: q6apm-dai: set 10 ms period and buffer alignment.
ASoC: qdsp6: q6apm-dai: fix capture pipeline overruns.

Stanimir Varbanov (1):
PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()

Stanislav Fomichev (1):
net: vlan: don't propagate flags on open

Stanley Chu (1):
i3c: master: svc: Use readsb helper for reading MDB

Stefan Eichenberger (1):
phy: freescale: imx8m-pcie: assert phy reset and perst in power off

Stephan Gerhold (1):
pinctrl: qcom: Clear latched interrupt status when changing IRQ type

Steve French (1):
smb311 client: fix missing tcon check when mounting with linux/posix extensions

Steven Rostedt (2):
tracing: Do not add length to print format in synthetic events
ring-buffer: Use flush_kernel_vmap_range() over flush_dcache_folio()

Sumanth Korikkar (1):
s390: Fix linker error when -no-pie option is unavailable

Syed Saba kareem (1):
ASoC: amd: yc: update quirk data for new Lenovo model

T Pratham (1):
lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets

Taniya Das (1):
clk: qcom: gdsc: Set retain_ff before moving to HW CTRL

Tejas Upadhyay (1):
drm/xe/hw_engine: define sysfs_ops on all directories

Thadeu Lima de Souza Cascardo (1):
tpm: do not start chip while suspended

Thomas Richter (1):
s390/cpumf: Fix double free on error in cpumf_pmu_event_init()

Toke Høiland-Jørgensen (1):
tc: Ensure we have enough buffer space when sending filter netlink notifications

Tom Lendacky (1):
crypto: ccp - Fix check for the primary ASP device

Tomasz Pakuła (31):
HID: pidff: Convert infinite length from Linux API to PID standard
HID: pidff: Do not send effect envelope if it's empty
HID: pidff: Add MISSING_DELAY quirk and its detection
HID: pidff: Add MISSING_PBO quirk and its detection
HID: pidff: Add PERMISSIVE_CONTROL quirk
HID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol
HID: pidff: Add FIX_WHEEL_DIRECTION quirk
HID: Add hid-universal-pidff driver and supported device ids
HID: pidff: Add PERIODIC_SINE_ONLY quirk
HID: pidff: Fix null pointer dereference in pidff_find_fields
HID: pidff: Clamp PERIODIC effect period to device's logical range
HID: pidff: Stop all effects before enabling actuators
HID: pidff: Completely rework and fix pidff_reset function
HID: pidff: Simplify pidff_upload_effect function
HID: pidff: Define values used in pidff_find_special_fields
HID: pidff: Rescale time values to match field units
HID: pidff: Factor out code for setting gain
HID: pidff: Move all hid-pidff definitions to a dedicated header
HID: pidff: Simplify pidff_rescale_signed
HID: pidff: Use macros instead of hardcoded min/max values for shorts
HID: pidff: Factor out pool report fetch and remove excess declaration
HID: pidff: Make sure to fetch pool before checking SIMULTANEOUS_MAX
HID: hid-universal-pidff: Add Asetek wheelbases support
HID: pidff: Comment and code style update
HID: pidff: Support device error response from PID_BLOCK_LOAD
HID: pidff: Remove redundant call to pidff_find_special_keys
HID: pidff: Rename two functions to align them with naming convention
HID: pidff: Clamp effect playback LOOP_COUNT value
HID: pidff: Compute INFINITE value instead of using hardcoded 0xffff
HID: pidff: Fix 90 degrees direction name North -> East
HID: pidff: Fix set_device_control()

Trevor Woerner (1):
thermal/drivers/rockchip: Add missing rk3328 mapping entry

Trond Myklebust (1):
umount: Allow superblock owners to force umount

Tung Nguyen (1):
tipc: fix memory leak in tipc_link_xmit

Tvrtko Ursulin (1):
drm/xe/xelp: Move Wa_16011163337 from tunings to workarounds

Uday Shankar (1):
ublk: refactor recovery configuration flag helpers

Uros Bizjak (1):
x86/percpu: Disable named address spaces for UBSAN_BOOL with KASAN for GCC < 14.2

Usama Arif (1):
mm/damon/ops: have damon_get_folio return folio even for tail pages

Uwe Kleine-König (2):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0

Vijendar Mukunda (1):
ASoC: amd: ps: use macro for ACP6.3 pci revision id

Vikash Garodia (4):
media: venus: hfi: add a check to handle OOB in sfr region
media: venus: hfi: add check to handle incorrect queue size
media: venus: hfi_parser: add check to avoid out of bound access
media: venus: hfi_parser: refactor hfi packet parsing logic

Vladimir Oltean (2):
net: phy: move phy_link_change() prior to mdio_bus_phy_may_suspend()
net: phy: allow MDIO bus PM ops to start/stop state machine for phylink-controlled PHY

Waiman Long (6):
cgroup/cpuset: Fix incorrect isolated_cpus update in update_parent_effective_cpumask() cgroup/cpuset: Fix error handling in remote_partition_disable() cgroup/cpuset: Revert "Allow suppression of sched domain rebuild in update_cpumasks_hier()" cgroup/cpuset: Enforce at most one rebuild_sched_domains_locked() call per operation cgroup/cpuset: Further optimize code if CONFIG_CPUSETS_V1 not set cgroup/cpuset: Fix race between newly created partition and dying one

Wentao Liang (4):
ata: sata_sx4: Add error handling in pdc20621_i2c_read() drm/amdgpu: handle amdgpu_cgs_create_device() errors in amd_powerplay_create()
mtd: inftlcore: Add error check for inftl_read_oob()
mtd: rawnand: Add status chack in r852_ready()

Will Deacon (1):
KVM: arm64: Tear down vGIC on failed vCPU creation

Willem de Bruijn (1):
bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags

Xin Li (Intel) (1):
x86/ia32: Leave NULL selector values 0~3 unchanged

Yeongjin Gil (1):
f2fs: fix to avoid atomicity corruption of atomic file

Yi Liu (1):
iommufd: Fail replace if device has not been attached

Yuan Can (1):
media: siano: Fix error handling in smsdvb_module_init()

Yunhui Cui (1):
perf/dwc_pcie: fix some unreleased resources

Zhang Heng (1):
ASoC: SOF: topology: Use krealloc_array() to replace krealloc()

Zhenhua Huang (1):
arm64: mm: Correct the update of max_pfn

Zhikai Zhai (1):
drm/amd/display: Update Cursor request mode to the beginning prefetch always

Zhongqiu Han (2):
pm: cpupower: bench: Prevent NULL dereference on malloc failure
jfs: Fix uninit-value access of imap allocated in the diMount() function

Zijun Hu (5):
of/irq: Fix device node refcount leakage in API of_irq_parse_one() of/irq: Fix device node refcount leakage in API of_irq_parse_raw() of/irq: Fix device node refcount leakages in of_irq_count() of/irq: Fix device node refcount leakage in API irq_of_parse_and_map() of/irq: Fix device node refcount leakages in of_irq_init()

keenplify (1):
ASoC: amd: Add DMI quirk for ACP6X mic support

zhoumin (1):
ftrace: Add cond_resched() to ftrace_graph_set_hash()

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +2 -0
index d401577b5a6a..607a8937f175 100644
@@ -3028,6 +3028,8 @@
 			* max_sec_lba48: Set or clear transfer size limit to
 			  65535 sectors.
 
+			* external: Mark port as external (hotplug-capable).
+
 			* [no]lpm: Enable or disable link power management.
 
 			* [no]setxfer: Indicate if transfer speed mode setting
Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml +1 -2
index 76163abed655..5ed40f21b8eb 100644
@@ -55,8 +55,7 @@ properties:
       - const: arm,primecell
 
   reg:
-    minItems: 1
-    maxItems: 2
+    maxItems: 1
 
   clocks:
     maxItems: 1
Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml +1 -2
index 8eec07d9d454..07d21a3617f5 100644
@@ -41,8 +41,7 @@ properties:
       - const: arm,primecell
 
   reg:
-    minItems: 1
-    maxItems: 2
+    maxItems: 1
 
   qcom,dsb-element-bits:
     description:
Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml +1 -1
index b68141264c0e..4d40e75b4e1e 100644
@@ -71,7 +71,7 @@ properties:
                 description:
                   Any lane can be inverted or not.
                 minItems: 1
-                maxItems: 2
+                maxItems: 3
 
             required:
               - data-lanes
Makefile +4 -1
index 6a2a60eb67a3..e1fa425089c2 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 12
-SUBLEVEL = 23
+SUBLEVEL = 24
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -1013,6 +1013,9 @@ ifdef CONFIG_CC_IS_GCC
 KBUILD_CFLAGS   += -fconserve-stack
 endif
 
+# Ensure compilers do not transform certain loops into calls to wcslen()
+KBUILD_CFLAGS += -fno-builtin-wcslen
+
 # change __FILE__ to the relative path from the srctree
 KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
 
arch/arm64/boot/dts/exynos/google/gs101.dtsi +1 -0
index 302c5beb224a..b8f8255f840b 100644
@@ -1451,6 +1451,7 @@ pinctrl_gsacore: pinctrl@17a80000 {
 			/* TODO: update once support for this CMU exists */
 			clocks = <0>;
 			clock-names = "pclk";
+			status = "disabled";
 		};
 
 		cmu_top: clock-controller@1e080000 {
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -4
index 3458be7f7f61..f49ec7495906 100644
@@ -1255,8 +1255,7 @@ dpi0_out: endpoint {
 		};
 
 		pwm0: pwm@1401e000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401e000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM026M>,
@@ -1266,8 +1265,7 @@ pwm0: pwm@1401e000 {
 		};
 
 		pwm1: pwm@1401f000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401f000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM126M>,
arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi +0 -7
index 19340d13f789..41821354bbda 100644
@@ -227,13 +227,6 @@ key-power {
 			wakeup-event-action = <EV_ACT_ASSERTED>;
 			wakeup-source;
 		};
-
-		key-suspend {
-			label = "Suspend";
-			gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
-			linux,input-type = <EV_KEY>;
-			linux,code = <KEY_SLEEP>;
-		};
 	};
 
 	fan: pwm-fan {
arch/arm64/include/asm/cputype.h +4 -0
index 488f8e751349..2a4e686e633c 100644
@@ -75,6 +75,7 @@
 #define ARM_CPU_PART_CORTEX_A76		0xD0B
 #define ARM_CPU_PART_NEOVERSE_N1	0xD0C
 #define ARM_CPU_PART_CORTEX_A77		0xD0D
+#define ARM_CPU_PART_CORTEX_A76AE	0xD0E
 #define ARM_CPU_PART_NEOVERSE_V1	0xD40
 #define ARM_CPU_PART_CORTEX_A78		0xD41
 #define ARM_CPU_PART_CORTEX_A78AE	0xD42
@@ -119,6 +120,7 @@
 #define QCOM_CPU_PART_KRYO		0x200
 #define QCOM_CPU_PART_KRYO_2XX_GOLD	0x800
 #define QCOM_CPU_PART_KRYO_2XX_SILVER	0x801
+#define QCOM_CPU_PART_KRYO_3XX_GOLD	0x802
 #define QCOM_CPU_PART_KRYO_3XX_SILVER	0x803
 #define QCOM_CPU_PART_KRYO_4XX_GOLD	0x804
 #define QCOM_CPU_PART_KRYO_4XX_SILVER	0x805
@@ -158,6 +160,7 @@
 #define MIDR_CORTEX_A76	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
 #define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
 #define MIDR_CORTEX_A77	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
+#define MIDR_CORTEX_A76AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE)
 #define MIDR_NEOVERSE_V1	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
 #define MIDR_CORTEX_A78	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
 #define MIDR_CORTEX_A78AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
@@ -195,6 +198,7 @@
 #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
 #define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)
 #define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER)
+#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD)
 #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
 #define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
arch/arm64/include/asm/spectre.h +0 -1
index 0c4d9045c31f..f1524cdeacf1 100644
@@ -97,7 +97,6 @@ enum mitigation_state arm64_get_meltdown_state(void);
 
 enum mitigation_state arm64_get_spectre_bhb_state(void);
 bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
-u8 spectre_bhb_loop_affected(int scope);
 void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
 bool try_emulate_el1_ssbs(struct pt_regs *regs, u32 instr);
 
arch/arm64/include/asm/traps.h +2 -2
index d780d1bd2eac..82cf1f879c61 100644
@@ -109,10 +109,9 @@ static inline void arm64_mops_reset_regs(struct user_pt_regs *regs, unsigned lon
 	int dstreg = ESR_ELx_MOPS_ISS_DESTREG(esr);
 	int srcreg = ESR_ELx_MOPS_ISS_SRCREG(esr);
 	int sizereg = ESR_ELx_MOPS_ISS_SIZEREG(esr);
-	unsigned long dst, src, size;
+	unsigned long dst, size;
 
 	dst = regs->regs[dstreg];
-	src = regs->regs[srcreg];
 	size = regs->regs[sizereg];
 
 	/*
@@ -129,6 +128,7 @@ static inline void arm64_mops_reset_regs(struct user_pt_regs *regs, unsigned lon
 		}
 	} else {
 		/* CPY* instruction */
+		unsigned long src = regs->regs[srcreg];
 		if (!(option_a ^ wrong_option)) {
 			/* Format is from Option B */
 			if (regs->pstate & PSR_N_BIT) {
arch/arm64/kernel/proton-pack.c +118 -100

281 lines not on this page · raw message

arch/arm64/kvm/arm.c +5 -1
index 634d3f624818..7d301da8ff28 100644
@@ -493,7 +493,11 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 	if (err)
 		return err;
 
-	return kvm_share_hyp(vcpu, vcpu + 1);
+	err = kvm_share_hyp(vcpu, vcpu + 1);
+	if (err)
+		kvm_vgic_vcpu_destroy(vcpu);
+
+	return err;
 }
 
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
arch/arm64/mm/mmu.c +2 -1
index e59c628c93f2..9bcd51fd67d4 100644
@@ -1360,7 +1360,8 @@ int arch_add_memory(int nid, u64 start, u64 size,
 		__remove_pgd_mapping(swapper_pg_dir,
 				     __phys_to_virt(start), size);
 	else {
-		max_pfn = PFN_UP(start + size);
+		/* Address of hotplugged memory can be smaller */
+		max_pfn = max(max_pfn, PFN_UP(start + size));
 		max_low_pfn = max_pfn;
 	}
 
arch/powerpc/kvm/powerpc.c +1 -4
index f14329989e9a..4b6ce4f07bc2 100644
@@ -550,12 +550,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 
 #ifdef CONFIG_PPC_BOOK3S_64
 	case KVM_CAP_SPAPR_TCE:
+		fallthrough;
 	case KVM_CAP_SPAPR_TCE_64:
-		r = 1;
-		break;
 	case KVM_CAP_SPAPR_TCE_VFIO:
-		r = !!cpu_has_feature(CPU_FTR_HVMODE);
-		break;
 	case KVM_CAP_PPC_RTAS:
 	case KVM_CAP_PPC_FIXUP_HCALL:
 	case KVM_CAP_PPC_ENABLE_HCALL:
arch/s390/Makefile +1 -1
index 9b7720932787..5b97af311709 100644
@@ -15,7 +15,7 @@ KBUILD_CFLAGS_MODULE += -fPIC
 KBUILD_AFLAGS	+= -m64
 KBUILD_CFLAGS	+= -m64
 KBUILD_CFLAGS	+= -fPIC
-LDFLAGS_vmlinux	:= -no-pie --emit-relocs --discard-none
+LDFLAGS_vmlinux	:= $(call ld-option,-no-pie) --emit-relocs --discard-none
 extra_tools	:= relocs
 aflags_dwarf	:= -Wa,-gdwarf-2
 KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
arch/s390/kernel/perf_cpum_cf.c +1 -8
index c3075e4a8efc..6d6b057b562f 100644
@@ -858,18 +858,13 @@ static int cpumf_pmu_event_type(struct perf_event *event)
 static int cpumf_pmu_event_init(struct perf_event *event)
 {
 	unsigned int type = event->attr.type;
-	int err;
+	int err = -ENOENT;
 
 	if (type == PERF_TYPE_HARDWARE || type == PERF_TYPE_RAW)
 		err = __hw_perf_event_init(event, type);
 	else if (event->pmu->type == type)
 		/* Registered as unknown PMU */
 		err = __hw_perf_event_init(event, cpumf_pmu_event_type(event));
-	else
-		return -ENOENT;
-
-	if (unlikely(err) && event->destroy)
-		event->destroy(event);
 
 	return err;
 }
@@ -1819,8 +1814,6 @@ static int cfdiag_event_init(struct perf_event *event)
 	event->destroy = hw_perf_event_destroy;
 
 	err = cfdiag_event_init2(event);
-	if (unlikely(err))
-		event->destroy(event);
 out:
 	return err;
 }
arch/s390/kernel/perf_cpum_sf.c +0 -3
index 331e0654d61d..efdd6ead7ba8 100644
@@ -898,9 +898,6 @@ static int cpumsf_pmu_event_init(struct perf_event *event)
 		event->attr.exclude_idle = 0;
 
 	err = __hw_perf_event_init(event);
-	if (unlikely(err))
-		if (event->destroy)
-			event->destroy(event);
 	return err;
 }
 
arch/s390/pci/pci_bus.c +3 -0
index c38546829345..23c27c632013 100644
@@ -335,6 +335,9 @@ static bool zpci_bus_is_isolated_vf(struct zpci_bus *zbus, struct zpci_dev *zdev
 {
 	struct pci_dev *pdev;
 
+	if (!zdev->vfn)
+		return false;
+
 	pdev = zpci_iov_find_parent_pf(zbus, zdev);
 	if (!pdev)
 		return true;
arch/s390/pci/pci_mmio.c +13 -5
index de5c0b389a3e..4779c3cb6cfa 100644
@@ -171,8 +171,12 @@ SYSCALL_DEFINE3(s390_pci_mmio_write, unsigned long, mmio_addr,
 	args.address = mmio_addr;
 	args.vma = vma;
 	ret = follow_pfnmap_start(&args);
-	if (ret)
-		goto out_unlock_mmap;
+	if (ret) {
+		fixup_user_fault(current->mm, mmio_addr, FAULT_FLAG_WRITE, NULL);
+		ret = follow_pfnmap_start(&args);
+		if (ret)
+			goto out_unlock_mmap;
+	}
 
 	io_addr = (void __iomem *)((args.pfn << PAGE_SHIFT) |
 			(mmio_addr & ~PAGE_MASK));
@@ -305,14 +309,18 @@ SYSCALL_DEFINE3(s390_pci_mmio_read, unsigned long, mmio_addr,
 	if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)))
 		goto out_unlock_mmap;
 	ret = -EACCES;
-	if (!(vma->vm_flags & VM_WRITE))
+	if (!(vma->vm_flags & VM_READ))
 		goto out_unlock_mmap;
 
 	args.vma = vma;
 	args.address = mmio_addr;
 	ret = follow_pfnmap_start(&args);
-	if (ret)
-		goto out_unlock_mmap;
+	if (ret) {
+		fixup_user_fault(current->mm, mmio_addr, 0, NULL);
+		ret = follow_pfnmap_start(&args);
+		if (ret)
+			goto out_unlock_mmap;
+	}
 
 	io_addr = (void __iomem *)((args.pfn << PAGE_SHIFT) |
 			(mmio_addr & ~PAGE_MASK));
arch/sparc/include/asm/pgtable_64.h +0 -2
index 2b7f358762c1..dc28f2c4eee3 100644
@@ -936,7 +936,6 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
 static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
 		pte_t *ptep, pte_t pte, unsigned int nr)
 {
-	arch_enter_lazy_mmu_mode();
 	for (;;) {
 		__set_pte_at(mm, addr, ptep, pte, 0);
 		if (--nr == 0)
@@ -945,7 +944,6 @@ static inline void set_ptes(struct mm_struct *mm, unsigned long addr,
 		pte_val(pte) += PAGE_SIZE;
 		addr += PAGE_SIZE;
 	}
-	arch_leave_lazy_mmu_mode();
 }
 #define set_ptes set_ptes
 
arch/sparc/mm/tlb.c +4 -1
index 8648a50afe88..a35ddcca5e76 100644
@@ -52,8 +52,10 @@ void flush_tlb_pending(void)
 
 void arch_enter_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
+	struct tlb_batch *tb;
 
+	preempt_disable();
+	tb = this_cpu_ptr(&tlb_batch);
 	tb->active = 1;
 }
 
@@ -64,6 +66,7 @@ void arch_leave_lazy_mmu_mode(void)
 	if (tb->tlb_nr)
 		flush_tlb_pending();
 	tb->active = 0;
+	preempt_enable();
 }
 
 static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
arch/x86/Kconfig +11 -9
index db38d2b9b788..e54da3b4d334 100644
@@ -2434,18 +2434,20 @@ config CC_HAS_NAMED_AS
 	def_bool $(success,echo 'int __seg_fs fs; int __seg_gs gs;' | $(CC) -x c - -S -o /dev/null)
 	depends on CC_IS_GCC
 
+#
+# -fsanitize=kernel-address (KASAN) and -fsanitize=thread (KCSAN)
+# are incompatible with named address spaces with GCC < 13.3
+# (see GCC PR sanitizer/111736 and also PR sanitizer/115172).
+#
+
 config CC_HAS_NAMED_AS_FIXED_SANITIZERS
-	def_bool CC_IS_GCC && GCC_VERSION >= 130300
+	def_bool y
+	depends on !(KASAN || KCSAN) || GCC_VERSION >= 130300
+	depends on !(UBSAN_BOOL && KASAN) || GCC_VERSION >= 140200
 
 config USE_X86_SEG_SUPPORT
-	def_bool y
-	depends on CC_HAS_NAMED_AS
-	#
-	# -fsanitize=kernel-address (KASAN) and -fsanitize=thread
-	# (KCSAN) are incompatible with named address spaces with
-	# GCC < 13.3 - see GCC PR sanitizer/111736.
-	#
-	depends on !(KASAN || KCSAN) || CC_HAS_NAMED_AS_FIXED_SANITIZERS
+	def_bool CC_HAS_NAMED_AS
+	depends on CC_HAS_NAMED_AS_FIXED_SANITIZERS
 
 config CC_HAS_SLS
 	def_bool $(cc-option,-mharden-sls=all)
arch/x86/include/asm/irqflags.h +22 -18
index cf7fc2b8e3ce..1c2db11a2c3c 100644
@@ -76,6 +76,28 @@ static __always_inline void native_local_irq_restore(unsigned long flags)
 
 #endif
 
+#ifndef CONFIG_PARAVIRT
+#ifndef __ASSEMBLY__
+/*
+ * Used in the idle loop; sti takes one instruction cycle
+ * to complete:
+ */
+static __always_inline void arch_safe_halt(void)
+{
+	native_safe_halt();
+}
+
+/*
+ * Used when interrupts are already enabled or to
+ * shutdown the processor:
+ */
+static __always_inline void halt(void)
+{
+	native_halt();
+}
+#endif /* __ASSEMBLY__ */
+#endif /* CONFIG_PARAVIRT */
+
 #ifdef CONFIG_PARAVIRT_XXL
 #include <asm/paravirt.h>
 #else
@@ -97,24 +119,6 @@ static __always_inline void arch_local_irq_enable(void)
 	native_irq_enable();
 }
 
-/*
- * Used in the idle loop; sti takes one instruction cycle
- * to complete:
- */
-static __always_inline void arch_safe_halt(void)
-{
-	native_safe_halt();
-}
-
-/*
- * Used when interrupts are already enabled or to
- * shutdown the processor:
- */
-static __always_inline void halt(void)
-{
-	native_halt();
-}
-
 /*
  * For spinlocks, etc:
  */
arch/x86/include/asm/paravirt.h +10 -10
index d4eb9e1d61b8..75d4c994f5e2 100644
@@ -107,6 +107,16 @@ static inline void notify_page_enc_status_changed(unsigned long pfn,
 	PVOP_VCALL3(mmu.notify_page_enc_status_changed, pfn, npages, enc);
 }
 
+static __always_inline void arch_safe_halt(void)
+{
+	PVOP_VCALL0(irq.safe_halt);
+}
+
+static inline void halt(void)
+{
+	PVOP_VCALL0(irq.halt);
+}
+
 #ifdef CONFIG_PARAVIRT_XXL
 static inline void load_sp0(unsigned long sp0)
 {
@@ -170,16 +180,6 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(cpu.write_cr4, x);
 }
 
-static __always_inline void arch_safe_halt(void)
-{
-	PVOP_VCALL0(irq.safe_halt);
-}
-
-static inline void halt(void)
-{
-	PVOP_VCALL0(irq.halt);
-}
-
 extern noinstr void pv_native_wbinvd(void);
 
 static __always_inline void wbinvd(void)
arch/x86/include/asm/paravirt_types.h +1 -2
index 8d4fbe1be489..9334fdd1f635 100644
@@ -122,10 +122,9 @@ struct pv_irq_ops {
 	struct paravirt_callee_save save_fl;
 	struct paravirt_callee_save irq_disable;
 	struct paravirt_callee_save irq_enable;
-
+#endif
 	void (*safe_halt)(void);
 	void (*halt)(void);
-#endif
 } __no_randomize_layout;
 
 struct pv_mmu_ops {
arch/x86/kernel/acpi/boot.c +11 -0
index c70b86f1f295..63adda8a143f 100644
@@ -23,6 +23,8 @@
 #include <linux/serial_core.h>
 #include <linux/pgtable.h>
 
+#include <xen/xen.h>
+
 #include <asm/e820/api.h>
 #include <asm/irqdomain.h>
 #include <asm/pci_x86.h>
@@ -1730,6 +1732,15 @@ int __init acpi_mps_check(void)
 {
 #if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_X86_MPPARSE)
 /* mptable code is not built-in*/
+
+	/*
+	 * Xen disables ACPI in PV DomU guests but it still emulates APIC and
+	 * supports SMP. Returning early here ensures that APIC is not disabled
+	 * unnecessarily and the guest is not limited to a single vCPU.
+	 */
+	if (xen_pv_domain() && !xen_initial_domain())
+		return 0;
+
 	if (acpi_disabled || acpi_noirq) {
 		pr_warn("MPS support code is not built-in, using acpi=off or acpi=noirq or pci=noacpi may have problem\n");
 		return 1;
arch/x86/kernel/cpu/amd.c +1 -1
index 79d2e17f6582..425bed00b2e0 100644
@@ -627,7 +627,7 @@ static void init_amd_k8(struct cpuinfo_x86 *c)
 	 * (model = 0x14) and later actually support it.
 	 * (AMD Erratum #110, docId: 25759).
 	 */
-	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM)) {
+	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM) && !cpu_has(c, X86_FEATURE_HYPERVISOR)) {
 		clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
 		if (!rdmsrl_amd_safe(0xc001100d, &value)) {
 			value &= ~BIT_64(32);
arch/x86/kernel/e820.c +8 -9
index 4893d30ce438..b4746eb8b115 100644
@@ -754,22 +754,21 @@ void __init e820__memory_setup_extended(u64 phys_addr, u32 data_len)
 void __init e820__register_nosave_regions(unsigned long limit_pfn)
 {
 	int i;
-	unsigned long pfn = 0;
+	u64 last_addr = 0;
 
 	for (i = 0; i < e820_table->nr_entries; i++) {
 		struct e820_entry *entry = &e820_table->entries[i];
 
-		if (pfn < PFN_UP(entry->addr))
-			register_nosave_region(pfn, PFN_UP(entry->addr));
-
-		pfn = PFN_DOWN(entry->addr + entry->size);
-
 		if (entry->type != E820_TYPE_RAM && entry->type != E820_TYPE_RESERVED_KERN)
-			register_nosave_region(PFN_UP(entry->addr), pfn);
+			continue;
 
-		if (pfn >= limit_pfn)
-			break;
+		if (last_addr < entry->addr)
+			register_nosave_region(PFN_DOWN(last_addr), PFN_UP(entry->addr));
+
+		last_addr = entry->addr + entry->size;
 	}
+
+	register_nosave_region(PFN_DOWN(last_addr), limit_pfn);
 }
 
 #ifdef CONFIG_ACPI
arch/x86/kernel/paravirt.c +8 -5
index fec381533555..0c1b915d7efa 100644
@@ -100,6 +100,11 @@ int paravirt_disable_iospace(void)
 	return request_resource(&ioport_resource, &reserve_ioports);
 }
 
+static noinstr void pv_native_safe_halt(void)
+{
+	native_safe_halt();
+}
+
 #ifdef CONFIG_PARAVIRT_XXL
 static noinstr void pv_native_write_cr2(unsigned long val)
 {
@@ -121,10 +126,6 @@ noinstr void pv_native_wbinvd(void)
 	native_wbinvd();
 }
 
-static noinstr void pv_native_safe_halt(void)
-{
-	native_safe_halt();
-}
 #endif
 
 struct pv_info pv_info = {
@@ -182,9 +183,11 @@ struct paravirt_patch_template pv_ops = {
 	.irq.save_fl		= __PV_IS_CALLEE_SAVE(pv_native_save_fl),
 	.irq.irq_disable	= __PV_IS_CALLEE_SAVE(pv_native_irq_disable),
 	.irq.irq_enable		= __PV_IS_CALLEE_SAVE(pv_native_irq_enable),
+#endif /* CONFIG_PARAVIRT_XXL */
+
+	/* Irq HLT ops. */
 	.irq.safe_halt		= pv_native_safe_halt,
 	.irq.halt		= native_halt,
-#endif /* CONFIG_PARAVIRT_XXL */
 
 	/* Mmu ops. */
 	.mmu.flush_tlb_user	= native_flush_tlb_local,
arch/x86/kernel/signal_32.c +43 -19

86 lines not on this page · raw message

arch/x86/kvm/cpuid.c +3 -5
index 9157b4485ded..c92e43f2d0c4 100644
@@ -1047,8 +1047,8 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 		}
 		break;
 	case 0xa: { /* Architectural Performance Monitoring */
-		union cpuid10_eax eax;
-		union cpuid10_edx edx;
+		union cpuid10_eax eax = { };
+		union cpuid10_edx edx = { };
 
 		if (!enable_pmu || !static_cpu_has(X86_FEATURE_ARCH_PERFMON)) {
 			entry->eax = entry->ebx = entry->ecx = entry->edx = 0;
@@ -1064,8 +1064,6 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 
 		if (kvm_pmu_cap.version)
 			edx.split.anythread_deprecated = 1;
-		edx.split.reserved1 = 0;
-		edx.split.reserved2 = 0;
 
 		entry->eax = eax.full;
 		entry->ebx = kvm_pmu_cap.events_mask;
@@ -1383,7 +1381,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 		break;
 	/* AMD Extended Performance Monitoring and Debug */
 	case 0x80000022: {
-		union cpuid_0x80000022_ebx ebx;
+		union cpuid_0x80000022_ebx ebx = { };
 
 		entry->ecx = entry->edx = 0;
 		if (!enable_pmu || !kvm_cpu_cap_has(X86_FEATURE_PERFMON_V2)) {
arch/x86/kvm/x86.c +4 -0
index 45337a3fc03c..1a4ca471d63d 100644
@@ -11769,6 +11769,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 	if (kvm_mpx_supported())
 		kvm_load_guest_fpu(vcpu);
 
+	kvm_vcpu_srcu_read_lock(vcpu);
+
 	r = kvm_apic_accept_events(vcpu);
 	if (r < 0)
 		goto out;
@@ -11782,6 +11784,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 		mp_state->mp_state = vcpu->arch.mp_state;
 
 out:
+	kvm_vcpu_srcu_read_unlock(vcpu);
+
 	if (kvm_mpx_supported())
 		kvm_put_guest_fpu(vcpu);
 	vcpu_put(vcpu);
arch/x86/mm/pat/set_memory.c +3 -3
index 44f7b2ea6a07..69ceb967d73e 100644
@@ -2422,7 +2422,7 @@ static int __set_pages_np(struct page *page, int numpages)
 				.pgd = NULL,
 				.numpages = numpages,
 				.mask_set = __pgprot(0),
-				.mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW),
+				.mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY),
 				.flags = CPA_NO_CHECK_ALIAS };
 
 	/*
@@ -2501,7 +2501,7 @@ int __init kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address,
 		.pgd = pgd,
 		.numpages = numpages,
 		.mask_set = __pgprot(0),
-		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW)),
+		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW|_PAGE_DIRTY)),
 		.flags = CPA_NO_CHECK_ALIAS,
 	};
 
@@ -2544,7 +2544,7 @@ int __init kernel_unmap_pages_in_pgd(pgd_t *pgd, unsigned long address,
 		.pgd		= pgd,
 		.numpages	= numpages,
 		.mask_set	= __pgprot(0),
-		.mask_clr	= __pgprot(_PAGE_PRESENT | _PAGE_RW),
+		.mask_clr	= __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY),
 		.flags		= CPA_NO_CHECK_ALIAS,
 	};
 
arch/x86/xen/enlighten.c +10 -0
index b4f3784f27e9..0c950bbca309 100644
@@ -70,6 +70,9 @@ EXPORT_SYMBOL(xen_start_flags);
  */
 struct shared_info *HYPERVISOR_shared_info = &xen_dummy_shared_info;
 
+/* Number of pages released from the initial allocation. */
+unsigned long xen_released_pages;
+
 static __ref void xen_get_vendor(void)
 {
 	init_cpu_devs();
@@ -465,6 +468,13 @@ int __init arch_xen_unpopulated_init(struct resource **res)
 			xen_free_unpopulated_pages(1, &pg);
 		}
 
+		/*
+		 * Account for the region being in the physmap but unpopulated.
+		 * The value in xen_released_pages is used by the balloon
+		 * driver to know how much of the physmap is unpopulated and
+		 * set an accurate initial memory target.
+		 */
+		xen_released_pages += xen_extra_mem[i].n_pfns;
 		/* Zero so region is not also added to the balloon driver. */
 		xen_extra_mem[i].n_pfns = 0;
 	}
arch/x86/xen/setup.c +0 -3
index c3db71d96c43..3823e52aef52 100644
@@ -37,9 +37,6 @@
 
 #define GB(x) ((uint64_t)(x) * 1024 * 1024 * 1024)
 
-/* Number of pages released from the initial allocation. */
-unsigned long xen_released_pages;
-
 /* Memory map would allow PCI passthrough. */
 bool xen_pv_pci_possible;
 
drivers/accel/ivpu/ivpu_debugfs.c +2 -2
index 8d50981594d1..eccedb0c8886 100644
@@ -331,7 +331,7 @@ ivpu_force_recovery_fn(struct file *file, const char __user *user_buf, size_t si
 		return -EINVAL;
 
 	ret = ivpu_rpm_get(vdev);
-	if (ret)
+	if (ret < 0)
 		return ret;
 
 	ivpu_pm_trigger_recovery(vdev, "debugfs");
@@ -408,7 +408,7 @@ static int dct_active_set(void *data, u64 active_percent)
 		return -EINVAL;
 
 	ret = ivpu_rpm_get(vdev);
-	if (ret)
+	if (ret < 0)
 		return ret;
 
 	if (active_percent)
drivers/accel/ivpu/ivpu_ipc.c +2 -1
index 13c8a12162e8..f0402dc84758 100644
@@ -299,7 +299,8 @@ ivpu_ipc_send_receive_internal(struct ivpu_device *vdev, struct vpu_jsm_msg *req
 	struct ivpu_ipc_consumer cons;
 	int ret;
 
-	drm_WARN_ON(&vdev->drm, pm_runtime_status_suspended(vdev->drm.dev));
+	drm_WARN_ON(&vdev->drm, pm_runtime_status_suspended(vdev->drm.dev) &&
+		    pm_runtime_enabled(vdev->drm.dev));
 
 	ivpu_ipc_consumer_add(vdev, &cons, channel, NULL);
 
drivers/accel/ivpu/ivpu_ms.c +24 -0
index 2f9d37f5c208..a961002fe25b 100644
@@ -4,6 +4,7 @@
  */
 
 #include <drm/drm_file.h>
+#include <linux/pm_runtime.h>
 
 #include "ivpu_drv.h"
 #include "ivpu_gem.h"
@@ -44,6 +45,10 @@ int ivpu_ms_start_ioctl(struct drm_device *dev, void *data, struct drm_file *fil
 	    args->sampling_period_ns < MS_MIN_SAMPLE_PERIOD_NS)
 		return -EINVAL;
 
+	ret = ivpu_rpm_get(vdev);
+	if (ret < 0)
+		return ret;
+
 	mutex_lock(&file_priv->ms_lock);
 
 	if (get_instance_by_mask(file_priv, args->metric_group_mask)) {
@@ -96,6 +101,8 @@ int ivpu_ms_start_ioctl(struct drm_device *dev, void *data, struct drm_file *fil
 	kfree(ms);
 unlock:
 	mutex_unlock(&file_priv->ms_lock);
+
+	ivpu_rpm_put(vdev);
 	return ret;
 }
 
@@ -160,6 +167,10 @@ int ivpu_ms_get_data_ioctl(struct drm_device *dev, void *data, struct drm_file *
 	if (!args->metric_group_mask)
 		return -EINVAL;
 
+	ret = ivpu_rpm_get(vdev);
+	if (ret < 0)
+		return ret;
+
 	mutex_lock(&file_priv->ms_lock);
 
 	ms = get_instance_by_mask(file_priv, args->metric_group_mask);
@@ -187,6 +198,7 @@ int ivpu_ms_get_data_ioctl(struct drm_device *dev, void *data, struct drm_file *
 unlock:
 	mutex_unlock(&file_priv->ms_lock);
 
+	ivpu_rpm_put(vdev);
 	return ret;
 }
 
@@ -204,11 +216,17 @@ int ivpu_ms_stop_ioctl(struct drm_device *dev, void *data, struct drm_file *file
 {
 	struct ivpu_file_priv *file_priv = file->driver_priv;
 	struct drm_ivpu_metric_streamer_stop *args = data;
+	struct ivpu_device *vdev = file_priv->vdev;
 	struct ivpu_ms_instance *ms;
+	int ret;
 
 	if (!args->metric_group_mask)
 		return -EINVAL;
 
+	ret = ivpu_rpm_get(vdev);
+	if (ret < 0)
+		return ret;
+
 	mutex_lock(&file_priv->ms_lock);
 
 	ms = get_instance_by_mask(file_priv, args->metric_group_mask);
@@ -217,6 +235,7 @@ int ivpu_ms_stop_ioctl(struct drm_device *dev, void *data, struct drm_file *file
 
 	mutex_unlock(&file_priv->ms_lock);
 
+	ivpu_rpm_put(vdev);
 	return ms ? 0 : -EINVAL;
 }
 
@@ -281,6 +300,9 @@ int ivpu_ms_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *
 void ivpu_ms_cleanup(struct ivpu_file_priv *file_priv)
 {
 	struct ivpu_ms_instance *ms, *tmp;
+	struct ivpu_device *vdev = file_priv->vdev;
+
+	pm_runtime_get_sync(vdev->drm.dev);
 
 	mutex_lock(&file_priv->ms_lock);
 
@@ -293,6 +315,8 @@ void ivpu_ms_cleanup(struct ivpu_file_priv *file_priv)
 		free_instance(file_priv, ms);
 
 	mutex_unlock(&file_priv->ms_lock);
+
+	pm_runtime_put_autosuspend(vdev->drm.dev);
 }
 
 void ivpu_ms_cleanup_all(struct ivpu_device *vdev)
drivers/acpi/platform_profile.c +10 -10
index d2f7fd7743a1..11278f785526 100644
@@ -22,8 +22,8 @@ static const char * const profile_names[] = {
 };
 static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
 
-static ssize_t platform_profile_choices_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_choices_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	int len = 0;
@@ -49,8 +49,8 @@ static ssize_t platform_profile_choices_show(struct device *dev,
 	return len;
 }
 
-static ssize_t platform_profile_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	enum platform_profile_option profile = PLATFORM_PROFILE_BALANCED;
@@ -77,8 +77,8 @@ static ssize_t platform_profile_show(struct device *dev,
 	return sysfs_emit(buf, "%s\n", profile_names[profile]);
 }
 
-static ssize_t platform_profile_store(struct device *dev,
-			    struct device_attribute *attr,
+static ssize_t platform_profile_store(struct kobject *kobj,
+			    struct kobj_attribute *attr,
 			    const char *buf, size_t count)
 {
 	int err, i;
@@ -115,12 +115,12 @@ static ssize_t platform_profile_store(struct device *dev,
 	return count;
 }
 
-static DEVICE_ATTR_RO(platform_profile_choices);
-static DEVICE_ATTR_RW(platform_profile);
+static struct kobj_attribute attr_platform_profile_choices = __ATTR_RO(platform_profile_choices);
+static struct kobj_attribute attr_platform_profile = __ATTR_RW(platform_profile);
 
 static struct attribute *platform_profile_attrs[] = {
-	&dev_attr_platform_profile_choices.attr,
-	&dev_attr_platform_profile.attr,
+	&attr_platform_profile_choices.attr,
+	&attr_platform_profile.attr,
 	NULL
 };
 
drivers/ata/ahci.c +11 -0
index 45f63b09828a..650122deb480 100644
@@ -63,6 +63,7 @@ enum board_ids {
 	board_ahci_pcs_quirk_no_devslp,
 	board_ahci_pcs_quirk_no_sntf,
 	board_ahci_yes_fbs,
+	board_ahci_yes_fbs_atapi_dma,
 
 	/* board IDs for specific chipsets in alphabetical order */
 	board_ahci_al,
@@ -188,6 +189,14 @@ static const struct ata_port_info ahci_port_info[] = {
 		.udma_mask	= ATA_UDMA6,
 		.port_ops	= &ahci_ops,
 	},
+	[board_ahci_yes_fbs_atapi_dma] = {
+		AHCI_HFLAGS	(AHCI_HFLAG_YES_FBS |
+				 AHCI_HFLAG_ATAPI_DMA_QUIRK),
+		.flags		= AHCI_FLAG_COMMON,
+		.pio_mask	= ATA_PIO4,
+		.udma_mask	= ATA_UDMA6,
+		.port_ops	= &ahci_ops,
+	},
 	/* by chipsets */
 	[board_ahci_al] = {
 		AHCI_HFLAGS	(AHCI_HFLAG_NO_PMP | AHCI_HFLAG_NO_MSI),
@@ -589,6 +598,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
 	  .driver_data = board_ahci_yes_fbs },
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
+	  .driver_data = board_ahci_yes_fbs_atapi_dma },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
drivers/ata/ahci.h +1 -0
index 8f40f75ba08c..10a5fe02f0a4 100644
@@ -246,6 +246,7 @@ enum {
 	AHCI_HFLAG_NO_SXS		= BIT(26), /* SXS not supported */
 	AHCI_HFLAG_43BIT_ONLY		= BIT(27), /* 43bit DMA addr limit */
 	AHCI_HFLAG_INTEL_PCS_QUIRK	= BIT(28), /* apply Intel PCS quirk */
+	AHCI_HFLAG_ATAPI_DMA_QUIRK	= BIT(29), /* force ATAPI to use DMA */
 
 	/* ap->flags bits */
 
drivers/ata/libahci.c +4 -0
index fdfa7b266218..a28ffe1e5969 100644
@@ -1321,6 +1321,10 @@ static void ahci_dev_config(struct ata_device *dev)
 {
 	struct ahci_host_priv *hpriv = dev->link->ap->host->private_data;
 
+	if ((dev->class == ATA_DEV_ATAPI) &&
+	    (hpriv->flags & AHCI_HFLAG_ATAPI_DMA_QUIRK))
+		dev->quirks |= ATA_QUIRK_ATAPI_MOD16_DMA;
+
 	if (hpriv->flags & AHCI_HFLAG_SECT255) {
 		dev->max_sectors = 255;
 		ata_dev_info(dev,
drivers/ata/libata-core.c +38 -0
index d956735e2a76..0cb97181d10a 100644
@@ -88,6 +88,7 @@ struct ata_force_param {
 	unsigned int	xfer_mask;
 	unsigned int	quirk_on;
 	unsigned int	quirk_off;
+	unsigned int	pflags_on;
 	u16		lflags_on;
 	u16		lflags_off;
 };
@@ -331,6 +332,35 @@ void ata_force_cbl(struct ata_port *ap)
 	}
 }
 
+/**
+ *	ata_force_pflags - force port flags according to libata.force
+ *	@ap: ATA port of interest
+ *
+ *	Force port flags according to libata.force and whine about it.
+ *
+ *	LOCKING:
+ *	EH context.
+ */
+static void ata_force_pflags(struct ata_port *ap)
+{
+	int i;
+
+	for (i = ata_force_tbl_size - 1; i >= 0; i--) {
+		const struct ata_force_ent *fe = &ata_force_tbl[i];
+
+		if (fe->port != -1 && fe->port != ap->print_id)
+			continue;
+
+		/* let pflags stack */
+		if (fe->param.pflags_on) {
+			ap->pflags |= fe->param.pflags_on;
+			ata_port_notice(ap,
+					"FORCE: port flag 0x%x forced -> 0x%x\n",
+					fe->param.pflags_on, ap->pflags);
+		}
+	}
+}
+
 /**
  *	ata_force_link_limits - force link limits according to libata.force
  *	@link: ATA link of interest
@@ -486,6 +516,7 @@ static void ata_force_quirks(struct ata_device *dev)
 	}
 }
 #else
+static inline void ata_force_pflags(struct ata_port *ap) { }
 static inline void ata_force_link_limits(struct ata_link *link) { }
 static inline void ata_force_xfermask(struct ata_device *dev) { }
 static inline void ata_force_quirks(struct ata_device *dev) { }
@@ -5460,6 +5491,8 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
 #endif
 	ata_sff_port_init(ap);
 
+	ata_force_pflags(ap);
+
 	return ap;
 }
 EXPORT_SYMBOL_GPL(ata_port_alloc);
@@ -6272,6 +6305,9 @@ EXPORT_SYMBOL_GPL(ata_platform_remove_one);
 	{ "no" #name,	.lflags_on	= (flags) },	\
 	{ #name,	.lflags_off	= (flags) }
 
+#define force_pflag_on(name, flags)			\
+	{ #name,	.pflags_on	= (flags) }
+
 #define force_quirk_on(name, flag)			\
 	{ #name,	.quirk_on	= (flag) }
 
@@ -6331,6 +6367,8 @@ static const struct ata_force_param force_tbl[] __initconst = {
 	force_lflag_on(rstonce,		ATA_LFLAG_RST_ONCE),
 	force_lflag_onoff(dbdelay,	ATA_LFLAG_NO_DEBOUNCE_DELAY),
 
+	force_pflag_on(external,	ATA_PFLAG_EXTERNAL),
+
 	force_quirk_onoff(ncq,		ATA_QUIRK_NONCQ),
 	force_quirk_onoff(ncqtrim,	ATA_QUIRK_NO_NCQ_TRIM),
 	force_quirk_onoff(ncqati,	ATA_QUIRK_NO_NCQ_ON_ATI),
drivers/ata/libata-eh.c +9 -2
index 3b303d4ae37a..16cd676eae1f 100644
@@ -1542,8 +1542,15 @@ unsigned int atapi_eh_request_sense(struct ata_device *dev,
 	tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE;
 	tf.command = ATA_CMD_PACKET;
 
-	/* is it pointless to prefer PIO for "safety reasons"? */
-	if (ap->flags & ATA_FLAG_PIO_DMA) {
+	/*
+	 * Do not use DMA if the connected device only supports PIO, even if the
+	 * port prefers PIO commands via DMA.
+	 *
+	 * Ideally, we should call atapi_check_dma() to check if it is safe for
+	 * the LLD to use DMA for REQUEST_SENSE, but we don't have a qc.
+	 * Since we can't check the command, perhaps we should only use pio?
+	 */
+	if ((ap->flags & ATA_FLAG_PIO_DMA) && !(dev->flags & ATA_DFLAG_PIO)) {
 		tf.protocol = ATAPI_PROT_DMA;
 		tf.feature |= ATAPI_PKT_DMA;
 	} else {
drivers/ata/pata_pxa.c +6 -0
index 538bd3423d85..1bdcd6ee741d 100644
@@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev)
 
 	ap->ioaddr.cmd_addr	= devm_ioremap(&pdev->dev, cmd_res->start,
 						resource_size(cmd_res));
+	if (!ap->ioaddr.cmd_addr)
+		return -ENOMEM;
 	ap->ioaddr.ctl_addr	= devm_ioremap(&pdev->dev, ctl_res->start,
 						resource_size(ctl_res));
+	if (!ap->ioaddr.ctl_addr)
+		return -ENOMEM;
 	ap->ioaddr.bmdma_addr	= devm_ioremap(&pdev->dev, dma_res->start,
 						resource_size(dma_res));
+	if (!ap->ioaddr.bmdma_addr)
+		return -ENOMEM;
 
 	/*
 	 * Adjust register offsets
drivers/ata/sata_sx4.c +10 -3
index a482741eb181..c3042eca6332 100644
@@ -1117,9 +1117,14 @@ static int pdc20621_prog_dimm0(struct ata_host *host)
 	mmio += PDC_CHIP0_OFS;
 
 	for (i = 0; i < ARRAY_SIZE(pdc_i2c_read_data); i++)
-		pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
-				  pdc_i2c_read_data[i].reg,
-				  &spd0[pdc_i2c_read_data[i].ofs]);
+		if (!pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
+				       pdc_i2c_read_data[i].reg,
+				       &spd0[pdc_i2c_read_data[i].ofs])) {
+			dev_err(host->dev,
+				"Failed in i2c read at index %d: device=%#x, reg=%#x\n",
+				i, PDC_DIMM0_SPD_DEV_ADDRESS, pdc_i2c_read_data[i].reg);
+			return -EIO;
+		}
 
 	data |= (spd0[4] - 8) | ((spd0[21] != 0) << 3) | ((spd0[3]-11) << 4);
 	data |= ((spd0[17] / 4) << 6) | ((spd0[5] / 2) << 7) |
@@ -1284,6 +1289,8 @@ static unsigned int pdc20621_dimm_init(struct ata_host *host)
 
 	/* Programming DIMM0 Module Control Register (index_CID0:80h) */
 	size = pdc20621_prog_dimm0(host);
+	if (size < 0)
+		return size;
 	dev_dbg(host->dev, "Local DIMM Size = %dMB\n", size);
 
 	/* Programming DIMM Module Global Control Register (index_CID0:88h) */
drivers/auxdisplay/hd44780.c +2 -2
index 025dc6855cb2..41807ce36339 100644
@@ -313,7 +313,7 @@ static int hd44780_probe(struct platform_device *pdev)
 fail3:
 	kfree(hd);
 fail2:
-	kfree(lcd);
+	charlcd_free(lcd);
 fail1:
 	kfree(hdc);
 	return ret;
@@ -328,7 +328,7 @@ static void hd44780_remove(struct platform_device *pdev)
 	kfree(hdc->hd44780);
 	kfree(lcd->drvdata);
 
-	kfree(lcd);
+	charlcd_free(lcd);
 }
 
 static const struct of_device_id hd44780_of_match[] = {
drivers/base/devres.c +7 -0
index 2152eec0c135..68224f2f83ff 100644
@@ -687,6 +687,13 @@ int devres_release_group(struct device *dev, void *id)
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
 
 		release_nodes(dev, &todo);
+	} else if (list_empty(&dev->devres_head)) {
+		/*
+		 * dev is probably dying via devres_release_all(): groups
+		 * have already been removed and are on the process of
+		 * being released - don't touch and don't warn.
+		 */
+		spin_unlock_irqrestore(&dev->devres_lock, flags);
 	} else {
 		WARN_ON(1);
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
drivers/block/ublk_drv.c +67 -23

160 lines not on this page · raw message

drivers/bluetooth/btintel_pcie.c +1 -0
index 53f6b4f76bcc..ab465e13c1f6 100644
@@ -36,6 +36,7 @@
 /* Intel Bluetooth PCIe device id table */
 static const struct pci_device_id btintel_pcie_table[] = {
 	{ BTINTEL_PCI_DEVICE(0xA876, PCI_ANY_ID) },
+	{ BTINTEL_PCI_DEVICE(0xE476, PCI_ANY_ID) },
 	{ 0 }
 };
 MODULE_DEVICE_TABLE(pci, btintel_pcie_table);
drivers/bluetooth/btqca.c +6 -7
index 04d02c746ec0..dd2c0485b984 100644
@@ -785,6 +785,7 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		   const char *firmware_name)
 {
 	struct qca_fw_config config = {};
+	const char *variant = "";
 	int err;
 	u8 rom_ver = 0;
 	u32 soc_ver;
@@ -879,13 +880,11 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		case QCA_WCN3990:
 		case QCA_WCN3991:
 		case QCA_WCN3998:
-			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID) {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02xu.bin", rom_ver);
-			} else {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02x.bin", rom_ver);
-			}
+			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
+				variant = "u";
+
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/crnv%02x%s.bin", rom_ver, variant);
 			break;
 		case QCA_WCN3988:
 			snprintf(config.fwname, sizeof(config.fwname),
drivers/bluetooth/btusb.c +4 -0
index 3a0b9dc98707..151054a71852 100644
@@ -626,6 +626,10 @@ static const struct usb_device_id quirks_table[] = {
 						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x0489, 0xe102), .driver_info = BTUSB_MEDIATEK |
 						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x0489, 0xe152), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x0489, 0xe153), .driver_info = BTUSB_MEDIATEK |
+						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x04ca, 0x3804), .driver_info = BTUSB_MEDIATEK |
 						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x04ca, 0x38e4), .driver_info = BTUSB_MEDIATEK |
drivers/bluetooth/hci_ldisc.c +14 -5
index 395d66e32a2e..2f322f890b81 100644
@@ -102,7 +102,8 @@ static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)
 	if (!skb) {
 		percpu_down_read(&hu->proto_lock);
 
-		if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+		    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 			skb = hu->proto->dequeue(hu);
 
 		percpu_up_read(&hu->proto_lock);
@@ -124,7 +125,8 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)
 	if (!percpu_down_read_trylock(&hu->proto_lock))
 		return 0;
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		goto no_schedule;
 
 	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
@@ -278,7 +280,8 @@ static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return -EUNATCH;
 	}
@@ -585,7 +588,8 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)
 	if (tty != hu->tty)
 		return;
 
-	if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+	    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		hci_uart_tx_wakeup(hu);
 }
 
@@ -611,7 +615,8 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data,
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return;
 	}
@@ -707,12 +712,16 @@ static int hci_uart_set_proto(struct hci_uart *hu, int id)
 
 	hu->proto = p;
 
+	set_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	err = hci_uart_register_dev(hu);
 	if (err) {
 		return err;
 	}
 
 	set_bit(HCI_UART_PROTO_READY, &hu->flags);
+	clear_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	return 0;
 }
 
drivers/bluetooth/hci_qca.c +1 -1
index 37fddf6055be..1837622ea625 100644
@@ -2353,6 +2353,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 	switch (qcadev->btsoc_type) {
 	case QCA_WCN6855:
 	case QCA_WCN7850:
+	case QCA_WCN6750:
 		if (!device_property_present(&serdev->dev, "enable-gpios")) {
 			/*
 			 * Backward compatibility with old DT sources. If the
@@ -2372,7 +2373,6 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 	case QCA_WCN3990:
 	case QCA_WCN3991:
 	case QCA_WCN3998:
-	case QCA_WCN6750:
 		qcadev->bt_power->dev = &serdev->dev;
 		err = qca_init_regulators(qcadev->bt_power, data->vregs,
 					  data->num_vregs);
drivers/bluetooth/hci_uart.h +1 -0
index fbf3079b92a5..5ea5dd80e297 100644
@@ -90,6 +90,7 @@ struct hci_uart {
 #define HCI_UART_REGISTERED		1
 #define HCI_UART_PROTO_READY		2
 #define HCI_UART_NO_SUSPEND_NOTIFIER	3
+#define HCI_UART_PROTO_INIT		4
 
 /* TX states  */
 #define HCI_UART_SENDING	1
drivers/bus/mhi/host/main.c +10 -6
index 4de75674f193..aa8a0ef697c7 100644
@@ -1207,11 +1207,16 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	struct mhi_ring_element *mhi_tre;
 	struct mhi_buf_info *buf_info;
 	int eot, eob, chain, bei;
-	int ret;
+	int ret = 0;
 
 	/* Protect accesses for reading and incrementing WP */
 	write_lock_bh(&mhi_chan->lock);
 
+	if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) {
+		ret = -ENODEV;
+		goto out;
+	}
+
 	buf_ring = &mhi_chan->buf_ring;
 	tre_ring = &mhi_chan->tre_ring;
 
@@ -1229,10 +1234,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 
 	if (!info->pre_mapped) {
 		ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
-		if (ret) {
-			write_unlock_bh(&mhi_chan->lock);
-			return ret;
-		}
+		if (ret)
+			goto out;
 	}
 
 	eob = !!(flags & MHI_EOB);
@@ -1250,9 +1253,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	mhi_add_ring_element(mhi_cntrl, tre_ring);
 	mhi_add_ring_element(mhi_cntrl, buf_ring);
 
+out:
 	write_unlock_bh(&mhi_chan->lock);
 
-	return 0;
+	return ret;
 }
 
 int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir,
drivers/char/tpm/tpm-chip.c +6 -0
index 7df7abaf3e52..e25daf2396d3 100644
@@ -168,6 +168,11 @@ int tpm_try_get_ops(struct tpm_chip *chip)
 		goto out_ops;
 
 	mutex_lock(&chip->tpm_mutex);
+
+	/* tmp_chip_start may issue IO that is denied while suspended */
+	if (chip->flags & TPM_CHIP_FLAG_SUSPENDED)
+		goto out_lock;
+
 	rc = tpm_chip_start(chip);
 	if (rc)
 		goto out_lock;
@@ -300,6 +305,7 @@ int tpm_class_shutdown(struct device *dev)
 	down_write(&chip->ops_sem);
 	if (chip->flags & TPM_CHIP_FLAG_TPM2) {
 		if (!tpm_chip_start(chip)) {
+			tpm2_end_auth_session(chip);
 			tpm2_shutdown(chip, TPM2_SU_CLEAR);
 			tpm_chip_stop(chip);
 		}
drivers/char/tpm/tpm-interface.c +0 -7
index b1daa0d7b341..f62f7871edbd 100644
@@ -445,18 +445,11 @@ int tpm_get_random(struct tpm_chip *chip, u8 *out, size_t max)
 	if (!chip)
 		return -ENODEV;
 
-	/* Give back zero bytes, as TPM chip has not yet fully resumed: */
-	if (chip->flags & TPM_CHIP_FLAG_SUSPENDED) {
-		rc = 0;
-		goto out;
-	}
-
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
 		rc = tpm2_get_random(chip, out, max);
 	else
 		rc = tpm1_get_random(chip, out, max);
 
-out:
 	tpm_put_ops(chip);
 	return rc;
 }
drivers/char/tpm/tpm_tis_core.c +15 -5
index fdef214b9f6b..ed0d3d8449b3 100644
@@ -114,11 +114,10 @@ static int wait_for_tpm_stat(struct tpm_chip *chip, u8 mask,
 		return 0;
 	/* process status changes without irq support */
 	do {
+		usleep_range(priv->timeout_min, priv->timeout_max);
 		status = chip->ops->status(chip);
 		if ((status & mask) == mask)
 			return 0;
-		usleep_range(priv->timeout_min,
-			     priv->timeout_max);
 	} while (time_before(jiffies, stop));
 	return -ETIME;
 }
@@ -464,7 +463,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 		if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 					&priv->int_queue, false) < 0) {
-			rc = -ETIME;
+			if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+				rc = -EAGAIN;
+			else
+				rc = -ETIME;
 			goto out_err;
 		}
 		status = tpm_tis_status(chip);
@@ -481,7 +483,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 	if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 				&priv->int_queue, false) < 0) {
-		rc = -ETIME;
+		if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+			rc = -EAGAIN;
+		else
+			rc = -ETIME;
 		goto out_err;
 	}
 	status = tpm_tis_status(chip);
@@ -546,9 +551,11 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
 		if (rc >= 0)
 			/* Data transfer done successfully */
 			break;
-		else if (rc != -EIO)
+		else if (rc != -EAGAIN && rc != -EIO)
 			/* Data transfer failed, not recoverable */
 			return rc;
+
+		usleep_range(priv->timeout_min, priv->timeout_max);
 	}
 
 	/* go and do it */
@@ -1144,6 +1151,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
 		priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
 	}
 
+	if (priv->manufacturer_id == TPM_VID_IFX)
+		set_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags);
+
 	if (is_bsw()) {
 		priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
 					ILB_REMAP_SIZE);
drivers/char/tpm/tpm_tis_core.h +1 -0
index 690ad8e9b731..970d02c337c7 100644
@@ -89,6 +89,7 @@ enum tpm_tis_flags {
 	TPM_TIS_INVALID_STATUS		= 1,
 	TPM_TIS_DEFAULT_CANCELLATION	= 2,
 	TPM_TIS_IRQ_TESTED		= 3,
+	TPM_TIS_STATUS_VALID_RETRY	= 4,
 };
 
 struct tpm_tis_data {
drivers/clk/qcom/clk-branch.c +2 -2
index 229480c5b075..0f10090d4ae6 100644
@@ -28,7 +28,7 @@ static bool clk_branch_in_hwcg_mode(const struct clk_branch *br)
 
 static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
 {
-	bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
+	bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
 	u32 val;
 
 	regmap_read(br->clkr.regmap, br->halt_reg, &val);
@@ -44,7 +44,7 @@ static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)
 {
 	u32 val;
 	u32 mask;
-	bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
+	bool invert = (br->halt_check & BRANCH_HALT_ENABLE);
 
 	mask = CBCR_NOC_FSM_STATUS;
 	mask |= CBCR_CLK_OFF;
drivers/clk/qcom/gdsc.c +38 -23

108 lines not on this page · raw message

drivers/clk/renesas/r9a07g043-cpg.c +7 -0
index c3c2b0c43983..fce2eecfa8c0 100644
@@ -89,7 +89,9 @@ static const struct clk_div_table dtable_1_32[] = {
 
 /* Mux clock tables */
 static const char * const sel_pll3_3[] = { ".pll3_533", ".pll3_400" };
+#ifdef CONFIG_ARM64
 static const char * const sel_pll6_2[]	= { ".pll6_250", ".pll5_250" };
+#endif
 static const char * const sel_sdhi[] = { ".clk_533", ".clk_400", ".clk_266" };
 
 static const u32 mtable_sdhi[] = { 1, 2, 3 };
@@ -137,7 +139,12 @@ static const struct cpg_core_clk r9a07g043_core_clks[] __initconst = {
 	DEF_DIV("P2", R9A07G043_CLK_P2, CLK_PLL3_DIV2_4_2, DIVPL3A, dtable_1_32),
 	DEF_FIXED("M0", R9A07G043_CLK_M0, CLK_PLL3_DIV2_4, 1, 1),
 	DEF_FIXED("ZT", R9A07G043_CLK_ZT, CLK_PLL3_DIV2_4_2, 1, 1),
+#ifdef CONFIG_ARM64
 	DEF_MUX("HP", R9A07G043_CLK_HP, SEL_PLL6_2, sel_pll6_2),
+#endif
+#ifdef CONFIG_RISCV
+	DEF_FIXED("HP", R9A07G043_CLK_HP, CLK_PLL6_250, 1, 1),
+#endif
 	DEF_FIXED("SPI0", R9A07G043_CLK_SPI0, CLK_DIV_PLL3_C, 1, 2),
 	DEF_FIXED("SPI1", R9A07G043_CLK_SPI1, CLK_DIV_PLL3_C, 1, 4),
 	DEF_SD_MUX("SD0", R9A07G043_CLK_SD0, SEL_SDHI0, SEL_SDHI0_STS, sel_sdhi,
drivers/clocksource/timer-stm32-lp.c +1 -3
index a4c95161cb22..193e4f643358 100644
@@ -168,9 +168,7 @@ static int stm32_clkevent_lp_probe(struct platform_device *pdev)
 	}
 
 	if (of_property_read_bool(pdev->dev.parent->of_node, "wakeup-source")) {
-		ret = device_init_wakeup(&pdev->dev, true);
-		if (ret)
-			goto out_clk_disable;
+		device_set_wakeup_capable(&pdev->dev, true);
 
 		ret = dev_pm_set_wake_irq(&pdev->dev, irq);
 		if (ret)
drivers/crypto/ccp/sp-pci.c +9 -6
index 248d98fd8c48..157f9a9ed636 100644
@@ -189,14 +189,17 @@ static bool sp_pci_is_master(struct sp_device *sp)
 	pdev_new = to_pci_dev(dev_new);
 	pdev_cur = to_pci_dev(dev_cur);
 
-	if (pdev_new->bus->number < pdev_cur->bus->number)
-		return true;
+	if (pci_domain_nr(pdev_new->bus) != pci_domain_nr(pdev_cur->bus))
+		return pci_domain_nr(pdev_new->bus) < pci_domain_nr(pdev_cur->bus);
 
-	if (PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn))
-		return true;
+	if (pdev_new->bus->number != pdev_cur->bus->number)
+		return pdev_new->bus->number < pdev_cur->bus->number;
 
-	if (PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn))
-		return true;
+	if (PCI_SLOT(pdev_new->devfn) != PCI_SLOT(pdev_cur->devfn))
+		return PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn);
+
+	if (PCI_FUNC(pdev_new->devfn) != PCI_FUNC(pdev_cur->devfn))
+		return PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn);
 
 	return false;
 }
drivers/gpio/gpio-tegra186.c +14 -13
index 1ecb733a5e88..45543ab5073f 100644
@@ -823,6 +823,7 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	struct gpio_irq_chip *irq;
 	struct tegra_gpio *gpio;
 	struct device_node *np;
+	struct resource *res;
 	char **names;
 	int err;
 
@@ -842,19 +843,19 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	gpio->num_banks++;
 
 	/* get register apertures */
-	gpio->secure = devm_platform_ioremap_resource_byname(pdev, "security");
-	if (IS_ERR(gpio->secure)) {
-		gpio->secure = devm_platform_ioremap_resource(pdev, 0);
-		if (IS_ERR(gpio->secure))
-			return PTR_ERR(gpio->secure);
-	}
-
-	gpio->base = devm_platform_ioremap_resource_byname(pdev, "gpio");
-	if (IS_ERR(gpio->base)) {
-		gpio->base = devm_platform_ioremap_resource(pdev, 1);
-		if (IS_ERR(gpio->base))
-			return PTR_ERR(gpio->base);
-	}
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "security");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	gpio->secure = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->secure))
+		return PTR_ERR(gpio->secure);
+
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	gpio->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->base))
+		return PTR_ERR(gpio->base);
 
 	err = platform_irq_count(pdev);
 	if (err < 0)
drivers/gpio/gpio-zynq.c +1 -0
index 1a42336dfc1d..cc53e6940ad7 100644
@@ -1011,6 +1011,7 @@ static void zynq_gpio_remove(struct platform_device *pdev)
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
 		dev_warn(&pdev->dev, "pm_runtime_get_sync() Failed\n");
+	device_init_wakeup(&pdev->dev, 0);
 	gpiochip_remove(&gpio->chip);
 	device_set_wakeup_capable(&pdev->dev, 0);
 	pm_runtime_disable(&pdev->dev);
drivers/gpio/gpiolib-of.c +2 -0
index 880f1efcaca5..e543129d3605 100644
@@ -193,6 +193,8 @@ static void of_gpio_try_fixup_polarity(const struct device_node *np,
 		 */
 		{ "himax,hx8357",	"gpios-reset",	false },
 		{ "himax,hx8369",	"gpios-reset",	false },
+#endif
+#if IS_ENABLED(CONFIG_MTD_NAND_JZ4780)
 		/*
 		 * The rb-gpios semantics was undocumented and qi,lb60 (along with
 		 * the ingenic driver) got it wrong. The active state encodes the
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +9 -1
index 96845541b2d2..31d4df968898 100644
@@ -6575,18 +6575,26 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
 {
 	struct dma_fence *old = NULL;
 
+	dma_fence_get(gang);
 	do {
 		dma_fence_put(old);
 		old = amdgpu_device_get_gang(adev);
 		if (old == gang)
 			break;
 
-		if (!dma_fence_is_signaled(old))
+		if (!dma_fence_is_signaled(old)) {
+			dma_fence_put(gang);
 			return old;
+		}
 
 	} while (cmpxchg((struct dma_fence __force **)&adev->gang_submit,
 			 old, gang) != old);
 
+	/*
+	 * Drop it once for the exchanged reference in adev and once for the
+	 * thread local reference acquired in amdgpu_device_get_gang().
+	 */
+	dma_fence_put(old);
 	dma_fence_put(old);
 	return NULL;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +0 -4
index 73e02141a6e2..37d53578825b 100644
@@ -2434,8 +2434,6 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
 	spin_lock_init(&vm->status_lock);
 	INIT_LIST_HEAD(&vm->freed);
 	INIT_LIST_HEAD(&vm->done);
-	INIT_LIST_HEAD(&vm->pt_freed);
-	INIT_WORK(&vm->pt_free_work, amdgpu_vm_pt_free_work);
 	INIT_KFIFO(vm->faults);
 
 	r = amdgpu_vm_init_entities(adev, vm);
@@ -2607,8 +2605,6 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
 
 	amdgpu_amdkfd_gpuvm_destroy_cb(adev, vm);
 
-	flush_work(&vm->pt_free_work);
-
 	root = amdgpu_bo_ref(vm->root.bo);
 	amdgpu_bo_reserve(root, true);
 	amdgpu_vm_put_task_info(vm->task_info);
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +0 -4
index 52dd7cdfdc81..ee893527a4f1 100644
@@ -360,10 +360,6 @@ struct amdgpu_vm {
 	/* BOs which are invalidated, has been updated in the PTs */
 	struct list_head        done;
 
-	/* PT BOs scheduled to free and fill with zero if vm_resv is not hold */
-	struct list_head	pt_freed;
-	struct work_struct	pt_free_work;
-
 	/* contains the page directory */
 	struct amdgpu_vm_bo_base     root;
 	struct dma_fence	*last_update;
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c +13 -30

66 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +10 -0
index 3e6b4736a7fe..67b5f3d7ff8e 100644
@@ -212,6 +212,11 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	if (!access_ok((const void __user *) args->read_pointer_address,
 			sizeof(uint32_t))) {
 		pr_err("Can't access read pointer\n");
@@ -461,6 +466,11 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	properties.queue_address = args->ring_base_address;
 	properties.queue_size = args->ring_size;
 	properties.queue_percent = args->queue_percentage & 0xFF;
drivers/gpu/drm/amd/amdkfd/kfd_device.c +5 -0
index d350c7ce35b3..9186ef0bd2a3 100644
@@ -1493,6 +1493,11 @@ int kfd_debugfs_hang_hws(struct kfd_node *dev)
 		return -EINVAL;
 	}
 
+	if (dev->kfd->shared_resources.enable_mes) {
+		dev_err(dev->adev->dev, "Inducing MES hang is not supported\n");
+		return -EINVAL;
+	}
+
 	return dqm_debugfs_hang_hws(dev->dqm);
 }
 
drivers/gpu/drm/amd/amdkfd/kfd_process.c +17 -0
index 264bd764f6f2..0ec8b457494b 100644
@@ -35,6 +35,7 @@
 #include <linux/pm_runtime.h>
 #include "amdgpu_amdkfd.h"
 #include "amdgpu.h"
+#include "amdgpu_reset.h"
 
 struct mm_struct;
 
@@ -1140,6 +1141,17 @@ static void kfd_process_remove_sysfs(struct kfd_process *p)
 	p->kobj = NULL;
 }
 
+/*
+ * If any GPU is ongoing reset, wait for reset complete.
+ */
+static void kfd_process_wait_gpu_reset_complete(struct kfd_process *p)
+{
+	int i;
+
+	for (i = 0; i < p->n_pdds; i++)
+		flush_workqueue(p->pdds[i]->dev->adev->reset_domain->wq);
+}
+
 /* No process locking is needed in this function, because the process
  * is not findable any more. We must assume that no other thread is
  * using it any more, otherwise we couldn't safely free the process
@@ -1154,6 +1166,11 @@ static void kfd_process_wq_release(struct work_struct *work)
 	kfd_process_dequeue_from_all_devices(p);
 	pqm_uninit(&p->pqm);
 
+	/*
+	 * If GPU in reset, user queues may still running, wait for reset complete.
+	 */
+	kfd_process_wait_gpu_reset_complete(p);
+
 	/* Signal the eviction fence after user mode queues are
 	 * destroyed. This allows any BOs to be freed without
 	 * triggering pointless evictions or waiting for fences.
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -1
index ac777244ee0a..4078a8176187 100644
@@ -546,7 +546,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
 			pr_err("Pasid 0x%x destroy queue %d failed, ret %d\n",
 				pqm->process->pasid,
 				pqn->q->properties.queue_id, retval);
-			if (retval != -ETIME)
+			if (retval != -ETIME && retval != -EIO)
 				goto err_destroy_queue;
 		}
 		kfd_procfs_del_queue(pqn->q);
drivers/gpu/drm/amd/amdkfd/kfd_svm.c +17 -14
index 8c61dee5ca0d..b50283864dcd 100644
@@ -2992,19 +2992,6 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid,
 		goto out;
 	}
 
-	/* check if this page fault time stamp is before svms->checkpoint_ts */
-	if (svms->checkpoint_ts[gpuidx] != 0) {
-		if (amdgpu_ih_ts_after(ts,  svms->checkpoint_ts[gpuidx])) {
-			pr_debug("draining retry fault, drop fault 0x%llx\n", addr);
-			r = 0;
-			goto out;
-		} else
-			/* ts is after svms->checkpoint_ts now, reset svms->checkpoint_ts
-			 * to zero to avoid following ts wrap around give wrong comparing
-			 */
-			svms->checkpoint_ts[gpuidx] = 0;
-	}
-
 	if (!p->xnack_enabled) {
 		pr_debug("XNACK not enabled for pasid 0x%x\n", pasid);
 		r = -EFAULT;
@@ -3024,6 +3011,21 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid,
 	mmap_read_lock(mm);
 retry_write_locked:
 	mutex_lock(&svms->lock);
+
+	/* check if this page fault time stamp is before svms->checkpoint_ts */
+	if (svms->checkpoint_ts[gpuidx] != 0) {
+		if (amdgpu_ih_ts_after(ts,  svms->checkpoint_ts[gpuidx])) {
+			pr_debug("draining retry fault, drop fault 0x%llx\n", addr);
+			r = -EAGAIN;
+			goto out_unlock_svms;
+		} else {
+			/* ts is after svms->checkpoint_ts now, reset svms->checkpoint_ts
+			 * to zero to avoid following ts wrap around give wrong comparing
+			 */
+			svms->checkpoint_ts[gpuidx] = 0;
+		}
+	}
+
 	prange = svm_range_from_addr(svms, addr, NULL);
 	if (!prange) {
 		pr_debug("failed to find prange svms 0x%p address [0x%llx]\n",
@@ -3148,7 +3150,8 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid,
 	mutex_unlock(&svms->lock);
 	mmap_read_unlock(mm);
 
-	svm_range_count_fault(node, p, gpuidx);
+	if (r != -EAGAIN)
+		svm_range_count_fault(node, p, gpuidx);
 
 	mmput(mm);
 out:
drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_resource_mgmt.c +0 -26
index 1ed21c1b86a5..a966abd40788 100644
@@ -532,26 +532,6 @@ static void calculate_odm_slices(const struct dc_stream_state *stream, unsigned
 	odm_slice_end_x[odm_factor - 1] = stream->src.width - 1;
 }
 
-static bool is_plane_in_odm_slice(const struct dc_plane_state *plane, unsigned int slice_index, unsigned int *odm_slice_end_x, unsigned int num_slices)
-{
-	unsigned int slice_start_x, slice_end_x;
-
-	if (slice_index == 0)
-		slice_start_x = 0;
-	else
-		slice_start_x = odm_slice_end_x[slice_index - 1] + 1;
-
-	slice_end_x = odm_slice_end_x[slice_index];
-
-	if (plane->clip_rect.x + plane->clip_rect.width < slice_start_x)
-		return false;
-
-	if (plane->clip_rect.x > slice_end_x)
-		return false;
-
-	return true;
-}
-
 static void add_odm_slice_to_odm_tree(struct dml2_context *ctx,
 		struct dc_state *state,
 		struct dc_pipe_mapping_scratch *scratch,
@@ -791,12 +771,6 @@ static void map_pipes_for_plane(struct dml2_context *ctx, struct dc_state *state
 	sort_pipes_for_splitting(&scratch->pipe_pool);
 
 	for (odm_slice_index = 0; odm_slice_index < scratch->odm_info.odm_factor; odm_slice_index++) {
-		// We build the tree for one ODM slice at a time.
-		// Each ODM slice shares a common OPP
-		if (!is_plane_in_odm_slice(plane, odm_slice_index, scratch->odm_info.odm_slice_end_x, scratch->odm_info.odm_factor)) {
-			continue;
-		}
-
 		// Now we have a list of all pipes to be used for this plane/stream, now setup the tree.
 		scratch->odm_info.next_higher_pipe_for_odm_slice[odm_slice_index] = add_plane_to_blend_tree(ctx, state,
 				plane,
drivers/gpu/drm/amd/display/dc/hubp/dcn31/dcn31_hubp.c +1 -1
index a65a0ddee646..c671908ba7d0 100644
@@ -44,7 +44,7 @@ void hubp31_set_unbounded_requesting(struct hubp *hubp, bool enable)
 	struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
 
 	REG_UPDATE(DCHUBP_CNTL, HUBP_UNBOUNDED_REQ_MODE, enable);
-	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, enable);
+	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, 1);
 }
 
 void hubp31_soft_reset(struct hubp *hubp, bool reset)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c +9 -13
index fd0530251c6e..d725af14af37 100644
@@ -1992,20 +1992,11 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 	dc->hwss.get_position(&pipe_ctx, 1, &position);
 	vpos = position.vertical_count;
 
-	/* Avoid wraparound calculation issues */
-	vupdate_start += stream->timing.v_total;
-	vupdate_end += stream->timing.v_total;
-	vpos += stream->timing.v_total;
-
 	if (vpos <= vupdate_start) {
 		/* VPOS is in VACTIVE or back porch. */
 		lines_to_vupdate = vupdate_start - vpos;
-	} else if (vpos > vupdate_end) {
-		/* VPOS is in the front porch. */
-		return;
 	} else {
-		/* VPOS is in VUPDATE. */
-		lines_to_vupdate = 0;
+		lines_to_vupdate = stream->timing.v_total - vpos + vupdate_start;
 	}
 
 	/* Calculate time until VUPDATE in microseconds. */
@@ -2013,13 +2004,18 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 		stream->timing.h_total * 10000u / stream->timing.pix_clk_100hz;
 	us_to_vupdate = lines_to_vupdate * us_per_line;
 
+	/* Stall out until the cursor update completes. */
+	if (vupdate_end < vupdate_start)
+		vupdate_end += stream->timing.v_total;
+
+	/* Position is in the range of vupdate start and end*/
+	if (lines_to_vupdate > stream->timing.v_total - vupdate_end + vupdate_start)
+		us_to_vupdate = 0;
+
 	/* 70 us is a conservative estimate of cursor update time*/
 	if (us_to_vupdate > 70)
 		return;
 
-	/* Stall out until the cursor update completes. */
-	if (vupdate_end < vupdate_start)
-		vupdate_end += stream->timing.v_total;
 	us_vupdate = (vupdate_end - vupdate_start + 1) * us_per_line;
 	udelay(us_to_vupdate + us_vupdate);
 }
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +5 -0
index a71c6117d7e5..0115d26b5af9 100644
@@ -51,6 +51,11 @@ static int amd_powerplay_create(struct amdgpu_device *adev)
 	hwmgr->adev = adev;
 	hwmgr->not_vf = !amdgpu_sriov_vf(adev);
 	hwmgr->device = amdgpu_cgs_create_device(adev);
+	if (!hwmgr->device) {
+		kfree(hwmgr);
+		return -ENOMEM;
+	}
+
 	mutex_init(&hwmgr->msg_lock);
 	hwmgr->chip_family = adev->family;
 	hwmgr->chip_id = adev->asic_type;
drivers/gpu/drm/drm_atomic_helper.c +1 -1
index 5186d2114a50..32902f77f00d 100644
@@ -1376,7 +1376,7 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
 		mode = &new_crtc_state->mode;
 		adjusted_mode = &new_crtc_state->adjusted_mode;
 
-		if (!new_crtc_state->mode_changed)
+		if (!new_crtc_state->mode_changed && !new_crtc_state->connectors_changed)
 			continue;
 
 		drm_dbg_atomic(dev, "modeset on [ENCODER:%d:%s]\n",
drivers/gpu/drm/drm_debugfs.c +1 -1
index 9d3e6dd68810..98a37dc3324e 100644
@@ -743,7 +743,7 @@ static int bridges_show(struct seq_file *m, void *data)
 	unsigned int idx = 0;
 
 	drm_for_each_bridge_in_chain(encoder, bridge) {
-		drm_printf(&p, "bridge[%d]: %ps\n", idx++, bridge->funcs);
+		drm_printf(&p, "bridge[%u]: %ps\n", idx++, bridge->funcs);
 		drm_printf(&p, "\ttype: [%d] %s\n",
 			   bridge->type,
 			   drm_get_connector_type_name(bridge->type));
drivers/gpu/drm/drm_panel.c +4 -1
index 19ab0a794add..fd8fa2e0ef6f 100644
@@ -49,7 +49,7 @@ static LIST_HEAD(panel_list);
  * @dev: parent device of the panel
  * @funcs: panel operations
  * @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
- *	the panel interface
+ *	the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
  *
  * Initialize the panel structure for subsequent registration with
  * drm_panel_add().
@@ -57,6 +57,9 @@ static LIST_HEAD(panel_list);
 void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs, int connector_type)
 {
+	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
+		DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
+
 	INIT_LIST_HEAD(&panel->list);
 	INIT_LIST_HEAD(&panel->followers);
 	mutex_init(&panel->follower_lock);
drivers/gpu/drm/drm_panel_orientation_quirks.c +44 -2

90 lines not on this page · raw message

drivers/gpu/drm/i915/gt/intel_rc6.c +4 -15
index 9378d5901c49..9ca42589da4d 100644
@@ -117,21 +117,10 @@ static void gen11_rc6_enable(struct intel_rc6 *rc6)
 			GEN6_RC_CTL_RC6_ENABLE |
 			GEN6_RC_CTL_EI_MODE(1);
 
-	/*
-	 * BSpec 52698 - Render powergating must be off.
-	 * FIXME BSpec is outdated, disabling powergating for MTL is just
-	 * temporary wa and should be removed after fixing real cause
-	 * of forcewake timeouts.
-	 */
-	if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
-		pg_enable =
-			GEN9_MEDIA_PG_ENABLE |
-			GEN11_MEDIA_SAMPLER_PG_ENABLE;
-	else
-		pg_enable =
-			GEN9_RENDER_PG_ENABLE |
-			GEN9_MEDIA_PG_ENABLE |
-			GEN11_MEDIA_SAMPLER_PG_ENABLE;
+	pg_enable =
+		GEN9_RENDER_PG_ENABLE |
+		GEN9_MEDIA_PG_ENABLE |
+		GEN11_MEDIA_SAMPLER_PG_ENABLE;
 
 	if (GRAPHICS_VER(gt->i915) >= 12 && !IS_DG1(gt->i915)) {
 		for (i = 0; i < I915_MAX_VCS; i++)
drivers/gpu/drm/i915/gt/uc/intel_huc.c +5 -6
index 2d9152eb7282..24fdce844d9e 100644
@@ -317,6 +317,11 @@ void intel_huc_init_early(struct intel_huc *huc)
 	}
 }
 
+void intel_huc_fini_late(struct intel_huc *huc)
+{
+	delayed_huc_load_fini(huc);
+}
+
 #define HUC_LOAD_MODE_STRING(x) (x ? "GSC" : "legacy")
 static int check_huc_loading_mode(struct intel_huc *huc)
 {
@@ -414,12 +419,6 @@ int intel_huc_init(struct intel_huc *huc)
 
 void intel_huc_fini(struct intel_huc *huc)
 {
-	/*
-	 * the fence is initialized in init_early, so we need to clean it up
-	 * even if HuC loading is off.
-	 */
-	delayed_huc_load_fini(huc);
-
 	if (huc->heci_pkt)
 		i915_vma_unpin_and_release(&huc->heci_pkt, 0);
 
drivers/gpu/drm/i915/gt/uc/intel_huc.h +1 -0
index ba5cb08e9e7b..09aff3148f7d 100644
@@ -55,6 +55,7 @@ struct intel_huc {
 
 int intel_huc_sanitize(struct intel_huc *huc);
 void intel_huc_init_early(struct intel_huc *huc);
+void intel_huc_fini_late(struct intel_huc *huc);
 int intel_huc_init(struct intel_huc *huc);
 void intel_huc_fini(struct intel_huc *huc);
 void intel_huc_suspend(struct intel_huc *huc);
drivers/gpu/drm/i915/gt/uc/intel_uc.c +1 -0
index 5b8080ec5315..4f751ce74214 100644
@@ -136,6 +136,7 @@ void intel_uc_init_late(struct intel_uc *uc)
 
 void intel_uc_driver_late_release(struct intel_uc *uc)
 {
+	intel_huc_fini_late(&uc->huc);
 }
 
 /**
drivers/gpu/drm/i915/selftests/i915_selftest.c +18 -0
index fee76c1d2f45..889281819c5b 100644
@@ -23,7 +23,9 @@
 
 #include <linux/random.h>
 
+#include "gt/intel_gt.h"
 #include "gt/intel_gt_pm.h"
+#include "gt/intel_gt_regs.h"
 #include "gt/uc/intel_gsc_fw.h"
 
 #include "i915_driver.h"
@@ -253,11 +255,27 @@ int i915_mock_selftests(void)
 int i915_live_selftests(struct pci_dev *pdev)
 {
 	struct drm_i915_private *i915 = pdev_to_i915(pdev);
+	struct intel_uncore *uncore = &i915->uncore;
 	int err;
+	u32 pg_enable;
+	intel_wakeref_t wakeref;
 
 	if (!i915_selftest.live)
 		return 0;
 
+	/*
+	 * FIXME Disable render powergating, this is temporary wa and should be removed
+	 * after fixing real cause of forcewake timeouts.
+	 */
+	with_intel_runtime_pm(uncore->rpm, wakeref) {
+		if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 00), IP_VER(12, 74))) {
+			pg_enable = intel_uncore_read(uncore, GEN9_PG_ENABLE);
+			if (pg_enable & GEN9_RENDER_PG_ENABLE)
+				intel_uncore_write_fw(uncore, GEN9_PG_ENABLE,
+						      pg_enable & ~GEN9_RENDER_PG_ENABLE);
+		}
+	}
+
 	__wait_gsc_proxy_completed(i915);
 	__wait_gsc_huc_load_completed(i915);
 
drivers/gpu/drm/mediatek/mtk_dpi.c +16 -7
index a08d20654954..9c11d3158324 100644
@@ -127,14 +127,14 @@ struct mtk_dpi_yc_limit {
  * @is_ck_de_pol: Support CK/DE polarity.
  * @swap_input_support: Support input swap function.
  * @support_direct_pin: IP supports direct connection to dpi panels.
- * @input_2pixel: Input pixel of dp_intf is 2 pixel per round, so enable this
- *		  config to enable this feature.
  * @dimension_mask: Mask used for HWIDTH, HPORCH, VSYNC_WIDTH and VSYNC_PORCH
  *		    (no shift).
  * @hvsize_mask: Mask of HSIZE and VSIZE mask (no shift).
  * @channel_swap_shift: Shift value of channel swap.
  * @yuv422_en_bit: Enable bit of yuv422.
  * @csc_enable_bit: Enable bit of CSC.
+ * @input_2p_en_bit: Enable bit for input two pixel per round feature.
+ *		     If present, implies that the feature must be enabled.
  * @pixels_per_iter: Quantity of transferred pixels per iteration.
  * @edge_cfg_in_mmsys: If the edge configuration for DPI's output needs to be set in MMSYS.
  */
@@ -148,12 +148,12 @@ struct mtk_dpi_conf {
 	bool is_ck_de_pol;
 	bool swap_input_support;
 	bool support_direct_pin;
-	bool input_2pixel;
 	u32 dimension_mask;
 	u32 hvsize_mask;
 	u32 channel_swap_shift;
 	u32 yuv422_en_bit;
 	u32 csc_enable_bit;
+	u32 input_2p_en_bit;
 	u32 pixels_per_iter;
 	bool edge_cfg_in_mmsys;
 };
@@ -471,6 +471,7 @@ static void mtk_dpi_power_off(struct mtk_dpi *dpi)
 
 	mtk_dpi_disable(dpi);
 	clk_disable_unprepare(dpi->pixel_clk);
+	clk_disable_unprepare(dpi->tvd_clk);
 	clk_disable_unprepare(dpi->engine_clk);
 }
 
@@ -487,6 +488,12 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)
 		goto err_refcount;
 	}
 
+	ret = clk_prepare_enable(dpi->tvd_clk);
+	if (ret) {
+		dev_err(dpi->dev, "Failed to enable tvd pll: %d\n", ret);
+		goto err_engine;
+	}
+
 	ret = clk_prepare_enable(dpi->pixel_clk);
 	if (ret) {
 		dev_err(dpi->dev, "Failed to enable pixel clock: %d\n", ret);
@@ -496,6 +503,8 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi)
 	return 0;
 
 err_pixel:
+	clk_disable_unprepare(dpi->tvd_clk);
+err_engine:
 	clk_disable_unprepare(dpi->engine_clk);
 err_refcount:
 	dpi->refcount--;
@@ -610,9 +619,9 @@ static int mtk_dpi_set_display_mode(struct mtk_dpi *dpi,
 		mtk_dpi_dual_edge(dpi);
 		mtk_dpi_config_disable_edge(dpi);
 	}
-	if (dpi->conf->input_2pixel) {
-		mtk_dpi_mask(dpi, DPI_CON, DPINTF_INPUT_2P_EN,
-			     DPINTF_INPUT_2P_EN);
+	if (dpi->conf->input_2p_en_bit) {
+		mtk_dpi_mask(dpi, DPI_CON, dpi->conf->input_2p_en_bit,
+			     dpi->conf->input_2p_en_bit);
 	}
 	mtk_dpi_sw_reset(dpi, false);
 
@@ -992,12 +1001,12 @@ static const struct mtk_dpi_conf mt8195_dpintf_conf = {
 	.output_fmts = mt8195_output_fmts,
 	.num_output_fmts = ARRAY_SIZE(mt8195_output_fmts),
 	.pixels_per_iter = 4,
-	.input_2pixel = true,
 	.dimension_mask = DPINTF_HPW_MASK,
 	.hvsize_mask = DPINTF_HSIZE_MASK,
 	.channel_swap_shift = DPINTF_CH_SWAP,
 	.yuv422_en_bit = DPINTF_YUV422_EN,
 	.csc_enable_bit = DPINTF_CSC_ENABLE,
+	.input_2p_en_bit = DPINTF_INPUT_2P_EN,
 };
 
 static int mtk_dpi_probe(struct platform_device *pdev)
drivers/gpu/drm/tests/drm_client_modeset_test.c +3 -0
index 7516f6cb36e4..3e9518d7b8b7 100644
@@ -95,6 +95,9 @@ static void drm_test_pick_cmdline_res_1920_1080_60(struct kunit *test)
 	expected_mode = drm_mode_find_dmt(priv->drm, 1920, 1080, 60, false);
 	KUNIT_ASSERT_NOT_NULL(test, expected_mode);
 
+	ret = drm_kunit_add_mode_destroy_action(test, expected_mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	KUNIT_ASSERT_TRUE(test,
 			  drm_mode_parse_command_line_for_connector(cmdline,
 								    connector,
drivers/gpu/drm/tests/drm_cmdline_parser_test.c +9 -1
index 59c8408c453c..1cfcb597b088 100644
@@ -7,6 +7,7 @@
 #include <kunit/test.h>
 
 #include <drm/drm_connector.h>
+#include <drm/drm_kunit_helpers.h>
 #include <drm/drm_modes.h>
 
 static const struct drm_connector no_connector = {};
@@ -955,8 +956,15 @@ struct drm_cmdline_tv_option_test {
 static void drm_test_cmdline_tv_options(struct kunit *test)
 {
 	const struct drm_cmdline_tv_option_test *params = test->param_value;
-	const struct drm_display_mode *expected_mode = params->mode_fn(NULL);
+	struct drm_display_mode *expected_mode;
 	struct drm_cmdline_mode mode = { };
+	int ret;
+
+	expected_mode = params->mode_fn(NULL);
+	KUNIT_ASSERT_NOT_NULL(test, expected_mode);
+
+	ret = drm_kunit_add_mode_destroy_action(test, expected_mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
 
 	KUNIT_EXPECT_TRUE(test, drm_mode_parse_command_line_for_connector(params->cmdline,
 									  &no_connector, &mode));
drivers/gpu/drm/tests/drm_kunit_helpers.c +22 -0
index 3c0b7824c0be..922c4b6ed1dc 100644
@@ -319,6 +319,28 @@ static void kunit_action_drm_mode_destroy(void *ptr)
 	drm_mode_destroy(NULL, mode);
 }
 
+/**
+ * drm_kunit_add_mode_destroy_action() - Add a drm_destroy_mode kunit action
+ * @test: The test context object
+ * @mode: The drm_display_mode to destroy eventually
+ *
+ * Registers a kunit action that will destroy the drm_display_mode at
+ * the end of the test.
+ *
+ * If an error occurs, the drm_display_mode will be destroyed.
+ *
+ * Returns:
+ * 0 on success, an error code otherwise.
+ */
+int drm_kunit_add_mode_destroy_action(struct kunit *test,
+				      struct drm_display_mode *mode)
+{
+	return kunit_add_action_or_reset(test,
+					 kunit_action_drm_mode_destroy,
+					 mode);
+}
+EXPORT_SYMBOL_GPL(drm_kunit_add_mode_destroy_action);
+
 /**
  * drm_kunit_display_mode_from_cea_vic() - return a mode for CEA VIC for a KUnit test
  * @test: The test context object
drivers/gpu/drm/tests/drm_modes_test.c +22 -0
index 6ed51f99e133..7ba646d87856 100644
@@ -40,6 +40,7 @@ static void drm_test_modes_analog_tv_ntsc_480i(struct kunit *test)
 {
 	struct drm_test_modes_priv *priv = test->priv;
 	struct drm_display_mode *mode;
+	int ret;
 
 	mode = drm_analog_tv_mode(priv->drm,
 				  DRM_MODE_TV_MODE_NTSC,
@@ -47,6 +48,9 @@ static void drm_test_modes_analog_tv_ntsc_480i(struct kunit *test)
 				  true);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
+	ret = drm_kunit_add_mode_destroy_action(test, mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	KUNIT_EXPECT_EQ(test, drm_mode_vrefresh(mode), 60);
 	KUNIT_EXPECT_EQ(test, mode->hdisplay, 720);
 
@@ -70,6 +74,7 @@ static void drm_test_modes_analog_tv_ntsc_480i_inlined(struct kunit *test)
 {
 	struct drm_test_modes_priv *priv = test->priv;
 	struct drm_display_mode *expected, *mode;
+	int ret;
 
 	expected = drm_analog_tv_mode(priv->drm,
 				      DRM_MODE_TV_MODE_NTSC,
@@ -77,9 +82,15 @@ static void drm_test_modes_analog_tv_ntsc_480i_inlined(struct kunit *test)
 				      true);
 	KUNIT_ASSERT_NOT_NULL(test, expected);
 
+	ret = drm_kunit_add_mode_destroy_action(test, expected);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	mode = drm_mode_analog_ntsc_480i(priv->drm);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
+	ret = drm_kunit_add_mode_destroy_action(test, mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected, mode));
 }
 
@@ -87,6 +98,7 @@ static void drm_test_modes_analog_tv_pal_576i(struct kunit *test)
 {
 	struct drm_test_modes_priv *priv = test->priv;
 	struct drm_display_mode *mode;
+	int ret;
 
 	mode = drm_analog_tv_mode(priv->drm,
 				  DRM_MODE_TV_MODE_PAL,
@@ -94,6 +106,9 @@ static void drm_test_modes_analog_tv_pal_576i(struct kunit *test)
 				  true);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
+	ret = drm_kunit_add_mode_destroy_action(test, mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	KUNIT_EXPECT_EQ(test, drm_mode_vrefresh(mode), 50);
 	KUNIT_EXPECT_EQ(test, mode->hdisplay, 720);
 
@@ -117,6 +132,7 @@ static void drm_test_modes_analog_tv_pal_576i_inlined(struct kunit *test)
 {
 	struct drm_test_modes_priv *priv = test->priv;
 	struct drm_display_mode *expected, *mode;
+	int ret;
 
 	expected = drm_analog_tv_mode(priv->drm,
 				      DRM_MODE_TV_MODE_PAL,
@@ -124,9 +140,15 @@ static void drm_test_modes_analog_tv_pal_576i_inlined(struct kunit *test)
 				      true);
 	KUNIT_ASSERT_NOT_NULL(test, expected);
 
+	ret = drm_kunit_add_mode_destroy_action(test, expected);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	mode = drm_mode_analog_pal_576i(priv->drm);
 	KUNIT_ASSERT_NOT_NULL(test, mode);
 
+	ret = drm_kunit_add_mode_destroy_action(test, mode);
+	KUNIT_ASSERT_EQ(test, ret, 0);
+
 	KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected, mode));
 }
 
drivers/gpu/drm/tests/drm_probe_helper_test.c +7 -1
index bc09ff38aca1..db0e4f5df275 100644
@@ -98,7 +98,7 @@ drm_test_connector_helper_tv_get_modes_check(struct kunit *test)
 	struct drm_connector *connector = &priv->connector;
 	struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;
 	struct drm_display_mode *mode;
-	const struct drm_display_mode *expected;
+	struct drm_display_mode *expected;
 	size_t len;
 	int ret;
 
@@ -134,6 +134,9 @@ drm_test_connector_helper_tv_get_modes_check(struct kunit *test)
 
 		KUNIT_EXPECT_TRUE(test, drm_mode_equal(mode, expected));
 		KUNIT_EXPECT_TRUE(test, mode->type & DRM_MODE_TYPE_PREFERRED);
+
+		ret = drm_kunit_add_mode_destroy_action(test, expected);
+		KUNIT_ASSERT_EQ(test, ret, 0);
 	}
 
 	if (params->num_expected_modes >= 2) {
@@ -145,6 +148,9 @@ drm_test_connector_helper_tv_get_modes_check(struct kunit *test)
 
 		KUNIT_EXPECT_TRUE(test, drm_mode_equal(mode, expected));
 		KUNIT_EXPECT_FALSE(test, mode->type & DRM_MODE_TYPE_PREFERRED);
+
+		ret = drm_kunit_add_mode_destroy_action(test, expected);
+		KUNIT_ASSERT_EQ(test, ret, 0);
 	}
 
 	mutex_unlock(&priv->drm->mode_config.mutex);
drivers/gpu/drm/xe/xe_gt.c +4 -0
index 98fe8573e054..17ba15132a98 100644
@@ -32,6 +32,7 @@
 #include "xe_gt_pagefault.h"
 #include "xe_gt_printk.h"
 #include "xe_gt_sriov_pf.h"
+#include "xe_gt_sriov_vf.h"
 #include "xe_gt_sysfs.h"
 #include "xe_gt_tlb_invalidation.h"
 #include "xe_gt_topology.h"
@@ -647,6 +648,9 @@ static int do_gt_reset(struct xe_gt *gt)
 {
 	int err;
 
+	if (IS_SRIOV_VF(gt_to_xe(gt)))
+		return xe_gt_sriov_vf_reset(gt);
+
 	xe_gsc_wa_14015076503(gt, true);
 
 	xe_mmio_write32(gt, GDRST, GRDOM_FULL);
drivers/gpu/drm/xe/xe_gt_sriov_vf.c +16 -0
index 4ebc82e607af..f982d6f9f218 100644
@@ -57,6 +57,22 @@ static int vf_reset_guc_state(struct xe_gt *gt)
 	return err;
 }
 
+/**
+ * xe_gt_sriov_vf_reset - Reset GuC VF internal state.
+ * @gt: the &xe_gt
+ *
+ * It requires functional `GuC MMIO based communication`_.
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int xe_gt_sriov_vf_reset(struct xe_gt *gt)
+{
+	if (!xe_device_uc_enabled(gt_to_xe(gt)))
+		return -ENODEV;
+
+	return vf_reset_guc_state(gt);
+}
+
 static int guc_action_match_version(struct xe_guc *guc,
 				    u32 wanted_branch, u32 wanted_major, u32 wanted_minor,
 				    u32 *branch, u32 *major, u32 *minor, u32 *patch)
drivers/gpu/drm/xe/xe_gt_sriov_vf.h +1 -0
index e541ce57bec2..576ff5e795a8 100644
@@ -12,6 +12,7 @@ struct drm_printer;
 struct xe_gt;
 struct xe_reg;
 
+int xe_gt_sriov_vf_reset(struct xe_gt *gt);
 int xe_gt_sriov_vf_bootstrap(struct xe_gt *gt);
 int xe_gt_sriov_vf_query_config(struct xe_gt *gt);
 int xe_gt_sriov_vf_connect(struct xe_gt *gt);
drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c +52 -56

137 lines not on this page · raw message

drivers/gpu/drm/xe/xe_tuning.c +0 -8
index 0d5e04158917..1fb12da21c9e 100644
@@ -97,14 +97,6 @@ static const struct xe_rtp_entry_sr engine_tunings[] = {
 };
 
 static const struct xe_rtp_entry_sr lrc_tunings[] = {
-	{ XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
-	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210), ENGINE_CLASS(RENDER)),
-	  /* read verification is ignored due to 1608008084. */
-	  XE_RTP_ACTIONS(FIELD_SET_NO_READ_MASK(FF_MODE2,
-						FF_MODE2_GS_TIMER_MASK,
-						FF_MODE2_GS_TIMER_224))
-	},
-
 	/* DG2 */
 
 	{ XE_RTP_NAME("Tuning: L3 cache"),
drivers/gpu/drm/xe/xe_wa.c +7 -0
index 37e592b2bf06..0a1905f8d380 100644
@@ -606,6 +606,13 @@ static const struct xe_rtp_entry_sr engine_was[] = {
 };
 
 static const struct xe_rtp_entry_sr lrc_was[] = {
+	{ XE_RTP_NAME("16011163337"),
[… more lines in the raw message]

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

drivers/hid/Kconfig +14 -0
index 4500d7653b05..95a4ede27099 100644

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

drivers/hid/Makefile +1 -0
index f2900ee2ef85..27ee02bf6f26 100644

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

drivers/hid/hid-ids.h +37 -0
index c6ae7c4268b8..92baa34f42f2 100644

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

drivers/hid/hid-universal-pidff.c new file +202 -0

202 lines not on this page · raw message

drivers/hid/usbhid/hid-core.c +1 -0
index a9e85bdd4cc6..bf0f51ef0149 100644

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

drivers/hid/usbhid/hid-pidff.c +372 -197

569 lines not on this page · raw message

drivers/hid/usbhid/hid-pidff.h new file +33 -0
new file mode 100644
index 000000000000..dda571e0a5bd

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

drivers/hsi/clients/ssi_protocol.c +1 -0
index afe470f3661c..6105ea9a6c6a 100644

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

drivers/i3c/master.c +3 -0
index 53ab814b676f..7c1dc42b809b 100644

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

drivers/i3c/master/svc-i3c-master.c +1 -1
index 87f98fa8afd5..42102baabcdd 100644

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

drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c +5 -27
index d525ab43a4ae..dd7d030d2e89 100644

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

drivers/iommu/exynos-iommu.c +2 -2
index c666ecab955d..7465dbb6fa80 100644

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

drivers/iommu/intel/iommu.c +2 -0
index 9c46a4cd3848..038a66388564 100644

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

drivers/iommu/intel/irq_remapping.c +42 -29

71 lines not on this page · raw message

drivers/iommu/iommufd/device.c +122 -1

123 lines not on this page · raw message

drivers/iommu/iommufd/fault.c +4 -4
index 95e2e99ab272..1b0812f8bf84 100644

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

drivers/iommu/iommufd/iommufd_private.h +4 -29
index c1f82cb68242..18cdf1391a03 100644

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

drivers/iommu/mtk_iommu.c +13 -13
index 6a2707fe7a78..32deab732209 100644

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

drivers/leds/rgb/leds-qcom-lpg.c +4 -4
index f3c9ef2bfa57..5d8e27e2e7ae 100644

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

drivers/mailbox/tegra-hsp.c +60 -12

72 lines not on this page · raw message

drivers/md/dm-ebs-target.c +7 -0
index 18ae45dcbfb2..b19b0142a690 100644

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

drivers/md/dm-integrity.c +25 -23

48 lines not on this page · raw message

drivers/md/dm-verity-target.c +8 -0
index c142ec5458b7..53ba0fbdf495 100644

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

drivers/media/common/siano/smsdvb-main.c +2 -0
index 44d8fe8b220e..9b1a650ed055 100644

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

drivers/media/i2c/adv748x/adv748x.h +1 -1
index 9bc0121d0eff..2c1db5968af8 100644

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

drivers/media/i2c/ccs/ccs-core.c +4 -2
index cb21df46bab1..4b7d8039b1c9 100644

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

drivers/media/i2c/hi556.c +3 -2
index f31f9886c924..0e89aff9c664 100644

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

drivers/media/i2c/imx214.c +15 -10
index 4962cfe7c83d..6a393e18267f 100644

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

drivers/media/i2c/imx219.c +77 -29

106 lines not on this page · raw message

drivers/media/i2c/imx319.c +6 -3
index dd1b4ff983dc..701840f4a5cc 100644

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

drivers/media/i2c/ov7251.c +3 -1
index 30f61e04ecaf..3226888d77e9 100644

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

drivers/media/pci/intel/ipu6/ipu6-isys-video.c +1 -0
index b37561352ead..48388c0c851c 100644

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

drivers/media/pci/mgb4/mgb4_cmt.c +5 -3
index a25b68403bc6..c22ef51436ed 100644

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

drivers/media/platform/chips-media/wave5/wave5-hw.c +1 -1
index c89aafabc742..710311d85113 100644

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

drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +30 -1
index 0c5c9a8de91f..e238447c88bb 100644

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

drivers/media/platform/chips-media/wave5/wave5-vpu.c +2 -2
index 7273254ecb03..b13c5cd46d7e 100644

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

drivers/media/platform/chips-media/wave5/wave5-vpuapi.c +10 -0
index 1a3efb638dde..65fdabcd9d29 100644

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

drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c +4 -1
index ff23b225db70..1b0bc47355c0 100644

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

drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c +2 -1
index eea709d93820..47c302745c1d 100644

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

drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c +5 -1
index f8145998fcaf..8522f71fc901 100644

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

drivers/media/platform/nuvoton/npcm-video.c +3 -3
index db454c9d2641..e0dee768a3be 100644

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

drivers/media/platform/qcom/venus/hfi_parser.c +74 -26

100 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_venus.c +16 -2
index f9437b6412b9..ab93757fff4b 100644

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

drivers/media/platform/rockchip/rga/rga-hw.c +1 -1
index 11c3d7234757..b2ef3beec525 100644

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

drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c +3 -2
index 73f7af674c01..0c636090d723 100644

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

drivers/media/platform/st/stm32/dma2d/dma2d.c +2 -1
index 92f1edee58f8..3c64e9126025 100644

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

drivers/media/rc/streamzap.c +38 -30

68 lines not on this page · raw message

drivers/media/test-drivers/vim2m.c +3 -3
index 3e3b424b4860..8ca6459286ba 100644

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

drivers/media/test-drivers/visl/visl-core.c +12 -0
index c46464bcaf2e..93239391f2cf 100644

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

drivers/media/usb/uvc/uvc_driver.c +9 -0
index 4d8e00b425f4..a0d683d26647 100644

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

drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
index 2cf5dcee0ce8..4d05873892c1 100644

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

drivers/mfd/ene-kb3930.c +1 -1
index fa0ad2f14a39..9460a67acb0b 100644

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

drivers/misc/pci_endpoint_test.c +1 -2
index 3aaaf47fa4ee..8dea2b44fd8b 100644

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

drivers/mmc/host/dw_mmc.c +92 -2

94 lines not on this page · raw message

drivers/mmc/host/dw_mmc.h +27 -0
index 6447b916990d..5463392dc811 100644

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

drivers/mtd/inftlcore.c +5 -4
index 9739387cff8c..58c6e1743f5c 100644

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

drivers/mtd/mtdpstore.c +6 -6
index 7ac8ac901306..9cf3872e37ae 100644

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

drivers/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
index e76df6a00ed4..2eb44c1428fb 100644

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

drivers/mtd/nand/raw/r852.c +3 -0
index ed0cf732d20e..36cfe03cd4ac 100644

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

drivers/net/can/flexcan/flexcan-core.c +34 -1
index b080740bcb10..fca290afb532 100644

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

drivers/net/can/flexcan/flexcan.h +5 -0
index 4933d8c7439e..2cf886618c96 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +21 -2
index 5935100e7d65..e20d9d62032e 100644

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

drivers/net/ethernet/google/gve/gve_ethtool.c +3 -1
index bdfc6e77b2af..1f5db1096d4a 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/qos.c +5 -0
index 0f844c14485a..35acc07bd964 100644

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

drivers/net/ethernet/microsoft/mana/mana_en.c +9 -37

46 lines not on this page · raw message

drivers/net/ethernet/wangxun/libwx/wx_lib.c +2 -1
index 2b3d6586f44a..71c891d14fb6 100644

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

drivers/net/phy/phy_device.c +42 -15

57 lines not on this page · raw message

drivers/net/phy/sfp.c +8 -5
index dcec92625cf6..7b33993f7001 100644

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

drivers/net/ppp/ppp_synctty.c +5 -0
index 644e99fc3623..9c4932198931 100644

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

drivers/net/usb/asix_devices.c +17 -0
index 57d6e5abc30e..da24941a6e44 100644

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

drivers/net/usb/cdc_ether.c +7 -0
index a6469235d904..a032c1ded406 100644

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

drivers/net/usb/r8152.c +6 -0
index 468c73974046..96fa3857d8e2 100644

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

drivers/net/usb/r8153_ecm.c +6 -0
index 20b2df8d74ae..8d860dacdf49 100644

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

drivers/net/wireless/ath/ath11k/ahb.c +3 -1
index 97b12f51ef28..9389dc5f4a3d 100644

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

drivers/net/wireless/ath/ath11k/core.c +1 -2
index ccf4ad35fdc3..7eba6ee054ff 100644

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

drivers/net/wireless/ath/ath11k/dp.c +11 -24
index fbf666d0ecf1..f124b7329e1a 100644

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

drivers/net/wireless/ath/ath11k/fw.c +2 -1
index 4e36292a79db..cbbd8e57119f 100644

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

drivers/net/wireless/ath/ath11k/pci.c +2 -1
index be9d2c69cc41..6ebfa5d02e2e 100644

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

drivers/net/wireless/ath/ath12k/dp_mon.c +1 -1
index 5c6749bc4039..1706ec27eb9c 100644

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

drivers/net/wireless/ath/ath12k/dp_rx.c +40 -2

42 lines not on this page · raw message

drivers/net/wireless/ath/ath12k/pci.c +1 -0
index bd269aa1740b..2ff866e1d7d5 100644

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

drivers/net/wireless/mediatek/mt76/eeprom.c +4 -0
index 0bc66cc19acd..443517d06c9f 100644

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

drivers/net/wireless/mediatek/mt76/mt76.h +1 -0
index 0b75a45ad2e8..e2e9b5ece74e 100644

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

drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +2 -2
index 7d07e720e4ec..452579ccc492 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
index e832ad53e239..a4f4d12f904e 100644

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

drivers/net/wireless/mediatek/mt76/mt7925/main.c +11 -5
index ddc67423efe2..d2a98c92e114 100644

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

drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +3 -2
index c7eba60897d2..8476f9caa98d 100644

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

drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +2 -2
index fe6a613ba008..887427e0760a 100644

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

drivers/ntb/ntb_transport.c +1 -1
index a22ea4a4b202..4f775c3e218f 100644

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

drivers/nvme/target/fcloop.c +1 -1
index e1abb27927ff..da195d61a966 100644

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

drivers/of/irq.c +46 -34

80 lines not on this page · raw message

drivers/pci/controller/cadence/pci-j721e.c +3 -2
index e091c3e55b5c..bae829ac759e 100644

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

drivers/pci/controller/pcie-brcmstb.c +9 -4
index 582fa1107087..792d24cea574 100644

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

drivers/pci/controller/pcie-rockchip-host.c +1 -1
index cbec71114825..481dcc476c55 100644

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

drivers/pci/controller/pcie-rockchip.h +0 -1
index 15ee949f2485..688f51d9bde6 100644

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

drivers/pci/controller/vmd.c +6 -6
index 9d9596947350..94ceec50a2b9 100644

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

drivers/pci/devres.c +15 -3
index 643f85849ef6..3f2691888c35 100644

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

drivers/pci/hotplug/pciehp_core.c +4 -1
index ff458e692fed..997841c69893 100644

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

drivers/pci/iomap.c +21 -8
index 9fb7cacc15cd..fe706ed946df 100644

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

drivers/pci/pci.c +6 -0
index 169aa8fd74a1..be61fa93d397 100644

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

drivers/pci/pci.h +16 -0
index 1cdc2c9547a7..65df6d2ac003 100644

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

drivers/pci/probe.c +16 -6
index 0e757b23a09f..cf7c7886b642 100644

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

drivers/perf/arm_pmu.c +3 -5
index 398cce3d76fc..2f33e69a8caf 100644

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

drivers/perf/dwc_pcie_pmu.c +22 -11
index 4ca50f9b6dfe..7dbda36884c8 100644

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

drivers/phy/freescale/phy-fsl-imx8m-pcie.c +11 -0
index e98361dcdead..afd52392cd53 100644

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

drivers/pinctrl/qcom/pinctrl-msm.c +6 -6
index aeaf0d1958f5..a6bdff7a0bb2 100644

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

drivers/pinctrl/samsung/pinctrl-exynos-arm64.c +49 -49

98 lines not on this page · raw message

drivers/pinctrl/samsung/pinctrl-exynos.h +22 -0
index 305cb1d31de4..97a43fa4dfc5 100644

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

drivers/pinctrl/samsung/pinctrl-samsung.c +1 -0
index c142cd792030..63ac89a802d3 100644

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

drivers/pinctrl/samsung/pinctrl-samsung.h +4 -0
index a1e7377bd890..14c3b6b96585 100644

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

drivers/platform/chrome/cros_ec_lpc.c +14 -8
index 626e2635e3da..ac198d1fd170 100644

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

drivers/platform/x86/x86-android-tablets/Kconfig +1 -0
index 88d9e8f2ff24..c98dfbdfb9dd 100644

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

drivers/pwm/pwm-fsl-ftm.c +6 -0
index 2510c10ca473..c45a5fca4cbb 100644

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

drivers/pwm/pwm-mediatek.c +6 -2
index 01dfa0fab80a..7eaab5831499 100644

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

drivers/pwm/pwm-rcar.c +13 -11
index 2261789cc27d..578dbdd2d5a7 100644

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

drivers/s390/virtio/virtio_ccw.c +12 -4
index 21fa7ac849e5..4904b831c0a7 100644

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

drivers/scsi/mpi3mr/mpi3mr.h +13 -1
index 1e715fd65a7d..ee5a75a4b3bb 100644

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

drivers/scsi/mpi3mr/mpi3mr_app.c +24 -0
index 7589f48aebc8..1532436f0f3a 100644

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

drivers/scsi/mpi3mr/mpi3mr_fw.c +92 -7

99 lines not on this page · raw message

drivers/scsi/st.c +1 -1
index 0dc37fc6f236..a17441635ff3 100644

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

drivers/soc/samsung/exynos-chipid.c +2 -0
index b1118d37779e..bba8d86ae1bb 100644

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

drivers/spi/spi-cadence-quadspi.c +6 -0
index 73b1edd0531b..f9463f263fba 100644

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

drivers/target/target_core_spc.c +1 -1
index ea14a3835681..61c065702350 100644

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

drivers/thermal/mediatek/lvts_thermal.c +36 -16

52 lines not on this page · raw message

drivers/thermal/rockchip_thermal.c +1 -0
index 086ed42dd16c..a84f48a752d1 100644

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

drivers/vdpa/mlx5/core/mr.c +5 -2
index 8455f08f5d40..61424342c096 100644

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

drivers/video/backlight/led_bl.c +4 -1
index c7aefcd6e4e3..782600601845 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
index 5832485ab998..c29b6236952b 100644

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

drivers/xen/balloon.c +24 -10
index 528395133b4f..4bd31242bd77 100644

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

drivers/xen/xenfs/xensyms.c +2 -2
index b799bc759c15..088b7f02c358 100644

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

fs/btrfs/disk-io.c +12 -0
index 563f106774e5..19e5f8eaae77 100644

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

fs/btrfs/extent-tree.c +8 -0
index f3e93ba7ec97..4ceffbef3298 100644

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

fs/btrfs/tests/extent-map-tests.c +1 -0
index 56e61ac1cc64..609bb6c9c087 100644

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

fs/btrfs/transaction.c +12 -0
index 82dd9ee89fbc..24806e19c7c4 100644

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

fs/btrfs/zoned.c +6 -0
index 69d03feea4e0..2bb7e32ad945 100644

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

fs/dlm/lock.c +2 -0
index 0c01e4423ee2..0ad496ceb638 100644

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

fs/erofs/fileio.c +2 -0
index 33f8539dda4a..17aed5f6c549 100644

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

fs/ext4/inode.c +48 -20

68 lines not on this page · raw message

fs/ext4/namei.c +1 -1
index 790db7eac6c2..286f8fcb74cc 100644

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

fs/ext4/super.c +17 -0
index d3795c6c0a9d..4291ab3c20be 100644

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

fs/ext4/xattr.c +10 -1
index 7647e9f6e190..6ff94cdf1515 100644

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

fs/f2fs/checkpoint.c +6 -15
index efda9a022981..86228f82f54d 100644

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

fs/f2fs/f2fs.h +30 -2
index b52df8aa9535..1c783c2e4902 100644

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

fs/f2fs/inode.c +5 -3
index 10780e37fc7b..a60db5e795a4 100644

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

fs/f2fs/node.c +31 -79

110 lines not on this page · raw message

fs/f2fs/super.c +4 -0
index a622056f27f3..573cc4725e2e 100644

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

fs/file.c +17 -9
index 4cb952541dd0..b6fb6d18ac3b 100644

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

fs/jbd2/journal.c +0 -1
index 97f487c3d8fc..c073f5fb9859 100644

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

fs/jfs/jfs_dmap.c +7 -3
index f9009e4f9ffd..0e1019382cf5 100644

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

fs/jfs/jfs_imap.c +2 -2
index a360b24ed320..8ddc14c56501 100644

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

fs/namespace.c +2 -1
index 73da51ac5a03..f898de3a6f70 100644

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

fs/nfsd/nfs4callback.c +1 -1
index 88c03e182573..127626aba7a2 100644

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

fs/nfsd/nfsctl.c +8 -1
index e83629f39604..2e835e7c107e 100644

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

fs/nfsd/stats.c +2 -2
index bb22893f1157..f7eaf95e20fc 100644

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

fs/nfsd/stats.h +1 -1
index 04aacb6c36e2..e4efb0e4e56d 100644

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

fs/smb/client/cifsencrypt.c +5 -11
index 7a43daacc815..7c61c1e944c7 100644

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

fs/smb/client/connect.c +3 -0
index 8b8475b4e262..3aaf5cdce1b7 100644

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

fs/smb/client/fs_context.c +5 -0
index f8bc1da30037..1f1f4586673a 100644

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

fs/smb/client/inode.c +10 -0
index 97151715d1a4..31fce0a1b571 100644

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

fs/smb/client/reparse.c +0 -4
index bb246ef0458f..b6556fe3dfa1 100644

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

fs/smb/client/sess.c +7 -0
index 95e14977baea..2426fa740517 100644

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

fs/smb/client/smb2misc.c +5 -4
index f3c4b70b77b9..cddf273c14ae 100644

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

fs/smb/client/smb2ops.c +3 -3
index 516be8c0b2a9..590b70d71694 100644

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

fs/smb/client/smb2pdu.c +2 -9
index 75b13175a2e7..1a7b82664255 100644

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

fs/udf/inode.c +1 -0
index 70c907fe8af9..4386dd845e40 100644

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

fs/userfaultfd.c +25 -26

51 lines not on this page · raw message

include/drm/drm_kunit_helpers.h +3 -0
index afdd46ef04f7..c835f113055d 100644

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

include/drm/intel/i915_pciids.h +4 -1
index f35534522d33..dacea289acaf 100644

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

include/linux/cgroup-defs.h +1 -0
index 38b2af336e4a..252eed781a6e 100644

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

include/linux/cgroup.h +1 -1
index f8ef47f8a634..fc1324ed597d 100644

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

include/linux/hid.h +0 -6
index dd3342301253..018de72505b0 100644

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

include/linux/io_uring_types.h +3 -0
index 4b9ba523978d..5ce332fc6ff5 100644

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

include/linux/kvm_host.h +1 -1
index 2c66ca21801c..15206450929d 100644

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

include/linux/page-flags.h +6 -0
index 48c66b846682..a9244291f506 100644

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

include/linux/pci_ids.h +2 -0
index c9dc15355f1b..c395b3c5c05c 100644

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

include/linux/perf_event.h +37 -8

45 lines not on this page · raw message

include/linux/pgtable.h +8 -6
index 8df030ebd862..be6ca84db4d8 100644

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

include/linux/printk.h +6 -0
index eca9bb2ee637..0cb647ecd77f 100644

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

include/linux/tpm.h +1 -0
index 20a40ade8030..6c3125300c00 100644

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

include/net/bluetooth/hci.h +16 -0
index dd10e02bfc74..71d243287640 100644

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

include/net/bluetooth/hci_core.h +4 -0
index c95f7e6ba255..4245910ffc4a 100644

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

include/net/mac80211.h +6 -0
index 5b712582f9a9..3b964f8834e7 100644

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

include/net/sctp/structs.h +2 -1
index 31248cfdfb23..dcd288fa1bb6 100644

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

include/net/sock.h +38 -2
index fa055cf1785e..fa9b9dadbe17 100644

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

include/uapi/linux/kfd_ioctl.h +2 -0
index 717307d6b5b7..3e1c11d9d980 100644

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

include/uapi/linux/landlock.h +2 -0
index 33745642f787..c223572f8229 100644

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

include/uapi/linux/perf_event.h +10 -1
index 4842c36fdf80..0524d541d4e3 100644

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

include/uapi/linux/psp-sev.h +14 -7
index 832c15d9155b..eeb20dfb1fda 100644

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

include/uapi/linux/rkisp1-config.h +1 -1
index 430daceafac7..2d995f3c1ca3 100644

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

include/xen/interface/xen-mca.h +1 -1
index 464aa6b3a5f9..1c9afbe8cc26 100644

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

io_uring/io_uring.c +2 -2
index cf28d29fffbf..19de7129ae0b 100644

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

io_uring/kbuf.c +2 -0
index e1895952066e..7a8c3a004800 100644

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

io_uring/net.c +3 -0
index 7ea99e082e97..384915d931b7 100644

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

kernel/cgroup/cgroup.c +6 -0
index 216535e055e1..4378f3eff25d 100644

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

kernel/cgroup/cpuset.c +103 -73

176 lines not on this page · raw message

kernel/events/core.c +147 -108

255 lines not on this page · raw message

kernel/events/internal.h +1 -0
index e072d995d670..249288d82b8d 100644

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

kernel/locking/lockdep.c +3 -0
index 536bd471557f..53c76dc71f3f 100644

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

kernel/power/hibernate.c +3 -3
index b483fcea811b..d8bad1eeedd3 100644

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

kernel/printk/printk.c +1 -3
index 3b75f6e8410b..881a26e18c65 100644

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

kernel/reboot.c +1 -0
index f05dbde2c93f..d6ee090eda94 100644

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

kernel/sched/ext.c +2 -2
index e5cab54dfdd1..fcf968490308 100644

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

kernel/trace/ftrace.c +5 -4
index dbd375f28ee0..90b59c627bb8 100644

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

kernel/trace/ring_buffer.c +3 -2
index 3e252ba16d5c..e1ffbed8cc5e 100644

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

kernel/trace/trace_events.c +3 -1
index 29eba68e0785..11dea25ef880 100644

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

kernel/trace/trace_events_synth.c +0 -1
index 24c9962c40db..1b9e32f6442f 100644

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

kernel/trace/trace_fprobe.c +17 -9
index 4acdab165793..af7d6e2060d9 100644

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

kernel/trace/trace_probe.c +28 -0
index 16a5e368e7b7..578919962e5d 100644

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

lib/sg_split.c +0 -2
index 60a0babebf2e..0f89aab5c671 100644

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

lib/zstd/common/portability_macros.h +1 -1
index 0e3b2c0a527d..0dde8bf56595 100644

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

mm/damon/ops-common.c +1 -1
index d25d99cb5f2b..d511be201c4c 100644

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

mm/damon/paddr.c +18 -6
index a9ff35341d65..8813038abc6f 100644

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

mm/hugetlb.c +1 -1
index e28e820fdb77..ad646fe6688a 100644

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

mm/memory-failure.c +8 -3
index fa25a022e64d..ec1c71abe88d 100644

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

mm/memory_hotplug.c +1 -2
index 619445096ef4..0a42e9a8caba 100644

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

mm/mremap.c +5 -5
index 1b2edd65c2a1..12af89b4342a 100644

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

mm/page_vma_mapped.c +9 -4
index ae5cc42aa208..585a53f7b06f 100644

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

mm/rmap.c +1 -1
index 73d5998677d4..674362de029d 100644

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

mm/shmem.c +1 -2
index 5960e5035f98..88fd6e2a2dcf 100644

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

mm/vmscan.c +1 -1
index 77d015d5db0c..39b3c7f35ea8 100644

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

net/8021q/vlan_dev.c +4 -27
index 458040e8a0e0..9184cf7eb128 100644

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

net/bluetooth/hci_sync.c +5 -1
index 7b2b04d6b856..cb4d47ae129e 100644

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

net/core/filter.c +44 -36

80 lines not on this page · raw message

net/core/page_pool.c +7 -1
index a813d30d2135..7b20f6fcb82c 100644

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

net/core/page_pool_user.c +1 -1
index 48335766c1bf..8d31c71bea1a 100644

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

net/core/sock.c +5 -0
index a83f64a1d96a..0842dc9189bf 100644

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

net/ethtool/netlink.c +5 -3
index e233dfc8ca4b..a52be67139d0 100644

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

net/ipv6/route.c +4 -4
index 987492dcb07c..bae8ece3e881 100644

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

net/mac80211/debugfs.c +42 -2

44 lines not on this page · raw message

net/mac80211/iface.c +4 -1
index 8bbfa45e1796..dbcd75c5d778 100644

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

net/mac80211/mesh_hwmp.c +10 -4
index 579d0f24ac9d..2922a9fec950 100644

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

net/mac80211/mlme.c +31 -14

45 lines not on this page · raw message

net/mptcp/sockopt.c +28 -0
index 505445a9598f..3caa0a9d3b38 100644

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

net/mptcp/subflow.c +12 -7
index b56bbee7312c..4c2aa45c466d 100644

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

net/netfilter/nft_set_pipapo_avx2.c +2 -1
index b8d3c3213efe..c15db28c5ebc 100644

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

net/sched/cls_api.c +45 -21

66 lines not on this page · raw message

net/sched/sch_codel.c +1 -4
index 3e8d4fe4d91e..e1f6e7618deb 100644

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

net/sched/sch_fq_codel.c +2 -4
index 4f908c11ba95..778f6e5966be 100644

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

net/sched/sch_sfq.c +50 -16

66 lines not on this page · raw message

net/sctp/socket.c +14 -8
index 36ee34f483d7..53725ee7ba06 100644

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

net/sctp/transport.c +2 -0
index 2abe45af98e7..31eca29b6cfb 100644

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

net/sunrpc/xprtrdma/svc_rdma_transport.c +2 -1
index c3fbf0779d4a..aca8bdf65d72 100644

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

net/tipc/link.c +1 -0
index 5c2088a469ce..5689e1f48547 100644

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

net/tls/tls_main.c +6 -0
index 6b4b9f2749a6..0acf313deb01 100644

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

scripts/generate_builtin_ranges.awk +5 -0
index b9ec761b3bef..d4bd5c2b998c 100755

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

security/integrity/ima/ima.h +2 -1
index abfdb4905ca2..56bf2f55d938 100644

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

security/integrity/ima/ima_main.c +13 -5
index 4b213de8dcb4..a9aab10bebca 100644

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

security/landlock/errata.h new file +99 -0

99 lines not on this page · raw message

security/landlock/errata/abi-4.h new file +15 -0
new file mode 100644
index 000000000000..c052ee54f89f

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

security/landlock/errata/abi-6.h new file +19 -0
new file mode 100644
index 000000000000..df7bc0e1fdf4

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

security/landlock/fs.c +33 -6
index 7adb25150488..511e6ae8b79c 100644

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

security/landlock/setup.c +34 -4
index 28519a45b11f..0c85ea27e409 100644

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

security/landlock/setup.h +3 -0
index c4252d46d49d..fca307c35fee 100644

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

security/landlock/syscalls.c +18 -4
index c097d356fa45..4fa2d09f657a 100644

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

security/landlock/task.c +12 -0
index dc7dab78392e..4578ce6e319d 100644

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

sound/pci/hda/hda_intel.c +43 -1

44 lines not on this page · raw message

sound/pci/hda/patch_realtek.c +22 -0
index 59e59fdc38f2..0bf833c96021 100644

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

sound/soc/amd/ps/acp63.h +1 -0
index 39208305dd6c..f9759c9342cf 100644

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

sound/soc/amd/ps/pci-ps.c +1 -1
index 5c4a0be7a788..aec3150ecf58 100644

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

sound/soc/amd/yc/acp6x-mach.c +14 -0
index a7637056972a..e632f16c9102 100644

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

sound/soc/codecs/wcd937x.c +2 -0
index 08fb13a334a4..9c1997a42334 100644

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

sound/soc/fsl/fsl_audmix.c +11 -5
index 3cd9a66b70a1..7981d598ba13 100644

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

sound/soc/intel/common/soc-acpi-intel-adl-match.c +29 -0
index bb1324fb588e..a68efbe98948 100644

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

sound/soc/qcom/qdsp6/q6apm-dai.c +32 -28

60 lines not on this page · raw message

sound/soc/qcom/qdsp6/q6apm.c +17 -1
index 2a2a5bd98110..ca57413cb784 100644

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

sound/soc/qcom/qdsp6/q6apm.h +3 -0
index c248c8d2b1ab..7ce08b401e31 100644

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

sound/soc/qcom/qdsp6/q6asm-dai.c +13 -6
index 045100c94352..a400c9a31fea 100644

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

sound/soc/sof/topology.c +2 -2
index b3fca5fd87d6..37ca15cc5728 100644

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

sound/usb/midi.c +74 -6

80 lines not on this page · raw message

tools/lib/bpf/btf_dump.c +2 -2
index 0a7327541c17..46cce18c8308 100644

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

tools/objtool/check.c +5 -0
index 286a2c0af02a..127862fa05c6 100644

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

tools/power/cpupower/bench/parse.c +4 -0
index e63dc11fa3a5..48e25be6e163 100644

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

tools/testing/ktest/ktest.pl +8 -0
index c76ad0be54e2..7e524601e01a 100755

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

tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +1 -1
index 7d7a6a06cdb7..2d8230da9064 100644

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

tools/testing/selftests/landlock/base_test.c +45 -1

46 lines not on this page · raw message

tools/testing/selftests/landlock/common.h +1 -0
index 40a2def50b83..60afc1ce11bc 100644

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

tools/testing/selftests/landlock/scoped_signal_test.c +93 -15

108 lines not on this page · raw message

tools/testing/selftests/net/mptcp/mptcp_connect.c +7 -4
index d240d02fa443..c83a8b47bbdf 100644

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

virt/kvm/Kconfig +1 -1
index fd6a3010afa8..1f51a4d906b8 100644

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

virt/kvm/eventfd.c +5 -5
index 6b390b622b72..929c7980fda6 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.