Linux 6.14.3
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.14.3 kernel.
All users of the 6.14 kernel series must upgrade.
The updated 6.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.14.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/arch/arm64/silicon-errata.rst | 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/arm/lib/crc-t10dif-glue.c | 4 arch/arm64/Kconfig | 9 arch/arm64/boot/dts/exynos/google/gs101.dtsi | 1 arch/arm64/boot/dts/mediatek/mt8173.dtsi | 6 arch/arm64/boot/dts/mediatek/mt8188.dtsi | 2 arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi | 7 arch/arm64/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi | 6 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/kvm_arm.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/kvm/sys_regs.c | 204 +-- arch/arm64/lib/crc-t10dif-glue.c | 4 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/Kbuild | 4 arch/x86/Kconfig | 20 arch/x86/coco/sev/core.c | 2 arch/x86/kernel/acpi/boot.c | 11 arch/x86/kernel/cpu/amd.c | 3 arch/x86/kernel/e820.c | 17 arch/x86/kernel/head64.c | 2 arch/x86/kernel/signal_32.c | 62 - arch/x86/kvm/cpuid.c | 8 arch/x86/kvm/x86.c | 4 arch/x86/mm/kasan_init_64.c | 1 arch/x86/mm/mem_encrypt_amd.c | 2 arch/x86/mm/mem_encrypt_identity.c | 2 arch/x86/mm/pat/set_memory.c | 6 arch/x86/xen/enlighten.c | 10 arch/x86/xen/setup.c | 3 block/blk-mq.c | 1 drivers/accel/ivpu/ivpu_debugfs.c | 4 drivers/accel/ivpu/ivpu_ipc.c | 3 drivers/accel/ivpu/ivpu_ms.c | 24 drivers/acpi/Makefile | 4 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 | 30 drivers/bluetooth/btintel_pcie.c | 1 drivers/bluetooth/btqca.c | 27 drivers/bluetooth/btqca.h | 4 drivers/bluetooth/btusb.c | 32 drivers/bluetooth/hci_ldisc.c | 19 drivers/bluetooth/hci_qca.c | 27 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/cpufreq/amd-pstate.c | 5 drivers/cpuidle/Makefile | 3 drivers/crypto/ccp/sp-pci.c | 15 drivers/firmware/cirrus/test/cs_dsp_test_control_parse.c | 51 drivers/gpio/gpio-mpc8xxx.c | 4 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/core/dc.c | 8 drivers/gpu/drm/amd/display/dc/dc.h | 2 drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 8 drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c | 2 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/display/dc/link/protocols/link_dp_capability.c | 12 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c | 2 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c | 3 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/rockchip/dw_hdmi-rockchip.c | 16 drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c | 29 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/virtio/virtgpu_prime.c | 2 drivers/gpu/drm/virtio/virtgpu_vq.c | 3 drivers/gpu/drm/xe/xe_gt.c | 4 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.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_guc_pc.c | 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-lenovo.c | 2 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/idle/Makefile | 5 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/irqchip/irq-gic-v3-its.c | 23 drivers/irqchip/irq-renesas-rzv2h.c | 2 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/ov08x40.c | 8 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/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/platform/xilinx/xilinx-tpg.c | 2 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 | 7 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/google/gve/gve_rx_dqo.c | 3 drivers/net/ethernet/intel/igc/igc.h | 2 drivers/net/ethernet/intel/igc/igc_main.c | 4 drivers/net/ethernet/intel/igc/igc_xdp.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/qos.c | 5 drivers/net/ethernet/microsoft/mana/mana_en.c | 46 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 11 drivers/net/ethernet/wangxun/libwx/wx_lib.c | 6 drivers/net/ethernet/wangxun/libwx/wx_type.h | 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 | 4 drivers/net/wireless/ath/ath11k/core.h | 5 drivers/net/wireless/ath/ath11k/dp.c | 35 drivers/net/wireless/ath/ath11k/fw.c | 3 drivers/net/wireless/ath/ath11k/mac.c | 14 drivers/net/wireless/ath/ath11k/pci.c | 3 drivers/net/wireless/ath/ath11k/reg.c | 85 + drivers/net/wireless/ath/ath11k/reg.h | 3 drivers/net/wireless/ath/ath11k/wmi.h | 1 drivers/net/wireless/ath/ath12k/dp_mon.c | 66 - drivers/net/wireless/ath/ath12k/dp_rx.c | 42 drivers/net/wireless/ath/ath12k/hal_rx.h | 3 drivers/net/wireless/ath/ath12k/pci.c | 2 drivers/net/wireless/ath/ath9k/ath9k.h | 2 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/init.c | 1 drivers/net/wireless/mediatek/mt76/mt7925/main.c | 160 +- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 170 +- drivers/net/wireless/mediatek/mt76/mt7925/mcu.h | 6 drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h | 3 drivers/net/wireless/mediatek/mt76/mt792x.h | 9 drivers/net/wireless/mediatek/mt76/mt792x_core.c | 3 drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 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/dwc/pci-layerscape.c | 2 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 | 51 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/pwm/pwm-stm32.c | 12 drivers/s390/virtio/virtio_ccw.c | 16 drivers/scsi/lpfc/lpfc_sli.c | 2 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/spi/spi-fsl-qspi.c | 36 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 | 8 fs/file.c | 26 fs/fuse/dev.c | 34 fs/fuse/dev_uring.c | 15 fs/fuse/dev_uring_i.h | 6 fs/fuse/fuse_dev_i.h | 1 fs/fuse/fuse_i.h | 3 fs/jbd2/journal.c | 1 fs/jfs/jfs_dmap.c | 10 fs/jfs/jfs_imap.c | 4 fs/namespace.c | 3 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 | 29 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/smb/common/smb2pdu.h | 6 fs/udf/inode.c | 1 fs/userfaultfd.c | 51 include/drm/drm_kunit_helpers.h | 3 include/drm/intel/pciids.h | 11 include/linux/cgroup-defs.h | 1 include/linux/cgroup.h | 2 include/linux/damon.h | 11 include/linux/hid.h | 6 include/linux/io_uring_types.h | 3 include/linux/kvm_host.h | 2 include/linux/mtd/spinand.h | 2 include/linux/page-flags.h | 6 include/linux/pci_ids.h | 2 include/linux/perf_event.h | 17 include/linux/pgtable.h | 14 include/linux/printk.h | 6 include/linux/tpm.h | 1 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/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/Makefile | 5 kernel/cgroup/cgroup.c | 6 kernel/cgroup/cpuset.c | 55 kernel/entry/Makefile | 3 kernel/events/core.c | 184 +-- kernel/events/uprobes.c | 15 kernel/locking/lockdep.c | 3 kernel/power/hibernate.c | 6 kernel/printk/printk.c | 4 kernel/rcu/srcutree.c | 11 kernel/reboot.c | 1 kernel/sched/Makefile | 5 kernel/sched/ext.c | 4 kernel/time/Makefile | 6 kernel/trace/fprobe.c | 170 ++ kernel/trace/ftrace.c | 9 kernel/trace/ring_buffer.c | 5 kernel/trace/trace_eprobe.c | 2 kernel/trace/trace_events.c | 4 kernel/trace/trace_events_synth.c | 1 kernel/trace/trace_fprobe.c | 31 kernel/trace/trace_kprobe.c | 5 kernel/trace/trace_probe.c | 28 kernel/trace/trace_probe.h | 1 kernel/trace/trace_uprobe.c | 9 lib/Makefile | 5 lib/sg_split.c | 2 lib/zstd/common/portability_macros.h | 2 mm/damon/core.c | 1 mm/damon/ops-common.c | 2 mm/damon/paddr.c | 57 - 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/core/filter.c | 80 - net/core/page_pool.c | 8 net/core/page_pool_user.c | 2 net/core/sock.c | 5 net/ethtool/cmis.h | 1 net/ethtool/cmis_cdb.c | 18 net/ethtool/common.c | 1 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 | 59 - 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 | 41 sound/soc/amd/acp/acp-sdw-legacy-mach.c | 34 sound/soc/amd/acp/soc_amd_sdw_common.h | 1 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/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 455 files changed, 5761 insertions(+), 2514 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
Ajit Pandey (1):
clk: qcom: clk-branch: Fix invert halt status bit check for votable clocks
Akihiko Odaki (1):
KVM: arm64: PMU: Set raw values from user to PM{C,I}NTEN{SET,CLR}, PMOVS{SET,CLR}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)
Andrii Nakryiko (1):
uprobes: Avoid false-positive lockdep splat on CONFIG_PREEMPT_RT=y in the ri_timer() uprobe timer callback, use raw_write_seqcount_*()
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 (1):
media: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning
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
Bernd Schubert (1):
fuse: {io-uring} Fix a possible req cancellation race
Bhupesh (1):
ext4: ignore xattrs past end
Biju Das (1):
irqchip/renesas-rzv2h: Fix wrong variable usage in rzv2h_tint_set_type()
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
Brendan Tam (1):
drm/amd/display: add workaround flag to link to force FFE preset
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
Chris Chiu (2):
ALSA: hda/realtek: fix micmute LEDs on HP Laptops with ALC3315
ALSA: hda/realtek: fix micmute LEDs on HP Laptops with ALC3247
Christian König (1):
drm/amdgpu: grab an additional reference on the gang fence v2
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()
Dan Carpenter (1):
media: xilinx-tpg: fix double put in xtpg_parse_of()
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 Hansen (1):
x86/cpu: Avoid running off the end of an AMD erratum table
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
Derek Foreman (1):
drm/rockchip: Don't change hdmi reference clock rate
Dionna Glaze (1):
crypto: ccp - Fix uAPI definitions of PSP errors
Dmitry Antipov (1):
wifi: ath9k: use unsigned long for activity check timestamp
Dmitry Baryshkov (2):
Bluetooth: qca: simplify WCN399x NVM loading
Bluetooth: qca: add WCN3950 support
Dmitry Osipenko (2):
irqchip/gic-v3: Add Rockchip 3568002 erratum workaround drm/virtio: Set missing bo->attached flag
Dorian Cruveiller (1):
Bluetooth: btusb: Add new VID/PID for WCN785x
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
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
Eric Biggers (2):
arm/crc-t10dif: fix use of out-of-scope array in crc_t10dif_arch() arm64/crc-t10dif: fix use of out-of-scope array in crc_t10dif_arch()
Ewan D. Milne (1):
scsi: lpfc: Restore clearing of NLP_UNREG_INP in ndlp->nlp_flag
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.14.3
Guixin Liu (1):
gpio: tegra186: fix resource handling in ACPI probe path
Haiyang Zhang (1):
net: mana: Switch to page pool for jumbo frames
Han Xu (1):
spi: fsl-qspi: use devm function instead of driver remove
Hans de Goede (3):
platform/x86: x86-android-tablets: Add select POWER_SUPPLY to Kconfig
media: ov08x40: Properly turn sensor on/off when runtime-suspended
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
Harshitha Ramamurthy (1):
gve: unlink old napi only if page pool exists
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 (2):
ipv6: Align behavior across nexthops during path selection
ethtool: cmis_cdb: Fix incorrect read / write length extension
Ingo Molnar (1):
zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault
Ioana Ciornei (1):
PCI: layerscape: Fix arg_count to syscon_regmap_lookup_by_phandle_args()
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
Jaegeuk Kim (1):
f2fs: fix the missing write pointer correction
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
Jani Nikula (1):
drm/rockchip: stop passing non struct drm_device to drm_err() and friends
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
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()
Jiawen Wu (1):
net: libwx: Fix the wrong Rx descriptor field
Jinjiang Tu (1):
mm/hwpoison: introduce folio_contain_hwpoisoned_page() helper
Jo Van Bulck (1):
dm-integrity: fix non-constant-time tag verification
Joe Damato (1):
igc: Fix XSK queue NAPI ID mapping
Johannes Berg (2):
wifi: mac80211: add strict mode disabling workarounds
wifi: mac80211: fix userspace_selectors corruption
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 (3):
objtool: Fix INSN_CONTEXT_SWITCH handling in validate_unret()
tracing: Disable branch profiling in noinstr code
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
Keerthy (1):
arm64: dts: ti: k3-j784s4-j742s2-main-common: Correct the GICD size
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
Kevin Hao (1):
spi: fsl-qspi: Fix double cleanup in probe error path
Kiran K (1):
Bluetooth: btintel_pcie: Add device id of Whale Peak
Kris Van Hees (1):
kbuild: exclude .rodata.(cst|str)* when building ranges
Krzysztof Kozlowski (4):
dt-bindings: coresight: qcom,coresight-tpda: Fix too many 'reg'
dt-bindings: coresight: qcom,coresight-tpdm: Fix too many 'reg'
gpio: mpc8xxx: Fix wakeup source leaks on device unbind
gpio: zynq: Fix wakeup source leaks on device unbind
Kunihiko Hayashi (3):
misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error
misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error
misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type
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
Mario Limonciello (1):
cpufreq/amd-pstate: Invalidate cppc_req_cached during suspend
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) (5):
tracing: fprobe: Cleanup fprobe hash when module unloading
tracing: probe-events: Log error for exceeding the number of arguments
tracing: probe-events: Add comments about entry data storing code
tracing: fprobe: Fix to lock module while registering fprobe
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
Matt Atwood (1):
drm/xe/ptl: Update the PTL pci id table
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()
Michael Strauss (1):
drm/amd/display: Update FIXED_VS Link Rate Toggle Workaround Usage
Michal Wajdeczko (2):
drm/xe/pf: Don't send BEGIN_ID if VF has no context/doorbells 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 (2):
ublk: fix handling recovery & reissue in ublk_abort_queue()
block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone
Ming Yen Hsieh (8):
wifi: mt76: mt792x: re-register CHANCTX_STA_CSA only for the mt7921 series
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
wifi: mt76: mt7925: adjust rm BSS flow to prevent next connection failure
wifi: mt76: mt7925: integrate *mlo_sta_cmd and *sta_cmd
wifi: mt76: mt7925: update the power-saving flow
Miquel Raynal (2):
spi: cadence-qspi: Fix probe on AM62A LP SK
mtd: spinand: Fix build with gcc < 7.5
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 (1):
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 (3):
arm64: dts: mediatek: mt8188: Assign apll1 clock as parent to avoid hang 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 (1):
svcrdma: do not unregister device for listeners
Oliver Upton (1):
KVM: arm64: Set HCR_EL2.TID1 unconditionally
P Praneesh (3):
wifi: ath11k: Fix DMA buffer allocation to resolve SWIOTLB issues
wifi: ath12k: Fix invalid entry fetch in ath12k_dp_mon_srng_process
wifi: ath12k: Avoid memory leak while enabling statistics
Pali Rohár (2):
cifs: Fix support for WSL-style symlinks
cifs: Ensure that all non-client-specific reparse points are processed by the server
Paul E. McKenney (2):
srcu: Force synchronization for srcu_get_delay() 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
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
Qingfang Deng (1):
net: stmmac: Fix accessing freed irq affinity_hint
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
Rodrigo Vivi (1):
drm/xe: Restore EIO errno return when GuC PC start fails
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
Ryan Seto (1):
drm/amd/display: Prevent VStartup Overflow
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
Sean Wang (1):
Revert "wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO"
SeongJae Park (1):
mm/damon: avoid applying DAMOS action to same entity multiple times
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 (2):
arm64: dts: ti: k3-j784s4-j742s2-main-common: Fix serdes_ln_ctrl reg-masks
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
Sung Lee (1):
drm/amd/display: Guard Possible Null Pointer Dereference
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
Taehee Yoo (1):
net: ethtool: fix ethtool_ringparam_get_cfg() returns a hds_thresh value always as 0.
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()
Thomas Weißschuh (1):
firmware: cs_dsp: test_control_parse: null-terminate test strings
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
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 (3):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0
pwm: stm32: Search an appropriate duty_cycle if period cannot be modified
Vijendar Mukunda (2):
ASoC: amd: ps: use macro for ACP6.3 pci revision id
ASoC: amd: amd_sdw: Add quirks for Dell SKU's
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
Vishnu Sankar (1):
HID: lenovo: Fix to ensure the data as __le32 instead of u32
Vivek Kasireddy (1):
drm/virtio: Fix flickering issue seen with imported dmabufs
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 (3):
cgroup/cpuset: Fix incorrect isolated_cpus update in update_parent_effective_cpumask() cgroup/cpuset: Fix error handling in remote_partition_disable() cgroup/cpuset: Fix race between newly created partition and dying one
Wen Gong (1):
wifi: ath11k: update channel list in worker when wait flag is set
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 (2):
perf/dwc_pcie: fix some unreleased resources perf/dwc_pcie: fix duplicate pci_dev devices
Zenm Chen (1):
wifi: rtw88: Add support for Mercusys MA30N and D-Link DWA-T185 rev. A1
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 (6):
Bluetooth: btusb: Add 13 USB device IDs for Qualcomm WCN785x 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()
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +2 -0
@@ -3116,6 +3116,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/arch/arm64/silicon-errata.rst +2 -0
@@ -284,6 +284,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | Rockchip | RK3588 | #3588001 | ROCKCHIP_ERRATUM_3588001 | +----------------+-----------------+-----------------+-----------------------------+ +| Rockchip | RK3568 | #3568002 | ROCKCHIP_ERRATUM_3568002 | ++----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+ | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 | +----------------+-----------------+-----------------+-----------------------------+
Documentation/devicetree/bindings/arm/qcom,coresight-tpda.yaml +1 -2
@@ -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
@@ -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
@@ -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
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 14 -SUBLEVEL = 2 +SUBLEVEL = 3 EXTRAVERSION = NAME = Baby Opossum Posse
@@ -1065,6 +1065,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 to the source directory ifdef building_out_of_srctree KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srcroot)/=)
arch/arm/lib/crc-t10dif-glue.c +1 -3
@@ -44,9 +44,7 @@ u16 crc_t10dif_arch(u16 crc, const u8 *data, size_t length)crc_t10dif_pmull8 (crc, data, length, buf);kernel_neon_end (); - crc =0 ; - data = buf; - length =sizeof (buf); +return crc_t10dif_generic (0 , buf,sizeof (buf)); } }return crc_t10dif_generic (crc, data, length);
arch/arm64/Kconfig +9 -0
@@ -1302,6 +1302,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM If unsure, say Y. +config ROCKCHIP_ERRATUM_3568002 + bool "Rockchip 3568002: GIC600 can not access physical addresses higher than 4GB" + default y + help + The Rockchip RK3566 and RK3568 GIC600 SoC integrations have AXI + addressing limited to the first 32bit of physical address space. + + If unsure, say Y. + config ROCKCHIP_ERRATUM_3588001 bool "Rockchip 3588001: GIC600 can not support shareability attributes" default y
arch/arm64/boot/dts/exynos/google/gs101.dtsi +1 -0
@@ -1454,6 +1454,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
@@ -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/mediatek/mt8188.dtsi +1 -1
@@ -1392,7 +1392,7 @@ afe: audio-controller@10b10000 { compatible = "mediatek,mt8188-afe"; reg = <0 0x10b10000 0 0x10000>; assigned-clocks = <&topckgen CLK_TOP_A1SYS_HP>; - assigned-clock-parents = <&clk26m>; + assigned-clock-parents = <&topckgen CLK_TOP_APLL1_D4>; clocks = <&clk26m>, <&apmixedsys CLK_APMIXED_APLL1>, <&apmixedsys CLK_APMIXED_APLL2>,
arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767.dtsi +0 -7
@@ -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/boot/dts/ti/k3-j784s4-j742s2-main-common.dtsi +4 -2
@@ -84,7 +84,9 @@ serdes_ln_ctrl: mux-controller@4080 { <0x10 0x3>, <0x14 0x3>, /* SERDES1 lane0/1 select */ <0x18 0x3>, <0x1c 0x3>, /* SERDES1 lane2/3 select */ <0x20 0x3>, <0x24 0x3>, /* SERDES2 lane0/1 select */ - <0x28 0x3>, <0x2c 0x3>; /* SERDES2 lane2/3 select */ + <0x28 0x3>, <0x2c 0x3>, /* SERDES2 lane2/3 select */ + <0x40 0x3>, <0x44 0x3>, /* SERDES4 lane0/1 select */ + <0x48 0x3>, <0x4c 0x3>; /* SERDES4 lane2/3 select */ idle-states = <J784S4_SERDES0_LANE0_PCIE1_LANE0>, <J784S4_SERDES0_LANE1_PCIE1_LANE1>, <J784S4_SERDES0_LANE2_IP3_UNUSED>,
@@ -193,7 +195,7 @@ gic500: interrupt-controller@1800000 { ranges; #interrupt-cells = <3>; interrupt-controller; - reg = <0x00 0x01800000 0x00 0x200000>, /* GICD */ + reg = <0x00 0x01800000 0x00 0x10000>, /* GICD */ <0x00 0x01900000 0x00 0x100000>, /* GICR */ <0x00 0x6f000000 0x00 0x2000>, /* GICC */ <0x00 0x6f010000 0x00 0x1000>, /* GICH */
arch/arm64/include/asm/cputype.h +4 -0
@@ -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
@@ -159,6 +161,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)
@@ -196,6 +199,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/kvm_arm.h +2 -2
@@ -92,12 +92,12 @@* SWIO: Turn set/way invalidates into set/way clean+invalidate * PTW: Take a stage2 fault if a stage1 walk steps in device memory * TID3: Trap EL1 reads of group 3 ID registers -* TID2: Trap CTR_EL0, CCSIDR2_EL1, CLIDR_EL1, and CSSELR_EL1 +* TID1: Trap REVIDR_EL1, AIDR_EL1, and SMIDR_EL1 */ #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \ HCR_BSU_IS | HCR_FB | HCR_TACR | \ HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW | HCR_TLOR | \ - HCR_FMO | HCR_IMO | HCR_PTW | HCR_TID3) + HCR_FMO | HCR_IMO | HCR_PTW | HCR_TID3 | HCR_TID1)#define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK | HCR_ATA)#define HCR_HOST_NVHE_PROTECTED_FLAGS (HCR_HOST_NVHE_FLAGS | HCR_TSC)#define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
arch/arm64/include/asm/spectre.h +0 -1
@@ -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
@@ -109,10 +109,9 @@ static inline void arm64_mops_reset_regs(struct user_pt_regs *regs, unsigned lonint 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
@@ -466,7 +466,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/kvm/sys_regs.c +100 -104
287 lines not on this page · raw message
arch/arm64/lib/crc-t10dif-glue.c +1 -3
@@ -45,9 +45,7 @@ u16 crc_t10dif_arch(u16 crc, const u8 *data, size_t length)crc_t10dif_pmull_p8 (crc, data, length, buf);kernel_neon_end (); - crc =0 ; - data = buf; - length =sizeof (buf); +return crc_t10dif_generic (0 , buf,sizeof (buf)); } }return crc_t10dif_generic (crc, data, length);
arch/arm64/mm/mmu.c +2 -1
@@ -1361,7 +1361,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
@@ -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
@@ -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
@@ -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
@@ -885,9 +885,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
@@ -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
@@ -175,8 +175,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 ));
@@ -315,14 +319,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
@@ -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
@@ -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/Kbuild +4 -0
@@ -1,4 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 + +# Branch profiling isn't noinstr-safe. Disable it for arch/x86/* +subdir-ccflags-$(CONFIG_TRACE_BRANCH_PROFILING) += -DDISABLE_BRANCH_PROFILING + obj-$(CONFIG_ARCH_HAS_CC_PLATFORM) += coco/ obj-y += entry/
arch/x86/Kconfig +11 -9
@@ -2452,18 +2452,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/coco/sev/core.c +0 -2
@@ -9,8 +9,6 @@#define pr_fmt (fmt) "SEV: " fmt -#define DISABLE_BRANCH_PROFILING -#include <linux/sched/debug.h> /* For show_regs() */ #include <linux/percpu-defs.h> #include <linux/cc_platform.h>
arch/x86/kernel/acpi/boot.c +11 -0
@@ -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>
@@ -1729,6 +1731,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 +2 -1
@@ -632,7 +632,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 );
@@ -803,6 +803,7 @@ static void init_amd_bd(struct cpuinfo_x86 *c)static const struct x86_cpu_id erratum_1386_microcode[] = {X86_MATCH_VFM_STEPS (VFM_MAKE (X86_VENDOR_AMD ,0x17 ,0x01 ),0x2 ,0x2 ,0x0800126e ),X86_MATCH_VFM_STEPS (VFM_MAKE (X86_VENDOR_AMD ,0x17 ,0x31 ),0x0 ,0x0 ,0x08301052 ), + {} };static void fix_erratum_1386 (struct cpuinfo_x86 *c)
arch/x86/kernel/e820.c +8 -9
@@ -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/head64.c +0 -2
@@ -5,8 +5,6 @@* Copyright (C) 2000 Andrea Arcangeli <[email protected]> SuSE */ -#define DISABLE_BRANCH_PROFILING -/* cpu_feature_enabled() cannot be used this early */ #define USE_EARLY_PGTABLE_L5
arch/x86/kernel/signal_32.c +43 -19
86 lines not on this page · raw message
arch/x86/kvm/cpuid.c +3 -5
@@ -1423,8 +1423,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 ;
@@ -1440,8 +1440,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;
@@ -1759,7 +1757,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
@@ -11773,6 +11773,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;
@@ -11786,6 +11788,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/kasan_init_64.c +0 -1
@@ -1,5 +1,4 @@// SPDX-License-Identifier: GPL-2.0 -#define DISABLE_BRANCH_PROFILING #define pr_fmt (fmt) "kasan: " fmt/* cpu_feature_enabled() cannot be used this early */
arch/x86/mm/mem_encrypt_amd.c +0 -2
@@ -7,8 +7,6 @@* Author: Tom Lendacky <[email protected]> */ -#define DISABLE_BRANCH_PROFILING -#include <linux/linkage.h> #include <linux/init.h> #include <linux/mm.h>
arch/x86/mm/mem_encrypt_identity.c +0 -2
@@ -7,8 +7,6 @@* Author: Tom Lendacky <[email protected]> */ -#define DISABLE_BRANCH_PROFILING -/* * Since we're dealing with identity mappings, physical and virtual * addresses are the same, so override these defines which are ultimately
arch/x86/mm/pat/set_memory.c +3 -3
@@ -2420,7 +2420,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 };/*
@@ -2507,7 +2507,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, };
@@ -2550,7 +2550,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
@@ -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 ();
@@ -466,6 +469,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
@@ -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;
block/blk-mq.c +1 -0
@@ -3314,6 +3314,7 @@ int blk_rq_prep_clone(struct request *rq, struct request *rq_src, rq->special_vec = rq_src->special_vec; } rq->nr_phys_segments = rq_src->nr_phys_segments; + rq->nr_integrity_segments = rq_src->nr_integrity_segments;if (rq->bio &&blk_crypto_rq_bio_prep (rq, rq->bio, gfp_mask) <0 ) goto free_and_out;
drivers/accel/ivpu/ivpu_debugfs.c +2 -2
@@ -331,7 +331,7 @@ ivpu_force_recovery_fn(struct file *file, const char __user *user_buf, size_t sireturn -EINVAL ; ret =ivpu_rpm_get (vdev); -if (ret) +if (ret <0 )return ret;ivpu_pm_trigger_recovery (vdev,"debugfs" );
@@ -382,7 +382,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
@@ -302,7 +302,8 @@ ivpu_ipc_send_receive_internal(struct ivpu_device *vdev, struct vpu_jsm_msg *reqstruct 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
@@ -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 *filkfree (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 *filemutex_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/Makefile +4 -0
@@ -5,6 +5,10 @@ ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT +ifdef CONFIG_TRACE_BRANCH_PROFILING +CFLAGS_processor_idle.o += -DDISABLE_BRANCH_PROFILING +endif + # # ACPI Boot-Time Table Parsing #
drivers/ata/ahci.c +11 -0
@@ -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
@@ -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
@@ -1322,6 +1322,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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 +26 -4
@@ -1094,6 +1094,25 @@ static void ublk_complete_rq(struct kref *ref)__ublk_complete_rq (req); } +static void ublk_do_fail_rq (struct request *req) +{ +struct ublk_queue *ubq = req->mq_hctx->driver_data; + +if (ublk_nosrv_should_reissue_outstanding (ubq->dev)) +blk_mq_requeue_request (req, false); +else +__ublk_complete_rq (req); +} + +static void ublk_fail_rq_fn (struct kref *ref) +{ + struct ublk_rq_data *data = container_of(ref, struct ublk_rq_data, + ref); +struct request *req =blk_mq_rq_from_pdu (data); + +ublk_do_fail_rq (req); +} +/* * Since __ublk_rq_task_work always fails requests immediately during * exiting, __ublk_fail_req() is only called from abort context during
@@ -1107,10 +1126,13 @@ static void __ublk_fail_req(struct ublk_queue *ubq, struct ublk_io *io, {WARN_ON_ONCE (io->flags &UBLK_IO_FLAG_ACTIVE ); -if (ublk_nosrv_should_reissue_outstanding (ubq->dev)) -blk_mq_requeue_request (req, false); -else -ublk_put_req_ref (ubq, req); +if (ublk_need_req_ref (ubq)) { +struct ublk_rq_data *data =blk_mq_rq_to_pdu (req); + +kref_put (&data->ref, ublk_fail_rq_fn); + }else { +ublk_do_fail_rq (req); + } } static void ubq_complete_io_cmd(struct ublk_io *io, int res,
drivers/bluetooth/btintel_pcie.c +1 -0
@@ -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 +20 -7
@@ -785,6 +785,7 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate, const char *firmware_name, const char *rampatch_name) { struct qca_fw_config config = {}; +const char *variant ="" ;int err;u8 rom_ver =0 ;u32 soc_ver;
@@ -815,6 +816,10 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,snprintf (config.fwname,sizeof (config.fwname),"qca/%s" , rampatch_name); }else {switch (soc_type) { +case QCA_WCN3950 : +snprintf (config.fwname,sizeof (config.fwname), +"qca/cmbtfw%02x.tlv" , rom_ver); +break ;case QCA_WCN3990 :case QCA_WCN3991 :case QCA_WCN3998 :
@@ -880,16 +885,23 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate, } }else {switch (soc_type) { +case QCA_WCN3950 : +if (le32_to_cpu (ver.soc_id) ==QCA_WCN3950_SOC_ID_T ) + variant ="t" ; +else if (le32_to_cpu (ver.soc_id) ==QCA_WCN3950_SOC_ID_S ) + variant ="u" ; + +snprintf (config.fwname,sizeof (config.fwname), +"qca/cmnv%02x%s.bin" , rom_ver, variant); +break ;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),
@@ -948,6 +960,7 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,* VsMsftOpCode. */ switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
drivers/bluetooth/btqca.h +4 -0
@@ -41,6 +41,9 @@#define QCA_WCN3991_SOC_ID 0x40014320 +#define QCA_WCN3950_SOC_ID_T 0x40074130 +#define QCA_WCN3950_SOC_ID_S 0x40075130 +/* QCA chipset version can be decided by patch and SoC * version, combination with upper 2 bytes from SoC * and lower 2 bytes from patch will be used.
@@ -145,6 +148,7 @@ enum qca_btsoc_type {QCA_INVALID =-1 ,QCA_AR3002 ,QCA_ROME , +QCA_WCN3950 ,QCA_WCN3988 ,QCA_WCN3990 , QCA_WCN3998,
drivers/bluetooth/btusb.c +32 -0
@@ -376,10 +376,38 @@ static const struct usb_device_id quirks_table[] = { BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0489, 0xe0f3), .driver_info = BTUSB_QCA_WCN6855 | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe100), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe103), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe10a), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe10d), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe11b), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe11c), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe11f), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe141), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe14a), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe14b), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe14d), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3623), .driver_info = BTUSB_QCA_WCN6855 | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3624), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x2c7c, 0x0130), .driver_info = BTUSB_QCA_WCN6855 | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x2c7c, 0x0131), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x2c7c, 0x0132), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH }, /* Broadcom BCM2035 */ { USB_DEVICE(0x0a5c, 0x2009), .driver_info = BTUSB_BCM92035 },
@@ -640,6 +668,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
@@ -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 +26 -1
@@ -623,6 +623,7 @@ static int qca_open(struct hci_uart *hu) qcadev =serdev_device_get_drvdata (hu->serdev);switch (qcadev->btsoc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1366,6 +1367,7 @@ static int qca_set_baudrate(struct hci_dev *hdev, uint8_t baudrate)/* Give the controller time to process the request */ switch (qca_soc_type (hu)) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1452,6 +1454,7 @@ static unsigned int qca_get_speed(struct hci_uart *hu,static int qca_check_speeds (struct hci_uart *hu) {switch (qca_soc_type (hu)) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1494,6 +1497,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)* changing the baudrate of chip and host. */ switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1528,6 +1532,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type) error:switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1746,6 +1751,7 @@ static int qca_regulator_init(struct hci_uart *hu) }switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1776,6 +1782,7 @@ static int qca_regulator_init(struct hci_uart *hu)qca_set_speed (hu,QCA_INIT_SPEED );switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1807,6 +1814,7 @@ static int qca_power_on(struct hci_dev *hdev)return 0 ;switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1891,6 +1899,7 @@ static int qca_setup(struct hci_uart *hu) soc_name ="qca2066" ;break ; +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1925,6 +1934,7 @@ static int qca_setup(struct hci_uart *hu)clear_bit (QCA_SSR_TRIGGERED , &qca->flags);switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -1958,6 +1968,7 @@ static int qca_setup(struct hci_uart *hu) }switch (soc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -2046,6 +2057,17 @@ static const struct hci_uart_proto qca_proto = { .dequeue = qca_dequeue, }; +static const struct qca_device_data qca_soc_data_wcn3950__maybe_unused = { + .soc_type =QCA_WCN3950 , + .vregs = (struct qca_vreg []) { + {"vddio" ,15000 }, + {"vddxo" ,60000 }, + {"vddrf" ,155000 }, + {"vddch0" ,585000 }, + }, + .num_vregs =4 , +}; +static const struct qca_device_data qca_soc_data_wcn3988__maybe_unused = { .soc_type =QCA_WCN3988 , .vregs = (struct qca_vreg []) {
@@ -2338,6 +2360,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) qcadev->btsoc_type =QCA_ROME ;switch (qcadev->btsoc_type) { +case QCA_WCN3950 :case QCA_WCN3988 :case QCA_WCN3990 :case QCA_WCN3991 :
@@ -2359,6 +2382,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
@@ -2374,11 +2398,11 @@ static int qca_serdev_probe(struct serdev_device *serdev)break ; } fallthrough; +case QCA_WCN3950 :case QCA_WCN3988 :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);
@@ -2683,6 +2707,7 @@ static const struct of_device_id qca_bluetooth_of_match[] = { { .compatible = "qcom,qca6174-bt" }, { .compatible = "qcom,qca6390-bt", .data = &qca_soc_data_qca6390}, { .compatible = "qcom,qca9377-bt" }, + { .compatible = "qcom,wcn3950-bt", .data = &qca_soc_data_wcn3950}, { .compatible = "qcom,wcn3988-bt", .data = &qca_soc_data_wcn3988}, { .compatible = "qcom,wcn3990-bt", .data = &qca_soc_data_wcn3990}, { .compatible = "qcom,wcn3991-bt", .data = &qca_soc_data_wcn3991},
drivers/bluetooth/hci_uart.h +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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_ARM64DEF_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 ), +#endifDEF_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
@@ -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/cpufreq/amd-pstate.c +4 -1
@@ -1619,7 +1619,7 @@ static int amd_pstate_epp_reenable(struct cpufreq_policy *policy) max_perf, policy->boost_enabled); } -return amd_pstate_update_perf (cpudata,0 ,0 , max_perf, cpudata->epp_cached, false); +return amd_pstate_epp_update_limit (policy); }static int amd_pstate_epp_cpu_online (struct cpufreq_policy *policy)
@@ -1668,6 +1668,9 @@ static int amd_pstate_epp_suspend(struct cpufreq_policy *policy)if (cppc_state !=AMD_PSTATE_ACTIVE )return 0 ; +/* invalidate to ensure it's rewritten during resume */ + cpudata->cppc_req_cached =0 ; +/* set this flag to avoid setting core offline*/ cpudata->suspended = true;
drivers/cpuidle/Makefile +3 -0
@@ -3,6 +3,9 @@ # Makefile for cpuidle. # +# Branch profiling isn't noinstr-safe +ccflags-$(CONFIG_TRACE_BRANCH_PROFILING) += -DDISABLE_BRANCH_PROFILING + obj-y += cpuidle.o driver.o governor.o sysfs.o governors/ obj-$(CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED) += coupled.o obj-$(CONFIG_DT_IDLE_STATES) += dt_idle_states.o
drivers/crypto/ccp/sp-pci.c +9 -6
@@ -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/firmware/cirrus/test/cs_dsp_test_control_parse.c +19 -32
99 lines not on this page · raw message
drivers/gpio/gpio-mpc8xxx.c +3 -1
@@ -410,7 +410,9 @@ static int mpc8xxx_probe(struct platform_device *pdev) goto err; } -device_init_wakeup (dev, true); + ret =devm_device_init_wakeup (dev); +if (ret) +return dev_err_probe (dev, ret,"Failed to init wakeup\n" );return 0 ; err:
drivers/gpio/gpio-tegra186.c +14 -13
@@ -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
@@ -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
@@ -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
@@ -6851,18 +6851,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
@@ -2534,8 +2534,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);
@@ -2717,8 +2715,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_set_pasid (adev, vm,0 );
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +0 -4
@@ -374,10 +374,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
@@ -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
@@ -1593,6 +1593,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
@@ -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
@@ -548,7 +548,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
@@ -3002,19 +3002,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 ;
@@ -3034,6 +3021,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",
@@ -3159,7 +3161,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/core/dc.c +5 -3
@@ -5549,9 +5549,11 @@ void dc_allow_idle_optimizations_internal(struct dc *dc, bool allow, char constif (dc->clk_mgr !=NULL && dc->clk_mgr->funcs->get_hard_min_memclk) idle_dramclk_khz = dc->clk_mgr->funcs->get_hard_min_memclk (dc->clk_mgr); -for (i =0 ; i < dc->res_pool->pipe_count; i++) { - pipe = &context->res_ctx.pipe_ctx[i]; - subvp_pipe_type[i] =dc_state_get_pipe_subvp_type (context, pipe); +if (dc->res_pool && context) { +for (i =0 ; i < dc->res_pool->pipe_count; i++) { + pipe = &context->res_ctx.pipe_ctx[i]; + subvp_pipe_type[i] =dc_state_get_pipe_subvp_type (context, pipe); + } } DC_LOG_DC("%s: allow_idle=%d\n HardMinUClk_Khz=%d HardMinDramclk_Khz=%d\n Pipe_0=%d Pipe_1=%d Pipe_2=%d Pipe_3=%d Pipe_4=%d Pipe_5=%d (caller=%s)\n",
drivers/gpu/drm/amd/display/dc/dc.h +2 -0
@@ -1788,7 +1788,9 @@ struct dc_link {bool dongle_mode_timing_override;bool blank_stream_on_ocs_change;bool read_dpcd204h_on_irq_hpd; +bool force_dp_ffe_preset; } wa_flags; +union dc_dp_ffe_preset forced_dp_ffe_preset;struct link_mst_stream_allocation_table mst_stream_alloc_table;struct dc_link_status link_status;
drivers/gpu/drm/amd/display/dc/dc_dp_types.h +8 -0
@@ -1119,6 +1119,8 @@ struct dc_lttpr_caps {union dp_main_link_channel_coding_lttpr_cap main_link_channel_coding;union dp_128b_132b_supported_lttpr_link_rates supported_128b_132b_rates;uint8_t aux_rd_interval[MAX_REPEATER_CNT -1 ]; +uint8_t lttpr_ieee_oui[3 ]; +uint8_t lttpr_device_id[6 ]; };struct dc_dongle_dfp_cap_ext {
@@ -1379,6 +1381,12 @@ struct dp_trace {#ifndef DP_BRANCH_VENDOR_SPECIFIC_START #define DP_BRANCH_VENDOR_SPECIFIC_START 0x50C#endif +#ifndef DP_LTTPR_IEEE_OUI +#define DP_LTTPR_IEEE_OUI 0xF003D +#endif +#ifndef DP_LTTPR_DEVICE_ID +#define DP_LTTPR_DEVICE_ID 0xF0040 +#endif /** USB4 DPCD BW Allocation Registers Chapter 10.7 **/ #ifndef DP_TUNNELING_CAPABILITIES #define DP_TUNNELING_CAPABILITIES 0xE000D/* 1.4a */
drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4_calcs.c +2 -0
@@ -15,6 +15,7 @@//#define DML_MODE_SUPPORT_USE_DPM_DRAM_BW //#define DML_GLOBAL_PREFETCH_CHECK #define ALLOW_SDPIF_RATE_LIMIT_PRE_CSTATE +#define DML_MAX_VSTARTUP_START 1023const char *dml2_core_internal_bw_type_str (enum dml2_core_internal_bw_type bw_type) {
@@ -3726,6 +3727,7 @@ static unsigned int CalculateMaxVStartup(dml2_printf ("DML::%s: vblank_avail = %u\n" , __func__, vblank_avail);dml2_printf ("DML::%s: max_vstartup_lines = %u\n" , __func__, max_vstartup_lines);#endif + max_vstartup_lines = (unsigned int )math_min2 (max_vstartup_lines,DML_MAX_VSTARTUP_START );return max_vstartup_lines; }
drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_resource_mgmt.c +0 -26
@@ -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 *statesort_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
@@ -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
@@ -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/display/dc/link/protocols/link_dp_capability.c +10 -2
@@ -1568,10 +1568,18 @@ enum dc_status dp_retrieve_lttpr_cap(struct dc_link *link)/* Attempt to train in LTTPR transparent mode if repeater count exceeds 8. */ is_lttpr_present =dp_is_lttpr_present (link); -if (is_lttpr_present) +DC_LOG_DC ("is_lttpr_present = %d\n" , is_lttpr_present); + +if (is_lttpr_present) {CONN_DATA_DETECT (link, lttpr_dpcd_data,sizeof (lttpr_dpcd_data),"LTTPR Caps: " ); -DC_LOG_DC ("is_lttpr_present = %d\n" , is_lttpr_present); +core_link_read_dpcd (link,DP_LTTPR_IEEE_OUI , link->dpcd_caps.lttpr_caps.lttpr_ieee_oui,sizeof (link->dpcd_caps.lttpr_caps.lttpr_ieee_oui)); +CONN_DATA_DETECT (link, link->dpcd_caps.lttpr_caps.lttpr_ieee_oui,sizeof (link->dpcd_caps.lttpr_caps.lttpr_ieee_oui),"LTTPR IEEE OUI: " ); + +core_link_read_dpcd (link,DP_LTTPR_DEVICE_ID , link->dpcd_caps.lttpr_caps.lttpr_device_id,sizeof (link->dpcd_caps.lttpr_caps.lttpr_device_id)); +CONN_DATA_DETECT (link, link->dpcd_caps.lttpr_caps.lttpr_device_id,sizeof (link->dpcd_caps.lttpr_caps.lttpr_device_id),"LTTPR Device ID: " ); + } +return status; }
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c +2 -0
@@ -736,6 +736,8 @@ void override_training_settings( lt_settings->pre_emphasis = overrides->pre_emphasis;if (overrides->post_cursor2 !=NULL ) lt_settings->post_cursor2 = overrides->post_cursor2; +if (link->wa_flags.force_dp_ffe_preset && !dp_is_lttpr_present (link)) + lt_settings->ffe_preset = &link->forced_dp_ffe_preset;if (overrides->ffe_preset !=NULL ) lt_settings->ffe_preset = overrides->ffe_preset;/* Override HW lane settings with BIOS forced values if present */
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c +2 -1
@@ -270,7 +270,8 @@ enum link_training_result dp_perform_fixed_vs_pe_training_sequence( rate =get_dpcd_link_rate (<_settings->link_settings); -if (!link->dpcd_caps.lttpr_caps.main_link_channel_coding.bits.DP_128b_132b_SUPPORTED) { +// Only perform toggle if FIXED_VS LTTPR reports no IEEE OUI +if (memcmp ("\x0,\x0,\x0" , &link->dpcd_caps.lttpr_caps.lttpr_ieee_oui[0 ],3 ) ==0 ) {/* Vendor specific: Toggle link rate */ toggle_rate = (rate ==0x6 ) ?0xA :0x6 ;
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +5 -0
@@ -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
@@ -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
@@ -748,7 +748,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
@@ -50,7 +50,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().
@@ -58,6 +58,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
59 lines not on this page · raw message
drivers/gpu/drm/i915/selftests/i915_selftest.c +18 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c +8 -21
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_client_modeset_test.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_cmdline_parser_test.c +9 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_kunit_helpers.c +22 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_modes_test.c +22 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/tests/drm_probe_helper_test.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c +52 -56
108 lines not on this page · raw message
drivers/hid/hid-universal-pidff.c new file +202 -0
202 lines not on this page · 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
Lines of this file are not shown. View the raw message.
drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c +5 -27
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/iommufd_private.h +4 -29
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-integrity.c +25 -23
48 lines not on this page · raw message
drivers/media/common/siano/smsdvb-main.c +2 -0
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/pci/intel/ipu6/ipu6-isys-video.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/chips-media/wave5/wave5-hw.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c +30 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/chips-media/wave5/wave5-vpu.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/chips-media/wave5/wave5-vpuapi.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/nuvoton/npcm-video.c +3 -3
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
Lines of this file are not shown. View the raw message.
drivers/media/platform/rockchip/rga/rga-hw.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/st/stm32/dma2d/dma2d.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/xilinx/xilinx-tpg.c +0 -2
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/visl/visl-core.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
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/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/can/flexcan/flexcan-core.c +34 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_ethtool.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx_dqo.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_xdp.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/qos.c +5 -0
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/stmicro/stmmac/stmmac_main.c +4 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/libwx/wx_lib.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/libwx/wx_type.h +1 -2
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/wireless/ath/ath11k/reg.c +59 -26
85 lines not on this page · raw message
drivers/net/wireless/ath/ath12k/dp_mon.c +10 -56
66 lines not on this page · 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/hal_rx.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/eeprom.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/init.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/main.c +106 -54
160 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +72 -98
170 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7925/mcu.h +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt792x.h +9 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt792x_core.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8822bu.c +4 -0
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
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-layerscape.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-rockchip-host.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/perf/dwc_pcie_pmu.c +34 -17
51 lines not on this page · raw message
drivers/phy/freescale/phy-fsl-imx8m-pcie.c +11 -0
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
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-samsung.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-samsung.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/x86-android-tablets/Kconfig +1 -0
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/thermal/mediatek/lvts_thermal.c +36 -16
52 lines not on this page · raw message
drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
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/f2fs/node.c +31 -79
110 lines not on this page · raw message
fs/userfaultfd.c +25 -26
51 lines not on this page · raw message
kernel/cgroup/cpuset.c +40 -15
55 lines not on this page · raw message
kernel/events/core.c +78 -106
184 lines not on this page · raw message
kernel/trace/fprobe.c +149 -21
170 lines not on this page · raw message
mm/damon/paddr.c +42 -15
57 lines not on this page · raw message
net/core/filter.c +44 -36
80 lines not on this page · raw message
net/mac80211/debugfs.c +42 -2
44 lines not on this page · raw message
net/mac80211/mlme.c +37 -22
59 lines not on this page · raw message
net/sched/cls_api.c +45 -21
66 lines not on this page · raw message
net/sched/sch_sfq.c +50 -16
66 lines not on this page · raw message
net/sunrpc/xprtrdma/svc_rdma_transport.c +2 -1
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
Lines of this file are not shown. View the raw message.
security/landlock/errata/abi-6.h new file +19 -0
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 +41 -0
41 lines not on this page · raw message
sound/soc/amd/acp/acp-sdw-legacy-mach.c +34 -0
Lines of this file are not shown. View the raw message.
sound/soc/intel/common/soc-acpi-intel-adl-match.c +29 -0
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/usb/midi.c +74 -6
80 lines not on this page · raw message
tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +1 -1
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
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
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.