Linux 7.0.13
Greg Kroah-Hartman
maintainerI'm announcing the release of the 7.0.13 kernel.
All users of the 7.0 kernel series must upgrade.
The updated 7.0.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-7.0.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/arch/arm64/silicon-errata.rst | 48 + Makefile | 5 arch/arm/Kconfig | 2 arch/arm/boot/dts/gemini/gemini-sl93512r.dts | 2 arch/arm/boot/dts/gemini/gemini-sq201.dts | 2 arch/arm/boot/dts/microchip/sam9x7.dtsi | 6 arch/arm/include/asm/io.h | 15 arch/arm/kernel/entry-armv.S | 2 arch/arm/mach-socfpga/platsmp.c | 1 arch/arm64/Kconfig | 38 + arch/arm64/Makefile | 3 arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi | 7 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/kvm_nested.h | 4 arch/arm64/kernel/cpu_errata.c | 34 arch/arm64/kvm/at.c | 6 arch/arm64/kvm/hyp/include/hyp/switch.h | 2 arch/arm64/kvm/hyp/pgtable.c | 4 arch/arm64/mm/mmu.c | 1 arch/riscv/include/asm/usercfi.h | 1 arch/riscv/kernel/ptrace.c | 2 arch/riscv/kernel/usercfi.c | 3 arch/s390/Kconfig | 3 arch/s390/crypto/Kconfig | 1 arch/s390/include/asm/bug.h | 12 arch/x86/Makefile | 4 arch/x86/Makefile.um | 8 arch/x86/kernel/cpu/resctrl/monitor.c | 7 arch/x86/kvm/svm/sev.c | 27 drivers/accel/amdxdna/aie2_ctx.c | 3 drivers/accel/ethosu/ethosu_gem.c | 35 - drivers/accel/ivpu/ivpu_fw.c | 16 drivers/accel/ivpu/ivpu_fw_log.c | 5 drivers/accel/ivpu/ivpu_ipc.c | 2 drivers/accel/ivpu/ivpu_ms.c | 7 drivers/base/bus.c | 11 drivers/base/faux.c | 22 drivers/block/zram/zram_drv.c | 2 drivers/clk/qcom/dispcc-sc8280xp.c | 4 drivers/clk/qcom/dispcc-x1e80100.c | 2 drivers/clk/samsung/clk-gs101.c | 2 drivers/cpufreq/amd-pstate.h | 1 drivers/firmware/samsung/exynos-acpm.c | 13 drivers/firmware/stratix10-rsu.c | 45 - drivers/firmware/stratix10-svc.c | 21 drivers/gpio/gpio-mvebu.c | 4 drivers/gpio/gpio-rockchip.c | 4 drivers/gpio/gpio-zynq.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 12 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c | 15 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 49 + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 drivers/gpu/drm/amd/display/dc/basics/vector.c | 4 drivers/gpu/drm/amd/display/dc/bios/bios_parser.c | 15 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 81 +- drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.h | 5 drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 2 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 10 drivers/gpu/drm/amd/display/dc/dce110/dce110_opp_csc_v.c | 10 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c | 3 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 42 - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 32 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c | 3 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 1 drivers/gpu/drm/drm_atomic.c | 4 drivers/gpu/drm/drm_atomic_uapi.c | 68 + drivers/gpu/drm/drm_colorop.c | 16 drivers/gpu/drm/drm_gem.c | 75 +- drivers/gpu/drm/drm_ioctl.c | 3 drivers/gpu/drm/hyperv/hyperv_drm_drv.c | 5 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 15 drivers/gpu/drm/i915/display/intel_dp.c | 11 drivers/gpu/drm/i915/display/intel_plane.c | 27 drivers/gpu/drm/i915/gem/i915_gem_phys.c | 19 drivers/gpu/drm/imx/dcss/dcss-scaler.c | 3 drivers/gpu/drm/v3d/v3d_gem.c | 8 drivers/gpu/drm/v3d/v3d_perfmon.c | 24 drivers/gpu/drm/v3d/v3d_sched.c | 17 drivers/gpu/drm/vc4/vc4_validate_shaders.c | 13 drivers/gpu/drm/virtio/virtgpu_drv.c | 5 drivers/gpu/drm/virtio/virtgpu_submit.c | 4 drivers/gpu/drm/xe/display/xe_display.c | 11 drivers/gpu/drm/xe/xe_exec_queue.h | 17 drivers/gpu/drm/xe/xe_guc_submit.c | 111 +-- drivers/gpu/drm/xe/xe_hw_engine_group.c | 10 drivers/gpu/drm/xe/xe_range_fence.c | 2 drivers/gpu/drm/xe/xe_uc_fw.c | 1 drivers/hv/channel_mgmt.c | 1 drivers/hv/hv_kvp.c | 25 drivers/hv/hyperv_vmbus.h | 1 drivers/hv/vmbus_drv.c | 54 + drivers/i2c/busses/i2c-imx-lpi2c.c | 53 - drivers/i2c/busses/i2c-imx.c | 15 drivers/i2c/busses/i2c-qcom-cci.c | 2 drivers/i2c/busses/i2c-stm32f7.c | 6 drivers/i2c/busses/i2c-tegra.c | 53 - drivers/i2c/i2c-dev.c | 9 drivers/infiniband/core/Makefile | 2 drivers/infiniband/core/iter.c | 43 + drivers/infiniband/core/ucaps.c | 8 drivers/infiniband/core/umem.c | 16 drivers/infiniband/core/uverbs_std_types_dmah.c | 5 drivers/infiniband/core/verbs.c | 38 - drivers/infiniband/hw/bnxt_re/debugfs.c | 2 drivers/infiniband/hw/bnxt_re/main.c | 2 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 2 drivers/infiniband/hw/bnxt_re/qplib_res.c | 2 drivers/infiniband/hw/bnxt_re/qplib_res.h | 2 drivers/infiniband/hw/cxgb4/mem.c | 2 drivers/infiniband/hw/efa/efa_verbs.c | 2 drivers/infiniband/hw/erdma/erdma_verbs.c | 2 drivers/infiniband/hw/hns/hns_roce_alloc.c | 2 drivers/infiniband/hw/hns/hns_roce_mr.c | 4 drivers/infiniband/hw/ionic/ionic_ibdev.h | 2 drivers/infiniband/hw/irdma/main.h | 2 drivers/infiniband/hw/irdma/verbs.c | 4 drivers/infiniband/hw/mana/mana_ib.h | 2 drivers/infiniband/hw/mlx4/mr.c | 5 drivers/infiniband/hw/mlx5/mem.c | 1 drivers/infiniband/hw/mlx5/mr.c | 4 drivers/infiniband/hw/mlx5/umr.c | 1 drivers/infiniband/hw/mthca/mthca_provider.c | 2 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 drivers/infiniband/hw/qedr/verbs.c | 2 drivers/infiniband/hw/vmw_pvrdma/pvrdma.h | 2 drivers/infiniband/sw/rxe/rxe_verbs.c | 5 drivers/infiniband/ulp/isert/ib_isert.c | 6 drivers/infiniband/ulp/srp/ib_srp.c | 30 drivers/input/keyboard/atkbd.c | 15 drivers/iommu/dma-iommu.c | 19 drivers/md/dm-cache-policy-smq.c | 12 drivers/memory/atmel-ebi.c | 3 drivers/misc/fastrpc.c | 107 +-- drivers/mmc/core/mmc.c | 4 drivers/mmc/host/dw_mmc-rockchip.c | 17 drivers/mmc/host/litex_mmc.c | 20 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 1 drivers/mmc/host/sdhci-of-dwcmshc.c | 44 - drivers/mmc/host/sdhci.c | 1 drivers/net/bonding/bond_3ad.c | 18 drivers/net/bonding/bond_main.c | 4 drivers/net/bonding/bond_netlink.c | 4 drivers/net/bonding/bond_procfs.c | 8 drivers/net/ethernet/airoha/airoha_eth.c | 5 drivers/net/ethernet/amazon/ena/ena_com.c | 5 drivers/net/ethernet/amd/pcnet32.c | 4 drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c | 14 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 87 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 19 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 10 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 2 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 341 ++++++---- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 128 --- drivers/net/ethernet/freescale/fec_main.c | 3 drivers/net/ethernet/ibm/emac/core.c | 9 drivers/net/ethernet/intel/ice/ice_dpll.c | 2 drivers/net/ethernet/intel/idpf/idpf_ptp.c | 2 drivers/net/ethernet/marvell/mv643xx_eth.c | 2 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 67 + drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 2 drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 1 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 36 - drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 drivers/net/ethernet/mellanox/mlx4/cq.c | 9 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 6 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 10 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 13 drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c | 5 drivers/net/ethernet/mellanox/mlx5/core/vport.c | 72 +- drivers/net/ethernet/microchip/lan743x_main.c | 32 drivers/net/ethernet/microchip/lan743x_main.h | 1 drivers/net/ethernet/realtek/rtase/rtase_main.c | 7 drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c | 24 drivers/net/ethernet/wangxun/txgbe/txgbe_type.h | 3 drivers/net/geneve.c | 2 drivers/net/hyperv/netvsc.c | 19 drivers/net/mctp/mctp-usb.c | 28 drivers/net/phy/phy_device.c | 24 drivers/net/phy/sfp.c | 1 drivers/net/tun.c | 1 drivers/net/usb/r8152.c | 7 drivers/net/vxlan/vxlan_vnifilter.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 56 - drivers/nvmem/core.c | 12 drivers/nvmem/layouts/onie-tlv.c | 3 drivers/pinctrl/pinctrl-mcp23s08_spi.c | 11 drivers/pmdomain/imx/gpc.c | 2 drivers/pmdomain/ti/ti_sci_pm_domains.c | 2 drivers/ptp/ptp_ocp.c | 24 drivers/ptp/ptp_vclock.c | 14 drivers/regulator/Kconfig | 1 drivers/slimbus/qcom-ngd-ctrl.c | 122 ++- drivers/soc/qcom/ice.c | 57 + drivers/spi/spi-geni-qcom.c | 27 drivers/spi/spi-rzv2h-rspi.c | 3 drivers/staging/rtl8723bs/core/rtw_mlme.c | 24 drivers/tee/optee/supp.c | 107 ++- drivers/tee/qcomtee/core.c | 6 drivers/tee/tee_shm.c | 2 drivers/thunderbolt/property.c | 6 drivers/thunderbolt/xdomain.c | 14 drivers/usb/serial/io_ti.c | 11 drivers/usb/serial/kl5kusb105.c | 4 drivers/usb/serial/option.c | 3 fs/erofs/zdata.c | 6 fs/fcntl.c | 8 fs/fhandle.c | 16 fs/fuse/dev.c | 13 fs/iomap/buffered-io.c | 10 fs/mount.h | 10 fs/namei.c | 10 fs/namespace.c | 9 fs/overlayfs/readdir.c | 7 fs/qnx6/dir.c | 8 fs/smb/server/oplock.c | 15 fs/smb/server/smb2pdu.c | 11 fs/xfs/scrub/cow_repair.c | 12 include/drm/drm_atomic_uapi.h | 4 include/drm/drm_colorop.h | 34 include/hyperv/hvgdk.h | 10 include/hyperv/hvhdk.h | 1 include/linux/bnxt/ulp.h | 143 ++++ include/linux/cfi.h | 1 include/linux/hugetlb.h | 8 include/linux/hyperv.h | 3 include/linux/mlx5/vport.h | 4 include/linux/mm.h | 8 include/linux/rseq_entry.h | 5 include/linux/tracepoint.h | 8 include/net/act_api.h | 1 include/net/bluetooth/l2cap.h | 1 include/net/cfg80211.h | 23 include/net/ip_vs.h | 3 include/net/netfilter/nf_conntrack_helper.h | 1 include/net/sock.h | 1 include/net/tc_act/tc_pedit.h | 1 include/rdma/ib_umem.h | 44 - include/rdma/ib_verbs.h | 48 - include/rdma/iter.h | 88 ++ include/uapi/linux/nl80211.h | 25 include/uapi/linux/tee.h | 1 io_uring/kbuf.c | 1 io_uring/net.c | 3 io_uring/wait.c | 2 ipc/shm.c | 10 kernel/cgroup/cpuset.c | 13 kernel/dma/debug.c | 2 kernel/dma/direct.c | 2 kernel/futex/requeue.c | 6 kernel/locking/rtmutex.c | 3 kernel/locking/rtmutex_api.c | 2 kernel/pid.c | 8 kernel/sched/ext.c | 10 kernel/signal.c | 1 kernel/time/time.c | 2 kernel/time/timer_migration.c | 8 kernel/trace/trace_probe.c | 2 lib/debugobjects.c | 54 + mm/cma.c | 7 mm/cma_debug.c | 3 mm/damon/lru_sort.c | 4 mm/damon/ops-common.c | 4 mm/damon/reclaim.c | 4 mm/huge_memory.c | 49 + mm/hugetlb.c | 69 +- mm/list_lru.c | 21 mm/memcontrol.c | 5 mm/memory-failure.c | 19 mm/mincore.c | 10 net/6lowpan/iphc.c | 4 net/802/garp.c | 2 net/802/mrp.c | 9 net/bluetooth/bnep/core.c | 50 + net/bluetooth/hci_sync.c | 5 net/bluetooth/hci_sysfs.c | 6 net/bluetooth/iso.c | 63 + net/bluetooth/l2cap_core.c | 46 + net/bluetooth/mgmt.c | 17 net/bluetooth/rfcomm/core.c | 67 + net/bluetooth/rfcomm/sock.c | 26 net/bluetooth/sco.c | 20 net/bridge/netfilter/ebt_dnat.c | 4 net/bridge/netfilter/ebt_redirect.c | 16 net/bridge/netfilter/ebt_snat.c | 3 net/bridge/netfilter/nft_meta_bridge.c | 2 net/core/filter.c | 15 net/core/gro.c | 5 net/core/netdev-genl.c | 4 net/core/skbuff.c | 6 net/core/sock.c | 13 net/devlink/core.c | 2 net/hsr/hsr_framereg.c | 4 net/ieee802154/6lowpan/tx.c | 5 net/ipv4/esp4.c | 17 net/ipv4/inet_connection_sock.c | 6 net/ipv4/inet_fragment.c | 3 net/ipv4/ip_fragment.c | 3 net/ipv4/ip_options.c | 4 net/ipv4/netfilter/arp_tables.c | 15 net/ipv4/netfilter/ip_tables.c | 15 net/ipv4/netfilter/nf_nat_h323.c | 2 net/ipv4/netfilter/nft_fib_ipv4.c | 2 net/ipv4/udp.c | 8 net/ipv6/addrconf.c | 6 net/ipv6/anycast.c | 16 net/ipv6/esp6.c | 17 net/ipv6/ip6_vti.c | 3 net/ipv6/mcast.c | 8 net/ipv6/netfilter/ip6_tables.c | 15 net/ipv6/netfilter/ip6t_eui64.c | 7 net/ipv6/netfilter/nft_fib_ipv6.c | 2 net/ipv6/sit.c | 1 net/l2tp/l2tp_ppp.c | 82 +- net/mac80211/mlme.c | 9 net/mac80211/tests/chan-mode.c | 1 net/mac80211/tx.c | 4 net/mptcp/options.c | 73 -- net/mptcp/pm.c | 15 net/mptcp/pm_userspace.c | 14 net/mptcp/protocol.c | 10 net/mptcp/protocol.h | 7 net/mptcp/sockopt.c | 15 net/netfilter/ipset/ip_set_bitmap_ipmac.c | 5 net/netfilter/ipset/ip_set_hash_ipmac.c | 9 net/netfilter/ipset/ip_set_hash_mac.c | 5 net/netfilter/ipvs/ip_vs_ctl.c | 13 net/netfilter/ipvs/ip_vs_sched.c | 14 net/netfilter/nf_conntrack_helper.c | 19 net/netfilter/nf_conntrack_irc.c | 4 net/netfilter/nf_log_syslog.c | 12 net/netfilter/nf_nat_core.c | 2 net/netfilter/nf_nat_sip.c | 1 net/netfilter/nf_synproxy_core.c | 24 net/netfilter/nfnetlink_log.c | 23 net/netfilter/nfnetlink_queue.c | 64 + net/netfilter/nft_ct.c | 8 net/netfilter/nft_ct_fast.c | 2 net/netfilter/nft_exthdr.c | 3 net/netfilter/nft_fib.c | 6 net/netfilter/nft_tunnel.c | 2 net/netfilter/xt_NFQUEUE.c | 2 net/netfilter/xt_mac.c | 4 net/netlabel/netlabel_unlabeled.c | 30 net/openvswitch/datapath.c | 1 net/phonet/pn_dev.c | 2 net/qrtr/af_qrtr.c | 4 net/rds/ib_cm.c | 1 net/rds/ib_send.c | 2 net/rds/info.c | 2 net/rxrpc/input.c | 26 net/sched/act_api.c | 7 net/sched/act_pedit.c | 77 +- net/sctp/bind_addr.c | 11 net/sctp/diag.c | 17 net/sctp/input.c | 8 net/sctp/sm_make_chunk.c | 12 net/sctp/sm_statefuns.c | 6 net/sctp/stream.c | 6 net/smc/af_smc.c | 17 net/socket.c | 11 net/unix/af_unix.c | 11 net/vmw_vsock/virtio_transport_common.c | 11 net/vmw_vsock/vmci_transport.c | 4 net/wireless/nl80211.c | 73 +- net/wireless/scan.c | 9 net/wireless/trace.h | 19 net/xdp/xsk.c | 11 net/xfrm/espintcp.c | 4 net/xfrm/xfrm_iptfs.c | 11 net/xfrm/xfrm_policy.c | 13 scripts/Makefile.compiler | 2 scripts/generate_rust_target.rs | 8 sound/core/pcm_native.c | 7 sound/core/seq/seq_dummy.c | 15 sound/core/timer.c | 17 sound/soc/codecs/wm_adsp.c | 3 sound/soc/fsl/fsl_sai.c | 2 sound/soc/sdca/sdca_function_device.c | 24 sound/soc/sof/amd/acp-ipc.c | 4 sound/soc/sof/amd/acp.h | 2 tools/testing/selftests/ftrace/test.d/dynevent/eprobes_syntax_errors.tc | 2 tools/testing/selftests/kselftest_harness.h | 1 tools/testing/selftests/net/mptcp/mptcp_join.sh | 4 tools/testing/selftests/riscv/cfi/cfitests.c | 6 tools/tracing/rtla/src/common.c | 28 tools/tracing/rtla/src/common.h | 12 tools/tracing/rtla/src/osnoise_hist.c | 7 tools/tracing/rtla/src/osnoise_top.c | 7 tools/tracing/rtla/src/timerlat_hist.c | 7 tools/tracing/rtla/src/timerlat_top.c | 7 tools/verification/rv/src/in_kernel.c | 65 + tools/verification/rvgen/__main__.py | 10 tools/verification/rvgen/rvgen/ltl2ba.py | 9 virt/kvm/kvm_main.c | 3 402 files changed, 3992 insertions(+), 2048 deletions(-)
Adrian Korwel (2):
USB: serial: io_ti: fix heap overflow in get_manuf_info()
USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr()
Adrian Moreno (1):
net: openvswitch: fix possible kfree_skb of ERR_PTR
Akhil R (1):
i2c: tegra: Fix NOIRQ suspend/resume
Aleksandr Nogikh (1):
signal: clear JOBCTL_PENDING_MASK for caller in zap_other_threads()
Alessandro Schino (1):
esp: fix page frag reference leak on skb_to_sgvec failure
Alex Hung (1):
drm/colorop: Remove read-only comments from interpolation fields
Alexander A. Klimov (1):
drm/vc4: fix krealloc() memory leak
Alexander Dahl (1):
memory: atmel-ebi: Allow deferred probing
Alice Ryhl (2):
rust: arm64: set uwtable llvm module flag for CONFIG_UNWIND_TABLES
rust: kasan/kbuild: fix rustc-option when cross-compiling
Alistair Popple (1):
arm64: mm: call pagetable dtor when freeing hot-removed page tables
Alok Tiwari (1):
idpf: fix mailbox capability for set device clock time
Amirreza Zarrabi (1):
tee: optee: prevent use-after-free when the client exits before the supplicant
Amit Matityahu (1):
timers/migration: Fix livelock in tmigr_handle_remote_up()
Anandu Krishnan E (1):
misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context
Andre Heider (1):
nvmem: layouts: onie-tlv: fix hang on unknown types
Andreas Schwab (1):
riscv/ptrace: Use USER_REGSET_NOTE_TYPE for REGSET_CFI
Andrew Martin (1):
drm/amdkfd: Fix buffer overflow in SDMA queue checkpoint/restore on GFX11
Andrzej Kacprowski (4):
accel/ivpu: Add bounds check for firmware runtime memory accel/ivpu: Add bounds checks for firmware log indices accel/ivpu: Add buffer overflow check in MS get_info_ioctl accel/ivpu: Fix signed integer truncation in IPC receive
Andy Roulin (2):
vxlan: vnifilter: send notification on VNI add
vxlan: vnifilter: fix spurious notification on VNI update
Antoine Tenart (1):
geneve: fix length used in GRO hint UDP checksum adjustment
Anton Leontev (1):
hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf
Arnd Bergmann (3):
tee: fix tee_ioctl_object_invoke_arg padding
regulator: mt6363: select CONFIG_IRQ_DOMAIN
crypto: s390 - add select CRYPTO_AEAD for aes
Arpith Kalaginanavoor (1):
fs/qnx6: fix pointer arithmetic in directory iteration
Arthur Kiyanovski (1):
net: ena: PHC: Add missing barrier
Bartosz Golaszewski (4):
net: mv643xx: fix OF node refcount
nvmem: core: fix use-after-free bugs in error paths
pmdomain: imx: fix OF node refcount
slimbus: qcom-ngd-ctrl: fix OF node refcount
Bharath Reddy (1):
Bluetooth: fix memory leak in error path of hci_alloc_dev()
Bjorn Andersson (7):
slimbus: qcom-ngd-ctrl: Fix up platform_driver registration
slimbus: qcom-ngd-ctrl: Fix probe error path ordering
slimbus: qcom-ngd-ctrl: Register callbacks after creating the ngd
slimbus: qcom-ngd-ctrl: Initialize controller resources in controller
slimbus: qcom-ngd-ctrl: Correct PDR and SSR cleanup ownership
slimbus: qcom-ngd-ctrl: Balance pm_runtime enablement for NGD
slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock
Breno Leitao (1):
rds: mark snapshot pages dirty in rds_info_getsockopt()
Carlos Song (2):
i2c: imx-lpi2c: fix resource leaks switching to devm_dma_request_chan()
i2c: imx: fix clock and pinctrl state inconsistency in runtime PM
Chaitanya Kumar Borah (1):
drm/i915: Fix color blob reference handling in intel_plane_state
Chancel Liu (1):
ASoC: fsl_sai: Fix 32 slots TDM broken by integer shift UB in xMR write
Chenguang Zhao (1):
netlabel: validate unlabeled address and mask attribute lengths
Chih Kai Hsu (1):
r8152: handle the return value of usb_reset_device()
Christian A. Ehrhardt (1):
io_uring/wait: fix min_timeout behavior
Christian Brauner (1):
pidfd: refuse access to tasks that have started exiting harder
Christian König (2):
drm/amdgpu: fix waiting for all submissions for userptrs drm/amdgpu: restart the CS if some parts of the VM are still invalidated
Clément Léger (1):
io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries
Cryolitia PukNgae (1):
Input: atkbd - skip deactivate for HONOR BCC-N's internal keyboard
Cunlong Li (1):
zram: fix use-after-free in zram_bvec_write_partial()
Daniele Ceraolo Spurio (1):
Revert "drm/xe/nvls: Define GuC firmware for NVL-S"
David Carlier (1):
mm/hugetlb: restore reservation on error in hugetlb folio copy paths
David Howells (1):
rxrpc: Fix the ACK parser to extract the SACK table for parsing
David Thompson (1):
net: lan743x: permit VLAN-tagged packets up to configured MTU
Davide Ornaghi (2):
netfilter: nft_meta_bridge: fix stale stack leak via IIFHWADDR register
netfilter: nft_fib: fix stale stack leak via the OIFNAME register
Davidlohr Bueso (1):
locking/rtmutex: Skip remove_waiter() when waiter is not enqueued
Dawei Feng (1):
octeontx2-af: fix memory leak in rvu_setup_hw_resources()
Deepanshu Kartikey (1):
wifi: mac80211: limit injected antenna index in ieee80211_parse_tx_radiotap
Dexuan Cui (2):
hyperv: Clean up and fix the guest ID comment in hvgdk.h
Drivers: hv: vmbus: Improve the logic of reserving fb_mmio on Gen2 VMs
Dinh Nguyen (1):
firmware: stratix10-rsu: Fix NULL deref on rsu_send_msg() timeout in probe
Dmitry Osipenko (1):
drm/virtio: Fix driver removal with disabled KMS
Donet Tom (1):
drm/amdgpu: Fix incorrect VRAM GART mappings on non-4K page size systems
Dragos Tatulea (2):
net/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list net/mlx5e: xsk: Fix DMA and xdp_frame leak on XDP_TX xmit failure
Dudu Lu (1):
Bluetooth: bnep: fix incorrect length parsing in bnep_rx_frame() extension handling
Emmanuel Grumbach (2):
wifi: iwlwifi: mvm: don't support the reset handshake for old firmwares
wifi: iwlwifi: pcie: simplify the resume flow if fast resume is not used
Eric Dumazet (7):
ipv4: restrict IPOPT_SSRR and IPOPT_LSRR options
ieee802154: 6lowpan: only accept IPv6 packets in lowpan_xmit()
bonding: annotate data-races arcound churn variables
tcp: restrict SO_ATTACH_FILTER to priv users
ip6_vti: set netns_immutable on the fallback device.
ip6_vti: fix incorrect tunnel matching in vti6_tnl_lookup() vsock/virtio: fix potential unbounded skb queue
Eva Kurchatova (1):
tracing: Fix CFI violation in probestub being called by tprobes
Fedor Pchelkin (1):
wifi: fix leak if split 6 GHz scanning fails
Felix Gu (1):
spi: rzv2h-rspi: Fix SPDR read access width for 16-bit RX
Fernando Fernandez Mancera (2):
netfilter: xt_NFQUEUE: prefer raw_smp_processor_id
netfilter: synproxy: add mutex to guard hook reference counting
Florian Westphal (3):
netfilter: conntrack_irc: fix possible out-of-bounds read
netfilter: revalidate bridge ports
netfilter: nft_exthdr: fix register tracking for F_PRESENT flag
Fushuai Wang (1):
net/mlx5: Use effective affinity mask for IRQ selection
Gabriele Monaco (6):
tools/rv: Ensure monitor name and desc are NUL-terminated tools/rv: Fix substring match bug in monitor name search tools/rv: Fix substring match when listing container monitors tools/rv: Fix cleanup after failed trace setup verification/rvgen: Fix options shared among commands verification/rvgen: Fix ltl2k writing True as a literal
Gang Yan (1):
mptcp: check desc->count in read_sock
Gao Xiang (1):
erofs: fix use-after-free on sbi->sync_decompress
Geetha sowjanya (1):
octeontx2-pf: Fix NDC sync operation errors
Geliang Tang (1):
selftests: harness: fix pidfd leak in __wait_for_test
Georgiy Osokin (1):
tee: shm: fix shm leak in register_shm_helper()
Gil Portnoy (2):
ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers
ksmbd: fix use-after-free of a deferred file_lock on double SMB2_CANCEL
Greg Kroah-Hartman (1):
Linux 7.0.13
Guangshuo Li (1):
dm cache policy smq: check allocation under invalidate lock
Guillermo Rodríguez (1):
i2c: stm32f7: fix timing computation ignoring i2c-analog-filter
HanQuan (1):
net: add pskb_may_pull() to skb_gro_receive_list()
Hans de Goede (1):
clk: qcom: x1e80100-dispcc: Stop disp_cc_mdss_mdp_clk_src from getting parked
Hari Chandrakanthan (1):
wifi: cfg80211: add support to handle incumbent signal detected event from mac80211/driver
Harry Wentland (7):
drm/amd/display: Reject gpio_bitshift >= 32 in bios_parser_get_gpio_pin_info() drm/amd/display: Bound VBIOS record-chain walk loops drm/amd/display: Clamp HDMI HDCP2 rx_id_list read to buffer size drm/amd/display: Clamp VBIOS HDMI retimer register count to array size drm/amd/display: Fix NULL deref and buffer over-read in SDP debugfs drm/amd/display: Fix out-of-bounds read in dp_get_eq_aux_rd_interval() drm/amd/display: Use krealloc_array() in dal_vector_reserve()
Harshal Dev (1):
soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
Heiko Carstens (1):
s390: Remove GENERIC_LOCKBREAK Kconfig option
Heiko Stuebner (1):
mmc: dw_mmc-rockchip: Add missing private data for very old controllers
Helen Koike (1):
debugobjects: Do not fill_pool() if pi_blocked_on
Honglei Huang (1):
drm/amdgpu: drop retry loop in amdgpu_hmm_range_get_pages
Huan He (1):
mmc: sdhci-of-dwcmshc: Fix reset, clk, and SDIO support for Eswin EIC7700
HyeongJun An (1):
USB: serial: kl5kusb105: fix bulk-out buffer overflow
Hyunwoo Kim (2):
KVM: arm64: Take the SRCU lock for page table walks in fault injection and AT emulation
inet: frags: fix use-after-free caused by the fqdir_pre_exit() flush
Ido Schimmel (2):
ipv6: mcast: Fix use-after-free when processing MLD queries
ipv6: Fix a potential NPD in cleanup_prefix_route()
Inochi Amaoto (2):
mmc: litex_mmc: Use DIV_ROUND_UP for more accurate clock calculation
mmc: litex_mmc: Set mandatory idle clocks before CMD0
Jack Wu (1):
USB: serial: option: add usb-id for Dell Wireless DW5826e-m
Jakub Kicinski (2):
Reapply "bnxt_en: bring back rtnl_lock() in the bnxt_open() path"
netdev: fix double-free in netdev_nl_bind_rx_doit()
Jamal Hadi Salim (1):
net/sched: act_api: use RCU with deferred freeing for action lifecycle
Jan Polensky (1):
s390/bug: Always emit format word in __BUG_ENTRY
Jani Nikula (1):
drm/xe/display: fix oops in suspend/shutdown without display
Jann Horn (4):
namespace: restrict OPEN_TREE_NAMESPACE/FSMOUNT_NAMESPACE to directories
fhandle: fix UAF due to unlocked ->mnt_ns read in may_decode_fh()
fuse: reject fuse_notify() pagecache ops on directories
fuse: limit FUSE_NOTIFY_RETRIEVE to uptodate folios
Jason Gunthorpe (4):
RDMA/core: Validate the passed in fops for ib_get_ucaps() iommu/dma: Do not try to iommu_map a 0 length region in swiotlb
RDMA: During rereg_mr ensure that REREG_ACCESS is compatible RDMA/umem: Fix truncation for block sizes >= 4G
Jason Xing (1):
xsk: cache csum_start/csum_offset to fix TOCTOU in xsk_skb_metadata()
Jens Axboe (1):
io_uring/kbuf: don't truncate end buffer for bundles
Jeremy Kerr (2):
net: mctp: usb: fix race between urb completion and rx_retry cancellation
net: mctp: usb: don't fail mctp_usb_rx_queue on a deferred submission
Ji'an Zhou (2):
ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams futex/requeue: Prevent NULL pointer dereference in remove_waiter() on self-deadlock
Jianyu Li (1):
af_unix: Fix inq_len update problem in partial read
Jiawen Wu (3):
net: txgbe: initialize module info buffer
net: txgbe: distinguish module types by checking identifier
net: txgbe: initialize PHY interface to 0
Jiayuan Chen (2):
netfilter: nft_ct: bail out on template ct in get eval
ipv6: anycast: insert aca into global hash under idev->lock
Jisheng Zhang (1):
mmc: sdhci: add signal voltage switch in sdhci_resume_host
Joanne Koong (1):
iomap: avoid potential null folio->mapping deref during error reporting
Joey Gouly (1):
KVM: arm64: Restore POR_EL0 access to host EL0
Johan Hovold (2):
driver core: faux: fix root device registration driver core: reject devices with unregistered buses
Johannes Berg (3):
wifi: nl80211: split out UHR operation information
wifi: cfg80211: enforce HE/EHT cap/oper consistency
wifi: mac80211: tests: mark HT check strict
Jonas Jelonek (1):
net: sfp: initialize i2c_block_size at adapter configure time
Joonas Lahtinen (1):
drm/i915/gem: Fix phys BO pread/pwrite with offset
Judith Mendez (2):
pinctrl: mcp23s08: Initialize mcp->dev and mcp->addr before regmap init
pinctrl: mcp23s08: Read spi-present-mask as u8 not u32
Julian Anastasov (1):
ipvs: clear the svc scheduler ptr early on edit
Junrui Luo (1):
misc: fastrpc: fix DMA address corruption due to find_vma misuse
Justin Lai (2):
rtase: Avoid sleeping in get_stats64()
rtase: Reset TX subqueue when clearing TX ring
Kamal Dasu (1):
mmc: core: Fix host controller programming for fixed driver type
Karl Mehltretter (2):
ARM: 9474/1: io: avoid KASAN instrumentation of raw halfword I/O
ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow
Kean Ren (1):
ASoC: SDCA: fix NULL pointer dereference in sdca_dev_unregister_functions
Kendall Willis (1):
pmdomain: ti_sci: add wakeup constraint to parent devices of wakeup source
Kuan-Wei Chiu (1):
clk: samsung: gs101: Fix missing USI7_USI DIV clock in peric0_clk_regs
Kuniyuki Iwashima (4):
bpf: Free reuseport cBPF prog after RCU grace period.
net: Annotate sk->sk_write_space() for UDP SOCKMAP.
tcp: Add preempt_{disable,enable}_nested() in reqsk_queue_hash_req().
hsr: Remove WARN_ONCE() in hsr_addr_is_self().
Kurt Kanzenbach (1):
ptp: vclock: Switch from RCU to SRCU
Kyle Meyer (1):
bnxt_en: Fix NULL pointer dereference
Kyle Zeng (4):
ALSA: seq: dummy: fix UMP event stack overread
ipv6: sit: reload inner IPv6 header after GSO offloads
net: guard timestamp cmsgs to real error queue skbs
netfilter: x_tables: avoid leaking percpu counter pointers
Lad Prabhakar (1):
mmc: renesas_sdhi: Add OF entry for RZ/G2H SoC
Lee Jones (1):
l2tp: pppol2tp: hold reference to session in pppol2tp_ioctl()
Leon Romanovsky (1):
RDMA: Move DMA block iterator logic into dedicated files
Leorize (1):
drm/amd/display: add missing CSC entries for BT.2020 for DCE IPs
Li RongQing (2):
dma-mapping: direct: fix missing mapping for THRU_HOST_BRIDGE segments
dma-debug: fix physical address retrieval in debug_dma_sync_sg_for_device
Linus Walleij (1):
ARM: dts: gemini: Fix partition offsets
Lizhi Hou (1):
accel/amdxdna: Fix mm_struct reference leak in aie2_populate_range()
Lorenzo Bianconi (2):
net: airoha: Fix use-after-free in metadata dst teardown
net: ethernet: mtk_eth_soc: Fix use-after-free in metadata dst teardown
Lorenzo Stoakes (2):
mm/huge_memory: use correct flags for device private PMD entry mm/hugetlb: avoid false positive lockdep assertion
Luiz Augusto von Dentz (3):
Bluetooth: ISO: Fix a use-after-free of the hci_conn pointer
Bluetooth: ISO: Fix not releasing hdev reference on iso_conn_big_sync
Bluetooth: MGMT: Fix backward compatibility with userspace
Manivannan Sadhasivam (2):
soc: qcom: ice: Return -ENODEV if the ICE platform device is not found
soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get()
Marco Scardovi (1):
gpio: rockchip: fix generic IRQ chip leak on remove
Mark Bloch (1):
devlink: Release nested relation on devlink free
Mark Rutland (3):
arm64: cputype: Add C1-Ultra definitions
arm64: cputype: Add C1-Premium definitions
arm64: errata: Mitigate TLBI errata on various Arm CPUs
Masami Hiramatsu (Google) (1):
tracing/probes: Point the error offset correctly for eprobe argument error
Matthieu Baerts (NGI0) (3):
mptcp: sockopt: check timestamping ret value
mptcp: sockopt: set sockopt on all subflows
mptcp: add-addr: always drop other suboptions
Maxime Chevallier (4):
net: phy: clean the sfp upstream if phy probing fails
net: phy: remove phy ports upon probe failure
net: phy: Clean the phy_ports after unregistering the downstream SFP bus
net: phy: don't try to setup PHY-driven SFP cages when using genphy
Maíra Canal (4):
drm/v3d: Wait for pending L2T flush before cleaning caches drm/v3d: Fix global performance monitor reference counting drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups drm/v3d: Skip CSD when it has zeroed workgroups
Melissa Wen (3):
drm/colorop: make lut(1/3)d_interpolation props correctly behave as mutable drm/atomic: track individual colorop updates
drm/amd/display: use plane color_mgmt_changed to track colorop changes
Michael Bommarito (9):
sctp: fix uninit-value in __sctp_rcv_asconf_lookup()
Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig RDMA/srp: bound SRP_RSP sense copy by the received length IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN
thunderbolt: Reject zero-length property entries in validator
thunderbolt: Bound root directory content to block size
thunderbolt: Clamp XDomain response data copy to allocation size
thunderbolt: Validate XDomain request packet size before type cast
thunderbolt: Limit XDomain response copy to actual frame size
Michael Kelley (2):
Drivers: hv: vmbus: Provide option to skip VMBus unload on panic drm/hyperv: During panic do VMBus unload after frame buffer is flushed
Miguel Ojeda (1):
rust: x86: support Rust >= 1.98.0 target spec
Mihai Sain (1):
ARM: dts: microchip: sam9x7: fix GMAC clock configuration
Mingyu Wang (3):
i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl
net: qrtr: fix refcount saturation and potential UAF in qrtr_port_remove fs/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling
Muchun Song (2):
mm/cma: fix reserved page leak on activation failure mm/cma_debug: fix invalid accesses for inactive CMA areas
Muhammad Amirul Asyraf Mohamad Jamian (2):
firmware: stratix10-svc: Don't fail probe when async ops unsupported
firmware: stratix10-svc: Return -EOPNOTSUPP when ATF async unsupported
Muhammad Bilal (7):
accel/ethosu: fix OOB write in ethosu_gem_cmdstream_copy_and_validate() accel/ethosu: fix IFM region index out-of-bounds in command stream parser accel/ethosu: fix wrong weight index in NPU_SET_SCALE1_LENGTH on U85 accel/ethosu: fix arithmetic issues in dma_length() accel/ethosu: reject DMA commands with uninitialized length accel/ethosu: reject NPU_OP_RESIZE commands from userspace drm/amdkfd: fix NULL dereference in get_queue_ids()
Mukesh Ojha (1):
misc: fastrpc: Fix NULL pointer dereference in rpmsg callback
Nathan Chancellor (2):
ARM: Do not select HAVE_RUST when KASAN is enabled
cfi: Include uaccess.h for get_kernel_nofault()
Naveen Kumar Chaudhary (1):
time: Fix off-by-one in settimeofday() usec validation
NeilBrown (1):
VFS: fix possible failure to unlock in nfsd4_create_file()
Nicolò Coccia (1):
net/smc: fix sleep-inside-lock in __smc_setsockopt() causing local DoS
Nikita Zhandarovich (1):
drm/i915/edp: Check supported link rates DPCD read
Nikolay Kuratov (1):
net/mlx5: Reorder completion before putting command entry in cmd_work_handler
Niranjana Vishwanathapura (1):
drm/xe/multi_queue: skip submit when primary queue is suspended
Nirmoy Das (1):
ovl: keep err zero after successful ovl_cache_get()
Nithin Dabilpuram (1):
octeontx2-af: npc: Fix CPT channel mask in npc_install_flow
Oliver Upton (2):
KVM: arm64: nv: Fix handling of XN[0] when !FEAT_XNX
KVM: arm64: Correctly identify executable PTEs at stage-2
Oscar Maes (1):
pcnet32: stop holding device spin lock during napi_complete_done
Paolo Abeni (4):
mptcp: fix missing wakeups in edge scenarios
mptcp: fix retransmission loop when csum is enabled
mptcp: close TOCTOU race while computing rcv_wnd
mptcp: allow subflow rcv wnd to shrink
Pavan Chebbi (2):
fwctl/bnxt_en: Move common definitions to include/linux/bnxt/ fwctl/bnxt_en: Refactor aux bus functions to be more generic
Pengyu Luo (1):
clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time
Petr Oros (1):
ice: fix missing priority callbacks for U.FL DPLL pins
Priya Hosur (1):
drm/amd/pm: smu_v14_0_0: use SoftMin for gfxclk in set_soft_freq_limited_range
Qing Wang (1):
rseq: Fix using an uninitialized stack variable in rseq_exit_user_update()
Raf Dickson (1):
vsock/vmci: fix sk_ack_backlog leak on failed handshake
Rajat Gupta (1):
net/sched: fix pedit partial COW leading to page cache corruption
Randy Dunlap (1):
RDMA/umem: fix kernel-doc warnings
Richard Fitzgerald (1):
ASoC: wm_adsp: Fix NULL dereference when removing firmware controls
Richard Patel (1):
riscv: cfi: reject unknown flags in PR_SET_CFI
Rio Liu (1):
wifi: mac80211: skip ieee80211_verify_sta_ht_mcs_support check in non-strict mode
Robertus Diawan Chris (1):
tee: qcomtee: add missing va_end in early return qcomtee_object_user_init()
Rodrigo Vivi (1):
drm/xe: fix job timeout recovery for unstarted jobs and kernel queues
Rosen Penev (1):
net: ibm: emac: Fix use-after-free during device removal
Ruoyu Wang (1):
gpio: zynq: fix runtime PM leak on remove
Salman Alghamdi (2):
staging: rtl8723bs: fix buffer over-read in rtw_update_protection
staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction
Sanghyun Park (1):
xfrm: policy: fix use-after-free on inexact bin in xfrm_policy_bysel_ctx()
Santosh Kalluri (1):
net: phonet: free phonet_device after RCU grace period
Sean Christopherson (2):
KVM: Don't WARN if memory is dirtied without a vCPU when the VM is dying
KVM: SEV: Decouple the need to sync the GHCB SA from the need to free the SA
Sechang Lim (1):
udp: clear skb->dev before running a sockmap verdict
SeongJae Park (3):
mm/damon/ops-common: call folio_test_lru() after folio_get() mm/damon/lru_sort: handle ctx allocation failure mm/damon/reclaim: handle ctx allocation failure
SeungJu Cheon (3):
Bluetooth: RFCOMM: validate skb length in MCC handlers
Bluetooth: ISO: Fix data-race on iso_pi fields in hci_get_route calls
Bluetooth: SCO: Fix data-race on sco_pi fields in sco_connect
Shakeel Butt (2):
memcg: use round-robin victim selection in refill_stock mm/list_lru: drain before clearing xarray entry on reparent
Shanker Donthineni (1):
arm64: errata: Mitigate TLBI errata on NVIDIA Olympus CPU
Simona Vetter (1):
drm/gem: Try to fix change_handle ioctl, attempt 4
Stefano Garzarella (2):
vsock/virtio: fix skb overhead accounting to preserve full buf_alloc vsock/virtio: fix skb overhead overflow on 32-bit builds
Suman Ghosh (1):
octeontx2-af: Fix initialization of mcam's entry2target_pffunc field
Sun Shaojie (1):
cgroup/cpuset: Use effective_xcpus in partcmd_update add/del mask calculation
Takao Sato (1):
xfrm: iptfs: preserve shared-frag marker in iptfs_consume_frags()
Takashi Iwai (2):
ALSA: timer: Forcibly close timer instances at closing
ALSA: timer: Fix UAF at snd_timer_user_params()
Tangudu Tilak Tirumalesh (2):
Revert "drm/xe: Skip exec queue schedule toggle if queue is idle during suspend" drm/xe: Clear pending_disable before signaling suspend fence
Tao Cui (2):
mptcp: pm: fix extra_subflows underflow on userspace PM subflow creation
selftests: mptcp: add test for extra_subflows underflow on userspace PM
Tapio Reijonen (1):
net: fec: fix pinctrl default state restore order on resume
Tejun Heo (1):
sched_ext: Don't warn on NULL cgrp_moving_from in scx_cgroup_move_task()
Thorsten Blum (1):
hv: utils: handle and propagate errors in kvp_register
Til Kaiser (4):
net: mvpp2: sync RX data at the hardware packet offset
net: mvpp2: limit XDP frame size to the RX buffer
net: mvpp2: refill RX buffers before XDP or skb use
net: mvpp2: build skb from XDP-adjusted data on XDP_PASS
Tomas Glozar (1):
rtla: Fix parsing of multi-character short options
Tony Luck (1):
x86/resctrl: Only check Intel systems for SNC
Tristan Madani (2):
netfilter: nft_tunnel: fix use-after-free on object destroy
xfrm: iptfs: fix ABBA deadlock in iptfs_destroy_state()
Tudor Ambarus (1):
firmware: samsung: acpm: Fix mailbox channel leak on probe error
Usama Arif (1):
mm/mincore: handle non-swap entries before !CONFIG_SWAP guard
Vadim Fedorenko (1):
ptp: ocp: fix resource freeing order
Val Packett (1):
arm64: dts: qcom: x1-dell-thena: remove i2c20 (battery SMBus) and reserve its pins
Vijendar Mukunda (1):
ASoC: SOF: amd: fix for ipc flags check
Vikas Gupta (1):
bnge: fix context mem iteration
Viken Dadhaniya (1):
spi: qcom-geni: Fix cs_change handling on the last transfer
Vitaly Prosyak (1):
drm/amdgpu: set noretry=1 as default for GFX 10.1.x (Navi10/12/14)
Vladimir Zapolskiy (1):
i2c: qcom-cci: Fix NULL pointer dereference in cci_remove()
Waiman Long (1):
debugobjects: Don't call fill_pool() in early boot hardirq context
Wei Liu (1):
mshv: add a missing padding field
Weiming Shi (2):
net/rds: fix NULL deref in rds_ib_send_cqe_handler() on masked atomic completion
netfilter: nf_conntrack: destroy stale expectfn expectations on unregister
Wentao Liang (2):
drm/xe: fix refcount leak in xe_range_fence_insert()
drm/virtio: fix dma_fence refcount leak on error in virtio_gpu_dma_fence_wait()
Will Deacon (1):
arm64: errata: Mitigate TLBI errata on Microsoft Azure Cobalt 100 CPU
Wupeng Ma (1):
mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison
Wyatt Feng (2):
xfrm: espintcp: do not reuse an in-progress partial send
sctp: stream: fully roll back denied add-stream state
Xiang Mei (2):
tun: zero the whole vnet header in tun_put_user()
netfilter: nf_log: validate MAC header was set before dumping it
Xin Long (3):
sctp: validate cached peer INIT chunk length in COOKIE_ECHO processing
sctp: purge outqueue on stale COOKIE-ECHO handling
sctp: validate embedded INIT chunk and address list lengths in cookie
Yang Wang (3):
drm/amd/pm: apply SMU 13.0.10 workaround during MP1 unload drm/amd/pm: fix smu13 power limit default/cap calculation drm/amd/pm: mark metrics.energy_accumulator is invalid for smu 14.0.2
Yao Sang (1):
net/mlx4: avoid GCC 10 __bad_copy_from() false positive
Yicong Hui (1):
drm/imx: Fix three kernel-doc warnings in dcss-scaler.c
Yilin Zhu (1):
ipc/shm: serialize orphan cleanup with shm_nattch updates
Yiming Qian (1):
netfilter: bridge: make ebt_snat ARP rewrite writable
Yin Tirui (2):
mm/huge_memory: update file PMD counter before folio_put() mm/huge_memory: update file PUD counter before folio_put()
Yingjie Gao (2):
xfs: fix error returns in CoW fork repair
xfs: fix rtgroup cleanup in CoW fork repair
Yishai Hadas (1):
RDMA/core: Validate cpu_id against nr_cpu_ids in DMAH alloc
Yizhou Zhao (3):
6lowpan: fix off-by-one in multicast context address compression
net: garp: fix unsigned integer underflow in garp_pdu_parse_attr net/802/mrp: fix vector attribute parsing in mrp_pdu_parse_vecattr
Yuho Choi (1):
ARM: socfpga: Fix OF node refcount leak in SMP setup
Yun Zhou (1):
gpio: mvebu: fix NULL pointer dereference in suspend/resume
Yuqi Xu (3):
Bluetooth: hci_sync: reject oversized Broadcast Announcement prepend
wifi: nl80211: reject oversized EMA RNR lists
net: rds: clear i_sends on setup unwind
Zeyu WANG (1):
Input: atkbd - add DMI quirk for Lenovo Yoga Air 14 (83QK)
Zhan Xusheng (1):
cpufreq/amd-pstate: drop stale @epp_cached kdoc
Zhang Cen (3):
Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()
Bluetooth: MGMT: validate advertising TLV before type checks
Bluetooth: bnep: reject short frames before parsing
Zhao Zhang (1):
sctp: diag: reject stale associations in dump_one path
ZhaoJinming (2):
net: airoha: Add NULL check for of_reserved_mem_lookup() in airoha_qdma_init_hfwd_queues()
net: bonding: fix NULL pointer dereference in bond_do_ioctl()
Zhengchuan Liang (1):
netfilter: require Ethernet MAC header before using eth_hdr()
Zhenghang Xiao (2):
xfrm: iptfs: fix use-after-free on first_skb in __input_process_payload
misc: fastrpc: fix use-after-free race in fastrpc_map_create
Greg Kroah-Hartman
maintainerDocumentation/arch/arm64/silicon-errata.rst +48 -0
@@ -128,16 +128,28 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A76 | #3324349 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A76 | #4193800 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A76AE | #4193801 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A77 | #1491015 | N/A | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A77 | #3324348 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A77 | #4193798 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A78 | #3324344 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A78 | #4193791 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A78AE | #4193793 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A78C | #3324346,3324347| ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A78C | #4193794 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 |
@@ -146,6 +158,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #3324338 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A710 | #4193788 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
@@ -158,20 +172,32 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X1 | #3324344 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X1 | #4193791 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X1C | #3324346 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X1C | #4193792 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X2 | #2119858 | ARM64_ERRATUM_2119858 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X2 | #2224489 | ARM64_ERRATUM_2224489 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X2 | #3324338 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X2 | #4193788 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X3 | #3324335 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X3 | #4193786 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X4 | #3194386 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X4 | #4118414 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-X925 | #3324334 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-X925 | #4193781 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N1 | #1349291 | N/A |
@@ -182,6 +208,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N1 | #3324349 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-N1 | #4193800 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N2 | #2139208 | ARM64_ERRATUM_2139208 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N2 | #2067961 | ARM64_ERRATUM_2067961 |
@@ -190,18 +218,34 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-N2 | #4193789 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V1 | #1619801 | N/A | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-V1 | #4193790 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-V2 | #4193787 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V3 | #3312417 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-V3 | #4193784 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V3AE | #3312417 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-V3AE | #4193784 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | C1-Premium | #4193780 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | C1-Pro | #4193714 | ARM64_ERRATUM_4193714 | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | C1-Ultra | #4193780 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | MMU-500 | #841119,826419 | ARM_SMMU_MMU_500_CPRE_ERRATA| | | | #562869,1047329 | | +----------------+-----------------+-----------------+-----------------------------+
@@ -245,6 +289,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | NVIDIA | Carmel Core | N/A | NVIDIA_CARMEL_CNP_ERRATUM | +----------------+-----------------+-----------------+-----------------------------+ +| NVIDIA | Olympus core | T410-OLY-1029 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+ | NVIDIA | T241 GICv3/4.x | T241-FABRIC-4 | N/A | +----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
@@ -306,3 +352,5 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | Microsoft | Azure Cobalt 100| #3324339 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| Microsoft | Azure Cobalt 100| #4193789 | ARM64_ERRATUM_4118414 | ++----------------+-----------------+-----------------+-----------------------------+
Makefile +3 -2
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 7 PATCHLEVEL = 0 -SUBLEVEL = 12 +SUBLEVEL = 13 EXTRAVERSION = NAME = Baby Opossum Posse
@@ -606,6 +606,7 @@ KBUILD_RUSTFLAGS := $(rust_common_flags) \ -Crelocation-model=static \ -Zfunction-sections=n \ -Wclippy::float_arithmetic +KBUILD_RUSTFLAGS_OPTION_CHKS := KBUILD_AFLAGS_KERNEL := KBUILD_CFLAGS_KERNEL :=
@@ -642,7 +643,7 @@ export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE -export KBUILD_RUSTFLAGS RUSTFLAGS_KERNEL RUSTFLAGS_MODULE +export KBUILD_RUSTFLAGS RUSTFLAGS_KERNEL RUSTFLAGS_MODULE KBUILD_RUSTFLAGS_OPTION_CHKS export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_RUSTFLAGS_MODULE KBUILD_LDFLAGS_MODULE export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL KBUILD_RUSTFLAGS_KERNEL
arch/arm/Kconfig +1 -1
@@ -135,7 +135,7 @@ config ARM select MMU_GATHER_RCU_TABLE_FREE if SMP && ARM_LPAE select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RSEQ - select HAVE_RUST if CPU_LITTLE_ENDIAN && CPU_32v7 + select HAVE_RUST if CPU_LITTLE_ENDIAN && CPU_32v7 && !KASAN select HAVE_STACKPROTECTOR select HAVE_SYSCALL_TRACEPOINTS select HAVE_UID16
arch/arm/boot/dts/gemini/gemini-sl93512r.dts +1 -1
@@ -146,7 +146,7 @@ flash@30000000 { partitions { compatible = "redboot-fis"; /* Eraseblock at 0xfe0000 */ - fis-index-block = <0x1fc>; + fis-index-block = <0x7f>; }; };
arch/arm/boot/dts/gemini/gemini-sq201.dts +1 -1
@@ -134,7 +134,7 @@ flash@30000000 { partitions { compatible = "redboot-fis"; /* Eraseblock at 0xfe0000 */ - fis-index-block = <0x1fc>; + fis-index-block = <0x7f>; }; };
arch/arm/boot/dts/microchip/sam9x7.dtsi +3 -3
@@ -990,9 +990,9 @@ gmac: ethernet@f802c000 { <62 IRQ_TYPE_LEVEL_HIGH 3>, /* Queue 3 */ <63 IRQ_TYPE_LEVEL_HIGH 3>, /* Queue 4 */ <64 IRQ_TYPE_LEVEL_HIGH 3>; /* Queue 5 */ - clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_GCK 24>, <&pmc PMC_TYPE_GCK 67>; - clock-names = "hclk", "pclk", "tx_clk", "tsu_clk"; - assigned-clocks = <&pmc PMC_TYPE_GCK 67>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_GCK 24>; + clock-names = "hclk", "pclk", "tsu_clk"; + assigned-clocks = <&pmc PMC_TYPE_GCK 24>; assigned-clock-rates = <266666666>; status = "disabled"; };
arch/arm/include/asm/io.h +13 -2
@@ -56,8 +56,19 @@ void __raw_readsl(const volatile void __iomem *addr, void *data, int longlen);* the bus. Rather than special-case the machine, just let the compiler * generate the access for CPUs prior to ARMv6. */ -#define __raw_readw (a) (__chk_io_ptr(a), *(volatile unsigned short __force *)(a)) -#define __raw_writew (v,a) ((void)(__chk_io_ptr(a), *(volatile unsigned short __force *)(a) = (v))) +#define __raw_writew __raw_writew +static __no_kasan_or_inline void __raw_writew(u16 val, volatile void __iomem *addr) +{ +__chk_io_ptr (addr); + *(volatile unsigned short __force *)addr = val; +} + +#define __raw_readw __raw_readw +static __no_kasan_or_inline u16 __raw_readw(const volatile void __iomem *addr) +{ +__chk_io_ptr (addr); +return *(const volatile unsigned short __force *)addr; +}#else /* * When running under a hypervisor, we want to avoid I/O accesses with
arch/arm/kernel/entry-armv.S +1 -1
@@ -567,7 +567,7 @@ ENTRY(__switch_to) @ are using KASAN mov_l r2, KASAN_SHADOW_OFFSET add r2, r2, ip, lsr #KASAN_SHADOW_SCALE_SHIFT - ldr r2, [r2] + ldrb r2, [r2] #endif #endif
arch/arm/mach-socfpga/platsmp.c +1 -0
@@ -78,6 +78,7 @@ static void __init socfpga_smp_prepare_cpus(unsigned int max_cpus) } socfpga_scu_base_addr =of_iomap (np,0 ); +of_node_put (np);if (!socfpga_scu_base_addr)return ;scu_enable (socfpga_scu_base_addr);
arch/arm64/Kconfig +38 -0
@@ -1176,6 +1176,44 @@ config ARM64_ERRATUM_4311569 If unsure, say Y. +config ARM64_ERRATUM_4118414 + bool "Various: Completion of affected memory accesses might not be guaranteed by completion of a TLBI" + default y + select ARM64_WORKAROUND_REPEAT_TLBI + help + This option adds a workaround for the following errata: + + * ARM C1-Premium erratum 4193780 + * ARM C1-Ultra erratum 4193780 + * ARM Cortex-A76 erratum 4193800 + * ARM Cortex-A76AE erratum 4193801 + * ARM Cortex-A77 erratum 4193798 + * ARM Cortex-A78 erratum 4193791 + * ARM Cortex-A78AE erratum 4193793 + * ARM Cortex-A78C erratum 4193794 + * ARM Cortex-A710 erratum 4193788 + * ARM Cortex-X1 erratum 4193791 + * ARM Cortex-X1C erratum 4193792 + * ARM Cortex-X2 erratum 4193788 + * ARM Cortex-X3 erratum 4193786 + * ARM Cortex-X4 erratum 4118414 + * ARM Cortex-X925 erratum 4193781 + * ARM Neoverse-N1 erratum 4193800 + * ARM Neoverse-N2 erratum 4193789 + * ARM Neoverse-V1 erratum 4193790 + * ARM Neoverse-V2 erratum 4193787 + * ARM Neoverse-V3 erratum 4193784 + * ARM Neoverse-V3AE erratum 4193784 + * Microsoft Azure Cobalt 100 4193789 + * NVIDIA Olympus erratum T410-OLY-1029 + + On affected cores, some memory accesses might not be completed by + broadcast TLB invalidation. + + This issue is also known as CVE-2025-10263. + + If unsure, say Y. + config CAVIUM_ERRATUM_22375 bool "Cavium erratum 22375, 24313" default y
arch/arm64/Makefile +3 -0
@@ -63,6 +63,9 @@ else KBUILD_CFLAGS += -fasynchronous-unwind-tables KBUILD_AFLAGS += -fasynchronous-unwind-tables KBUILD_RUSTFLAGS += -Cforce-unwind-tables=y -Zuse-sync-unwind=n +# Work around rustc bug on compilers without +# https://github.com/rust-lang/rust/pull/156973. +KBUILD_RUSTFLAGS += $(if $(call rustc-min-version,109800),,-Zllvm_module_flag=uwtable:u32:2:max) endif ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi +1 -6
@@ -982,12 +982,6 @@ &i2c8 { status = "okay"; }; -&i2c20 { - clock-frequency = <400000>; - - status = "okay"; -}; - &lpass_tlmm { spkr_01_sd_n_active: spkr-01-sd-n-active-state { pins = "gpio12";
@@ -1308,6 +1302,7 @@ right_tweeter: speaker@0,1 { &tlmm { gpio-reserved-ranges = <44 4>, /* SPI11 (TPM) */ <76 4>, /* SPI19 (TZ Protected) */ + <80 2>, /* I2C20 (Battery SMBus) */ <238 1>; /* UFS Reset */ cam_rgb_default: cam-rgb-default-state {
arch/arm64/include/asm/cputype.h +4 -0
@@ -97,7 +97,9 @@#define ARM_CPU_PART_CORTEX_X925 0xD85#define ARM_CPU_PART_CORTEX_A725 0xD87#define ARM_CPU_PART_CORTEX_A720AE 0xD89 +#define ARM_CPU_PART_C1_ULTRA 0xD8C#define ARM_CPU_PART_NEOVERSE_N3 0xD8E +#define ARM_CPU_PART_C1_PREMIUM 0xD90#define APM_CPU_PART_XGENE 0x000#define APM_CPU_VAR_POTENZA 0x00
@@ -188,7 +190,9 @@#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)#define MIDR_CORTEX_A720AE MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A720AE) +#define MIDR_C1_ULTRA MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_C1_ULTRA)#define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3) +#define MIDR_C1_PREMIUM MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_C1_PREMIUM)#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
arch/arm64/include/asm/kvm_nested.h +2 -2
@@ -131,7 +131,7 @@ static inline bool kvm_s2_trans_exec_el0(struct kvm *kvm, struct kvm_s2_trans *tu8 xn =FIELD_GET (KVM_PTE_LEAF_ATTR_HI_S2_XN , trans->desc);if (!kvm_has_xnx (kvm)) - xn &=FIELD_PREP (KVM_PTE_LEAF_ATTR_HI_S2_XN ,0b10 ); + xn &=0b10 ;switch (xn) {case 0b00 :
@@ -147,7 +147,7 @@ static inline bool kvm_s2_trans_exec_el1(struct kvm *kvm, struct kvm_s2_trans *tu8 xn =FIELD_GET (KVM_PTE_LEAF_ATTR_HI_S2_XN , trans->desc);if (!kvm_has_xnx (kvm)) - xn &=FIELD_PREP (KVM_PTE_LEAF_ATTR_HI_S2_XN ,0b10 ); + xn &=0b10 ;switch (xn) {case 0b00 :
arch/arm64/kernel/cpu_errata.c +32 -2
@@ -339,7 +339,37 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = { ERRATA_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1), }, #endif - {}, +#ifdef CONFIG_ARM64_ERRATUM_4118414 + { + ERRATA_MIDR_RANGE_LIST(((const struct midr_range[]) { + MIDR_ALL_VERSIONS(MIDR_C1_PREMIUM), + MIDR_ALL_VERSIONS(MIDR_C1_ULTRA), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A76), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A76AE), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A77), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A78), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A78AE), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A710), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X1), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X1C), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X2), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X3), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X4), + MIDR_ALL_VERSIONS(MIDR_CORTEX_X925), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3), + MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3AE), + MIDR_ALL_VERSIONS(MIDR_NVIDIA_OLYMPUS), + MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100), + {} + })), + }, +#endif + {} }; #endif
@@ -675,7 +705,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {#endif #ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI { - .desc = "Qualcomm erratum 1009, or ARM erratum 1286807, 2441009", + .desc = "Broken broadcast TLBI completion", .capability = ARM64_WORKAROUND_REPEAT_TLBI, .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, .matches = cpucap_multi_entry_cap_matches,
arch/arm64/kvm/at.c +4 -2
@@ -1568,7 +1568,8 @@ int __kvm_at_s12(struct kvm_vcpu *vcpu, u32 op, u64 vaddr)/* Do the stage-2 translation */ ipa = (par &GENMASK_ULL (47 ,12 )) | (vaddr &GENMASK_ULL (11 ,0 )); out.esr =0 ; - ret =kvm_walk_nested_s2 (vcpu, ipa, &out); +scoped_guard (srcu, &vcpu->kvm->srcu) + ret = kvm_walk_nested_s2(vcpu, ipa, &out);if (ret <0 )return ret;
@@ -1664,7 +1665,8 @@ int __kvm_find_s1_desc_level(struct kvm_vcpu *vcpu, u64 va, u64 ipa, int *level) }/* Walk the guest's PT, looking for a match along the way */ - ret =walk_s1 (vcpu, &wi, &wr, va); +scoped_guard (srcu, &vcpu->kvm->srcu) + ret = walk_s1(vcpu, &wi, &wr, va);switch (ret) {case -EINTR :/* We interrupted the walk on a match, return the level */
arch/arm64/kvm/hyp/include/hyp/switch.h +2 -0
@@ -181,6 +181,8 @@ static inline void __deactivate_cptr_traps_vhe(struct kvm_vcpu *vcpu) val |=CPACR_EL1_ZEN ;if (cpus_have_final_cap (ARM64_SME )) val |=CPACR_EL1_SMEN ; +if (cpus_have_final_cap (ARM64_HAS_S1POE )) + val |=CPACR_EL1_E0POE ;write_sysreg (val, cpacr_el1); }
arch/arm64/kvm/hyp/pgtable.c +3 -1
@@ -923,7 +923,9 @@ static bool stage2_pte_cacheable(struct kvm_pgtable *pgt, kvm_pte_t pte)static bool stage2_pte_executable (kvm_pte_t pte) { -return kvm_pte_valid (pte) && !(pte &KVM_PTE_LEAF_ATTR_HI_S2_XN ); +enum kvm_pgtable_prot prot =kvm_pgtable_stage2_pte_prot (pte); + +return prot & (KVM_PGTABLE_PROT_UX |KVM_PGTABLE_PROT_PX ); } static u64 stage2_map_walker_phys_addr(const struct kvm_pgtable_visit_ctx *ctx,
arch/arm64/mm/mmu.c +1 -0
@@ -1445,6 +1445,7 @@ static void free_hotplug_page_range(struct page *page, size_t size,static void free_hotplug_pgtable_page (struct page *page) { +pagetable_dtor (page_ptdesc (page));free_hotplug_page_range (page,PAGE_SIZE ,NULL ); }
arch/riscv/include/asm/usercfi.h +1 -0
@@ -50,6 +50,7 @@ void set_indir_lp_status(struct task_struct *task, bool enable);void set_indir_lp_lock (struct task_struct *task,bool lock);#define PR_SHADOW_STACK_SUPPORTED_STATUS_MASK (PR_SHADOW_STACK_ENABLE) +#define PR_CFI_SUPPORTED_STATUS_MASK (PR_CFI_ENABLE | PR_CFI_DISABLE | PR_CFI_LOCK)#else
arch/riscv/kernel/ptrace.c +1 -1
@@ -413,7 +413,7 @@ static struct user_regset riscv_user_regset[] __ro_after_init = {#endif #ifdef CONFIG_RISCV_USER_CFI [REGSET_CFI] = { - .core_note_type = NT_RISCV_USER_CFI, + USER_REGSET_NOTE_TYPE(RISCV_USER_CFI), .align = sizeof(__u64), .n = sizeof(struct user_cfi_state) / sizeof(__u64), .size = sizeof(__u64),
arch/riscv/kernel/usercfi.c +3 -0
@@ -476,6 +476,9 @@ int arch_prctl_set_branch_landing_pad_state(struct task_struct *t, unsigned longif (!is_user_lpad_enabled ())return -EINVAL ; +if (state & ~PR_CFI_SUPPORTED_STATUS_MASK ) +return -EINVAL ; +/* indirect branch tracking is locked and further can't be modified by user */ if (is_indir_lp_locked (t))return -EINVAL ;
arch/s390/Kconfig +0 -3
@@ -29,9 +29,6 @@ config GENERIC_BUG config GENERIC_BUG_RELATIVE_POINTERS def_bool y -config GENERIC_LOCKBREAK - def_bool y if PREEMPTION - config AUDIT_ARCH def_bool y
arch/s390/crypto/Kconfig +1 -0
@@ -14,6 +14,7 @@ config CRYPTO_GHASH_S390 config CRYPTO_AES_S390 tristate "Ciphers: AES, modes: ECB, CBC, CTR, XTS, GCM" + select CRYPTO_AEAD select CRYPTO_SKCIPHER help AEAD cipher: AES with GCM
arch/s390/include/asm/bug.h +6 -6
@@ -12,12 +12,11 @@#if defined(CONFIG_BUG ) && defined(CONFIG_CC_HAS_ASM_IMMEDIATE_STRINGS )#ifdef CONFIG_DEBUG_BUGVERBOSE -#define __BUG_ENTRY_VERBOSE (format, file, line) \ - " .long " format " - . # bug_entry::format\n" \ +#define __BUG_ENTRY_VERBOSE (file, line) \ " .long " file " - . # bug_entry::file\n" \ " .short " line " # bug_entry::line\n"#else -#define __BUG_ENTRY_VERBOSE (format, file, line) +#define __BUG_ENTRY_VERBOSE (file, line)#endif #ifdef CONFIG_DEBUG_BUGVERBOSE_DETAILED
@@ -28,9 +27,10 @@#define __BUG_ENTRY (format, file, line, flags, size) \ " .section __bug_table,\"aw\"\n" \ - "1: .long 0b - . # bug_entry::bug_addr\n" \ - __BUG_ENTRY_VERBOSE(format, file, line) \ - " .short "flags" # bug_entry::flags\n" \ + "1: .long 0b - . # bug_entry::bug_addr\n"\ + " .long " format " - . # bug_entry::format\n" \ + __BUG_ENTRY_VERBOSE(file, line) \ + " .short "flags" # bug_entry::flags\n" \ " .org 1b+"size"\n" \ " .previous"
arch/x86/Makefile +4 -0
@@ -81,6 +81,10 @@ KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2 +# The target.json file is not available when invoking rustc-option, so use the +# built-in target when checking whether flags are supported instead. +KBUILD_RUSTFLAGS_OPTION_CHKS += --target=x86_64-unknown-none + # # CFLAGS for compiling floating point code inside the kernel. #
arch/x86/Makefile.um +8 -0
@@ -14,6 +14,14 @@ endif KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json +# The target.json file is not available when invoking rustc-option, so use the +# built-in target when checking whether flags are supported instead. +ifeq ($(CONFIG_X86_32),y) +KBUILD_RUSTFLAGS_OPTION_CHKS += --target=i686-unknown-linux-gnu +else +KBUILD_RUSTFLAGS_OPTION_CHKS += --target=x86_64-unknown-linux-gnu +endif + ifeq ($(CONFIG_X86_32),y) START := 0x8048000
arch/x86/kernel/cpu/resctrl/monitor.c +6 -1
@@ -377,7 +377,12 @@ static const struct x86_cpu_id snc_cpu_ids[] __initconst = {static __init int snc_get_config (void ) { -int ret =topology_num_nodes_per_package (); +int ret; + +if (boot_cpu_data.x86_vendor !=X86_VENDOR_INTEL ) +return 1 ; + + ret =topology_num_nodes_per_package ();if (ret >1 && !x86_match_cpu (snc_cpu_ids)) {pr_warn ("CoD enabled system? Resctrl not supported\n" );
arch/x86/kvm/svm/sev.c +14 -13
@@ -3547,20 +3547,17 @@ void sev_es_unmap_ghcb(struct vcpu_svm *svm)if (!svm->sev_es.ghcb)return ; -if (svm->sev_es.ghcb_sa_free) { -/* -* The scratch area lives outside the GHCB, so there is a -* buffer that, depending on the operation performed, may -* need to be synced, then freed. -*/ -if (svm->sev_es.ghcb_sa_sync) { -kvm_write_guest (svm->vcpu.kvm, - svm->sev_es.sw_scratch, - svm->sev_es.ghcb_sa, - svm->sev_es.ghcb_sa_len); - svm->sev_es.ghcb_sa_sync = false; - } +/* +* If the scratch area lives outside the GHCB, there's a buffer that, +* depending on the operation performed, may need to be synced. +*/ +if (svm->sev_es.ghcb_sa_sync) { +kvm_write_guest (svm->vcpu.kvm, svm->sev_es.sw_scratch, + svm->sev_es.ghcb_sa, svm->sev_es.ghcb_sa_len); + svm->sev_es.ghcb_sa_sync = false; + } +if (svm->sev_es.ghcb_sa_free) {kvfree (svm->sev_es.ghcb_sa); svm->sev_es.ghcb_sa =NULL ; svm->sev_es.ghcb_sa_free = false;
@@ -3640,6 +3637,8 @@ static int setup_vmgexit_scratch(struct vcpu_svm *svm, bool sync, u64 min_len) goto e_scratch; } +WARN_ON_ONCE (svm->sev_es.ghcb_sa_sync || svm->sev_es.ghcb_sa_free); +if ((scratch_gpa_beg &PAGE_MASK ) == control->ghcb_gpa) {/* Scratch area begins within GHCB */ ghcb_scratch_beg = control->ghcb_gpa +
@@ -3661,6 +3660,8 @@ static int setup_vmgexit_scratch(struct vcpu_svm *svm, bool sync, u64 min_len) scratch_va = (void *)svm->sev_es.ghcb; scratch_va += (scratch_gpa_beg - control->ghcb_gpa); + svm->sev_es.ghcb_sa_sync = false; + svm->sev_es.ghcb_sa_free = false; svm->sev_es.ghcb_sa_len = ghcb_scratch_end - scratch_gpa_beg; }else {/* GHCB v2 requires the scratch area to be within the GHCB. */
drivers/accel/amdxdna/aie2_ctx.c +3 -0
@@ -928,6 +928,7 @@ static int aie2_populate_range(struct amdxdna_gem_obj *abo)if (ret == -EBUSY ) {amdxdna_umap_put (mapp); +mmput (mm); goto again; }
@@ -938,11 +939,13 @@ static int aie2_populate_range(struct amdxdna_gem_obj *abo)if (mmu_interval_read_retry (&mapp->notifier, mapp->range.notifier_seq)) {up_write (&xdna->notifier_lock);amdxdna_umap_put (mapp); +mmput (mm); goto again; } mapp->invalid = false;up_write (&xdna->notifier_lock);amdxdna_umap_put (mapp); +mmput (mm); goto again; put_mm:
drivers/accel/ethosu/ethosu_gem.c +26 -9
@@ -2,6 +2,7 @@/* Copyright 2025 Arm, Ltd. */ #include <linux/err.h> +#include <linux/overflow.h> #include <linux/slab.h> #include <drm/ethosu_accel.h>
@@ -163,17 +164,30 @@ static u64 dma_length(struct ethosu_validated_cmdstream_info *info,s8 mode = dma_st->mode;u64 len = dma->len; +if (len ==U64_MAX ) +return U64_MAX ; +if (mode >=1 ) { +if (dma->stride[0 ] <0 && (u64)(-dma->stride[0 ]) > len) +return U64_MAX ; len += dma->stride[0 ]; - len *= dma_st->size0; +if (check_mul_overflow (len, (u64 )dma_st->size0, &len)) +return U64_MAX ; }if (mode ==2 ) { +if (dma->stride[1 ] <0 && (u64)(-dma->stride[1 ]) > len) +return U64_MAX ; len += dma->stride[1 ]; - len *= dma_st->size1; +if (check_mul_overflow (len, (u64 )dma_st->size1, &len)) +return U64_MAX ; + } +if (dma->region >=0 ) { +u64 end; + +if (check_add_overflow (len, dma->offset, &end)) +return U64_MAX ; + info->region_size[dma->region] =max (info->region_size[dma->region], end); } -if (dma->region >=0 ) - info->region_size[dma->region] =max (info->region_size[dma->region], - len + dma->offset);return len; }
@@ -387,6 +401,8 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,return -EFAULT ; i++; +if (i >= size /4 ) +return -EINVAL ; bocmds[i] = cmds[1 ]; addr =cmd_to_addr (cmds); }
@@ -395,6 +411,8 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,case NPU_OP_DMA_START : srclen =dma_length (info, &st.dma, &st.dma.src); dstlen =dma_length (info, &st.dma, &st.dma.dst); +if (srclen ==U64_MAX || dstlen ==U64_MAX ) +return -EINVAL ;if (st.dma.dst.region >=0 ) info->output_region[st.dma.dst.region] = true;
@@ -431,8 +449,7 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,return ret;break ;case NPU_OP_RESIZE :// U85 only -WARN_ON (1 );// TODO -break ; +return -EINVAL ;case NPU_SET_KERNEL_WIDTH_M1 : st.ifm.width = param;break ;
@@ -464,7 +481,7 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev, st.ifm.broadcast = param;break ;case NPU_SET_IFM_REGION : - st.ifm.region = param &0x7f ; + st.ifm.region = param &0x7 ;break ;case NPU_SET_IFM_WIDTH0_M1 : st.ifm.width0 = param;
@@ -599,7 +616,7 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,if (ethosu_is_u65 (edev)) st.scale[1 ].length = cmds[1 ];else - st.weight[1 ].length = cmds[1 ]; + st.weight[2 ].length = cmds[1 ];break ;case NPU_SET_WEIGHT3_BASE : st.weight[3 ].base = addr;
drivers/accel/ivpu/ivpu_fw.c +16 -0
@@ -259,6 +259,22 @@ static int ivpu_fw_parse(struct ivpu_device *vdev)return -EINVAL ; } +if (!PAGE_ALIGNED (runtime_addr)) { +ivpu_err (vdev,"Runtime address 0x%llx not page aligned\n" , runtime_addr); +return -EINVAL ; + } + +if (!PAGE_ALIGNED (runtime_size)) { +ivpu_err (vdev,"Runtime size %llu not page aligned\n" , runtime_size); +return -EINVAL ; + } + +if (runtime_size < image_size) { +ivpu_err (vdev,"Runtime size too small: %llu, image size: %llu\n" , + runtime_size, image_size); +return -EINVAL ; + } +if (!ivpu_is_within_range (image_load_addr, image_size, &vdev->hw->ranges.runtime)) {ivpu_err (vdev,"Invalid firmware load address: 0x%llx and size %llu\n" , image_load_addr, image_size);
drivers/accel/ivpu/ivpu_fw_log.c +5 -0
@@ -98,6 +98,11 @@ static void fw_log_print_buffer(struct vpu_tracing_buffer_header *log, const chau32 log_start = only_new_msgs ?READ_ONCE (log->read_index) :0 ;u32 log_end =READ_ONCE (log->write_index); +if (log_start >= data_size) + log_start =0 ; +if (log_end > data_size) + log_end = data_size; +if (log->wrap_count == log->read_wrap_count) {if (log_end <= log_start) {drm_printf (p,"==== %s \"%s\" log empty ====\n" , prefix, log->name);
drivers/accel/ivpu/ivpu_ipc.c +1 -1
@@ -276,7 +276,7 @@ int ivpu_ipc_receive(struct ivpu_device *vdev, struct ivpu_ipc_consumer *cons,if (ipc_buf)memcpy (ipc_buf, rx_msg->ipc_hdr,sizeof (*ipc_buf));if (rx_msg->jsm_msg) { -u32 size =min_t (int, rx_msg->ipc_hdr->data_size,sizeof (*jsm_msg)); +u32 size =min (rx_msg->ipc_hdr->data_size,sizeof (*jsm_msg));if (rx_msg->jsm_msg->result !=VPU_JSM_STATUS_SUCCESS ) {ivpu_err (vdev,"IPC resp result error: %d\n" , rx_msg->jsm_msg->result);
drivers/accel/ivpu/ivpu_ms.c +7 -0
@@ -291,6 +291,13 @@ int ivpu_ms_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *if (ret) goto unlock; +if (info_size >ivpu_bo_size (bo)) { +ivpu_warn_ratelimited (vdev,"MS info overflow: %#llx > %#zx\n" , + info_size,ivpu_bo_size (bo)); + ret = -EOVERFLOW ; + goto unlock; + } +if (args->buffer_size < info_size) { ret = -ENOSPC ; goto unlock;
drivers/base/bus.c +9 -2
@@ -544,10 +544,10 @@ static const struct attribute_group driver_override_dev_group = {*/ int bus_add_device (struct device *dev) { -struct subsys_private *sp =bus_to_subsys (dev->bus); +struct subsys_private *sp;int error; -if (!sp) { +if (!dev->bus) {/* * This is a normal operation for many devices that do not * have a bus assigned to them, just say that all went
@@ -556,6 +556,13 @@ int bus_add_device(struct device *dev)return 0 ; } + sp =bus_to_subsys (dev->bus); +if (!sp) { +pr_err ("%s: cannot add device '%s' to unregistered bus '%s'\n" , + __func__,dev_name (dev), dev->bus->name); +return -EINVAL ; + } +/* * Reference in sp is now incremented and will be dropped when * the device is removed from the bus
drivers/base/faux.c +10 -12
@@ -133,6 +133,9 @@ struct faux_device *faux_device_create_with_groups(const char *name,struct device *dev;int ret; +if (!faux_bus_root) +return NULL ; + faux_obj =kzalloc_obj (*faux_obj);if (!faux_obj)return NULL ;
@@ -232,19 +235,12 @@ EXPORT_SYMBOL_GPL(faux_device_destroy);int __init faux_bus_init (void ) { +struct device *root;int ret; - faux_bus_root =kzalloc_obj (*faux_bus_root); -if (!faux_bus_root) -return -ENOMEM ; - -dev_set_name (faux_bus_root,"faux" ); - - ret =device_register (faux_bus_root); -if (ret) { -put_device (faux_bus_root); -return ret; - } + root =root_device_register ("faux" ); +if (IS_ERR (root)) +return PTR_ERR (root); ret =bus_register (&faux_bus_type);if (ret)
@@ -254,12 +250,14 @@ int __init faux_bus_init(void)if (ret) goto error_driver; + faux_bus_root = root; +return ret; error_driver:bus_unregister (&faux_bus_type); error_bus: -device_unregister (faux_bus_root); +root_device_unregister (root);return ret; }
drivers/block/zram/zram_drv.c +1 -1
@@ -2321,7 +2321,7 @@ static int zram_bvec_write_partial(struct zram *zram, struct bio_vec *bvec,if (!page)return -ENOMEM ; - ret =zram_read_page (zram, page, index, bio); + ret =zram_read_page (zram, page, index,NULL );if (!ret) {memcpy_from_bvec (page_address (page) + offset, bvec); ret =zram_write_page (zram, page, index);
drivers/clk/qcom/dispcc-sc8280xp.c +2 -2
@@ -977,7 +977,7 @@ static struct clk_rcg2 disp0_cc_mdss_mdp_clk_src = { .name = "disp0_cc_mdss_mdp_clk_src", .parent_data = disp0_cc_parent_data_5, .num_parents = ARRAY_SIZE(disp0_cc_parent_data_5), - .ops = &clk_rcg2_shared_ops, + .ops = &clk_rcg2_shared_no_init_park_ops, }, };
@@ -991,7 +991,7 @@ static struct clk_rcg2 disp1_cc_mdss_mdp_clk_src = { .name = "disp1_cc_mdss_mdp_clk_src", .parent_data = disp1_cc_parent_data_5, .num_parents = ARRAY_SIZE(disp1_cc_parent_data_5), - .ops = &clk_rcg2_shared_ops, + .ops = &clk_rcg2_shared_no_init_park_ops, }, };
drivers/clk/qcom/dispcc-x1e80100.c +1 -1
@@ -580,7 +580,7 @@ static struct clk_rcg2 disp_cc_mdss_mdp_clk_src = { .parent_data = disp_cc_parent_data_6, .num_parents = ARRAY_SIZE(disp_cc_parent_data_6), .flags = CLK_SET_RATE_PARENT, - .ops = &clk_rcg2_shared_ops, + .ops = &clk_rcg2_shared_no_init_park_ops, }, };
drivers/clk/samsung/clk-gs101.c +1 -1
@@ -3921,7 +3921,7 @@ static const unsigned long peric0_clk_regs[] __initconst = {CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI ,CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI ,CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI , -CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI , +CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI ,CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI ,CLK_CON_BUF_CLKBUF_PERIC0_IP , CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK,
drivers/cpufreq/amd-pstate.h +0 -1
@@ -76,7 +76,6 @@ struct amd_aperf_mperf {* @hw_prefcore: check whether HW supports preferred core featue. * Only when hw_prefcore and early prefcore param are true, * AMD P-State driver supports preferred core featue. -* @epp_cached: Cached CPPC energy-performance preference value * @policy: Cpufreq policy value * * The amd_cpudata is key private data for each CPU thread in AMD P-State, and
drivers/firmware/samsung/exynos-acpm.c +8 -5
@@ -526,10 +526,11 @@ static int acpm_achan_alloc_cmds(struct acpm_chan *achan)/** * acpm_free_mbox_chans() - free mailbox channels. -* @acpm: pointer to driver data. +* @data: pointer to driver data. */ -static void acpm_free_mbox_chans (struct acpm_info *acpm) +static void acpm_free_mbox_chans (void *data) { +struct acpm_info *acpm = data;int i;for (i =0 ; i < acpm->num_chans; i++)
@@ -557,6 +558,10 @@ static int acpm_channels_init(struct acpm_info *acpm)if (!acpm->chans)return -ENOMEM ; + ret =devm_add_action_or_reset (dev, acpm_free_mbox_chans, acpm); +if (ret) +return dev_err_probe (dev, ret,"Failed to add mbox free action.\n" ); + chans_shmem = acpm->sram_base +readl (&shmem->chans);for (i =0 ; i < acpm->num_chans; i++) {
@@ -578,10 +583,8 @@ static int acpm_channels_init(struct acpm_info *acpm) cl->dev = dev; achan->chan =mbox_request_channel (cl,0 ); -if (IS_ERR (achan->chan)) { -acpm_free_mbox_chans (acpm); +if (IS_ERR (achan->chan))return PTR_ERR (achan->chan); - } }return 0 ;
drivers/firmware/stratix10-rsu.c +20 -25
98 lines not on this page · raw message
drivers/firmware/stratix10-svc.c +17 -4
@@ -212,6 +212,7 @@ struct stratix10_async_chan {/** * struct stratix10_async_ctrl - Control structure for Stratix10 * asynchronous operations +* @supported: Flag indicating whether the system supports async operations * @initialized: Flag indicating whether the control structure has * been initialized * @invoke_fn: Function pointer for invoking Stratix10 service calls
@@ -228,6 +229,7 @@ struct stratix10_async_chan {*/ struct stratix10_async_ctrl { +bool supported;bool initialized; void (*invoke_fn)(struct stratix10_async_ctrl *actrl, const struct arm_smccc_1_2_regs *args,
@@ -1103,6 +1105,7 @@ EXPORT_SYMBOL_GPL(stratix10_svc_request_channel_byname);* Return: 0 on success, or a negative error code on failure: * -EINVAL if the channel is NULL or the async controller is * not initialized. +* -EOPNOTSUPP if async operations are not supported. * -EALREADY if the async channel is already allocated. * -ENOMEM if memory allocation fails. * Other negative values if ID allocation fails.
@@ -1121,6 +1124,9 @@ int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan, ctrl = chan->ctrl; actrl = &ctrl->actrl; +if (!actrl->supported) +return -EOPNOTSUPP ; +if (!actrl->initialized) {dev_err (ctrl->dev,"Async controller not initialized\n" );return -EINVAL ;
@@ -1562,6 +1568,7 @@ static inline void stratix10_smc_1_2(struct stratix10_async_ctrl *actrl,* initialized, -ENOMEM if memory allocation fails, * -EADDRINUSE if the client ID is already reserved, or other * negative error codes on failure. +* -EOPNOTSUPP if system doesn't support async operations. */ static int stratix10_svc_async_init (struct stratix10_svc_controller *controller) {
@@ -1585,10 +1592,12 @@ static int stratix10_svc_async_init(struct stratix10_svc_controller *controller) !(res.a1 > ASYNC_ATF_MINIMUM_MAJOR_VERSION || (res.a1 == ASYNC_ATF_MINIMUM_MAJOR_VERSION && res.a2 >= ASYNC_ATF_MINIMUM_MINOR_VERSION))) { -dev_err (dev, -"Intel Service Layer Driver: ATF version is not compatible for async operation\n" ); -return -EINVAL ; +dev_info (dev, +"Intel Service Layer Driver: ATF version is not compatible for async operation\n" ); + actrl->supported = false; +return -EOPNOTSUPP ; } + actrl->supported = true; actrl->invoke_fn = stratix10_smc_1_2;
@@ -1952,10 +1961,14 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev)init_completion (&controller->complete_status); ret =stratix10_svc_async_init (controller); -if (ret) { +if (ret == -EOPNOTSUPP ) { +dev_info (dev,"Intel Service Layer Driver Initialized (sync-only mode)\n" ); + }else if (ret) {dev_dbg (dev,"Intel Service Layer Driver: Error on stratix10_svc_async_init %d\n" , ret); goto err_destroy_pool; + }else { +dev_info (dev,"Intel Service Layer Driver Initialized\n" ); } fifo_size =sizeof (struct stratix10_svc_data ) *SVC_NUM_DATA_IN_FIFO ;
drivers/gpio/gpio-mvebu.c +2 -2
@@ -996,7 +996,7 @@ static int mvebu_gpio_suspend(struct platform_device *pdev, pm_message_t state)BUG (); } -if (IS_REACHABLE (CONFIG_PWM )) +if (IS_REACHABLE (CONFIG_PWM ) && mvchip->mvpwm)mvebu_pwm_suspend (mvchip);return 0 ;
@@ -1048,7 +1048,7 @@ static int mvebu_gpio_resume(struct platform_device *pdev)BUG (); } -if (IS_REACHABLE (CONFIG_PWM )) +if (IS_REACHABLE (CONFIG_PWM ) && mvchip->mvpwm)mvebu_pwm_resume (mvchip);return 0 ;
drivers/gpio/gpio-rockchip.c +3 -1
@@ -802,8 +802,10 @@ static void rockchip_gpio_remove(struct platform_device *pdev)struct rockchip_pin_bank *bank =platform_get_drvdata (pdev);irq_set_chained_handler_and_data (bank->irq,NULL ,NULL ); -if (bank->domain) +if (bank->domain) { +irq_domain_remove_generic_chips (bank->domain);irq_domain_remove (bank->domain); + }gpiochip_remove (&bank->gpio_chip); }
drivers/gpio/gpio-zynq.c +1 -0
@@ -1014,6 +1014,7 @@ static void zynq_gpio_remove(struct platform_device *pdev)gpiochip_remove (&gpio->chip);device_set_wakeup_capable (&pdev->dev,0 );pm_runtime_disable (&pdev->dev); +pm_runtime_put_noidle (&pdev->dev); }static struct platform_driver zynq_gpio_driver = {
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +3 -1
@@ -1285,6 +1285,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, {struct amdgpu_fpriv *fpriv = p->filp->driver_priv;struct amdgpu_job *leader = p->gang_leader; +struct amdgpu_vm *vm = &fpriv->vm;struct amdgpu_bo_list_entry *e;struct drm_gem_object *gobj;unsigned long index;
@@ -1330,7 +1331,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,amdgpu_hmm_range_free (e->range); e->range =NULL ; } -if (r) { + +if (r || !list_empty (&vm->invalidated)) { r = -EAGAIN ;mutex_unlock (&p->adev->notifier_lock);return r;
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +8 -4
@@ -394,7 +394,8 @@ void amdgpu_gart_map_vram_range(struct amdgpu_device *adev, uint64_t pa, uint64_t start_page, uint64_t num_pages, uint64_t flags, void *dst) { - u32 i, idx; + u32 i, j, t, idx; +u64 page_base;/* The SYSTEM flag indicates the pages aren't in VRAM. */ WARN_ON_ONCE (flags &AMDGPU_PTE_SYSTEM );
@@ -402,9 +403,12 @@ void amdgpu_gart_map_vram_range(struct amdgpu_device *adev, uint64_t pa,if (!drm_dev_enter (adev_to_drm (adev), &idx))return ; -for (i =0 ; i < num_pages; ++i) { -amdgpu_gmc_set_pte_pde (adev, dst, - start_page + i, pa +AMDGPU_GPU_PAGE_SIZE * i, flags); + page_base = pa; +for (i =0 , t =0 ; i < num_pages; i++) { +for (j =0 ; j <AMDGPU_GPU_PAGES_IN_CPU_PAGE ; j++, t++) { +amdgpu_gmc_set_pte_pde (adev, dst, start_page + t, page_base, flags); + page_base +=AMDGPU_GPU_PAGE_SIZE ; + } }drm_dev_exit (idx);
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +1 -1
@@ -1002,7 +1002,7 @@ void amdgpu_gmc_noretry_set(struct amdgpu_device *adev) gc_ver ==IP_VERSION (9 ,4 ,3 ) || gc_ver ==IP_VERSION (9 ,4 ,4 ) || gc_ver ==IP_VERSION (9 ,5 ,0 ) || - gc_ver >= IP_VERSION(10, 3, 0)); + gc_ver >= IP_VERSION(10, 1, 0));if (!amdgpu_sriov_xnack_support (adev)) gmc->noretry =1 ;
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c +5 -10
@@ -67,6 +67,7 @@ static bool amdgpu_hmm_invalidate_gfx(struct mmu_interval_notifier *mni, { struct amdgpu_bo *bo = container_of(mni, struct amdgpu_bo, notifier);struct amdgpu_device *adev =amdgpu_ttm_adev (bo->tbo.bdev); +struct amdgpu_bo *vm_root = bo->vm_bo->vm->root.bo;long r;if (!mmu_notifier_range_blockable (range))
@@ -77,8 +78,9 @@ static bool amdgpu_hmm_invalidate_gfx(struct mmu_interval_notifier *mni,mmu_interval_set_seq (mni, cur_seq);amdgpu_vm_bo_invalidate (bo, false); - r =dma_resv_wait_timeout (bo->tbo.base.resv,DMA_RESV_USAGE_BOOKKEEP , - false,MAX_SCHEDULE_TIMEOUT ); + r =dma_resv_wait_timeout (vm_root->tbo.base.resv, +DMA_RESV_USAGE_BOOKKEEP , false, +MAX_SCHEDULE_TIMEOUT );mutex_unlock (&adev->notifier_lock);if (r <=0 )DRM_ERROR ("(%ld) failed to wait for user bo\n" , r);
@@ -172,7 +174,6 @@ int amdgpu_hmm_range_get_pages(struct mmu_interval_notifier *notifier,const u64 max_bytes =SZ_2G ;struct hmm_range *hmm_range = &range->hmm_range; -unsigned long timeout;unsigned long *pfns;unsigned long end;int r;
@@ -199,15 +200,9 @@ int amdgpu_hmm_range_get_pages(struct mmu_interval_notifier *notifier,pr_debug ("hmm range: start = 0x%lx, end = 0x%lx" , hmm_range->start, hmm_range->end); - timeout = jiffies +msecs_to_jiffies (HMM_RANGE_DEFAULT_TIMEOUT ); - -retry: r =hmm_range_fault (hmm_range); -if (unlikely (r)) { -if (r == -EBUSY && !time_after (jiffies, timeout)) - goto retry; +if (unlikely (r)) goto out_free_pfns; - }if (hmm_range->end == end)break ;
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +1 -1
@@ -3297,7 +3297,7 @@ static void copy_context_work_handler(struct work_struct *work)static uint32_t *get_queue_ids (uint32_t num_queues,uint32_t *usr_queue_id_array) {if (!usr_queue_id_array) -return NULL ; +return num_queues ?ERR_PTR (-EINVAL ) :NULL ;if (num_queues >KFD_MAX_NUM_OF_QUEUES_PER_PROCESS )return ERR_PTR (-EINVAL );
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c +41 -8
71 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +5 -1
@@ -10016,7 +10016,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,continue ; bundle->surface_updates[planes_count].surface = dc_plane; -if (new_pcrtc_state->color_mgmt_changed) { +if (new_pcrtc_state->color_mgmt_changed || new_plane_state->color_mgmt_changed) { bundle->surface_updates[planes_count].gamma = &dc_plane->gamma_correction; bundle->surface_updates[planes_count].in_transfer_func = &dc_plane->in_transfer_func; bundle->surface_updates[planes_count].gamut_remap_matrix = &dc_plane->gamut_remap_matrix;
@@ -11756,6 +11756,10 @@ static bool should_reset_plane(struct drm_atomic_state *state,if (new_crtc_state->color_mgmt_changed)return true; +/* Plane color pipeline or its colorop changes. */ +if (new_plane_state->color_mgmt_changed) +return true; +/* * On zpos change, planes need to be reordered by removing and re-adding * them one by one to the dc state, in order of descending zpos.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +5 -0
@@ -1344,8 +1344,13 @@ static ssize_t dp_sdp_message_debugfs_write(struct file *f, const char __user *bif (size ==0 )return 0 ; +if (!connector->base.state || !connector->base.state->crtc) +return -ENODEV ; + acrtc_state =to_dm_crtc_state (connector->base.state->crtc->state); + write_size =min_t (size_t, size,sizeof (data)); + r =copy_from_user (data, buf, write_size); write_size -= r;
drivers/gpu/drm/amd/display/dc/basics/vector.c +2 -2
@@ -288,8 +288,8 @@ bool dal_vector_reserve(struct vector *vector, uint32_t capacity)if (capacity <= vector->capacity)return true; - new_container =krealloc (vector->container, - capacity * vector->struct_size,GFP_KERNEL ); + new_container =krealloc_array (vector->container, + capacity, vector->struct_size,GFP_KERNEL );if (new_container) { vector->container = new_container;
drivers/gpu/drm/amd/display/dc/bios/bios_parser.c +10 -5
@@ -222,6 +222,7 @@ static enum bp_result bios_parser_get_i2c_info(struct dc_bios *dcb,ATOM_COMMON_RECORD_HEADER *header;ATOM_I2C_RECORD *record;struct bios_parser *bp =BP_FROM_DCB (dcb); +int i;if (!info)return BP_RESULT_BADINPUT ;
@@ -234,7 +235,7 @@ static enum bp_result bios_parser_get_i2c_info(struct dc_bios *dcb, offset =le16_to_cpu (object->usRecordOffset) + bp->object_info_tbl_offset; -for (;;) { +for (i =0 ; i <BIOS_MAX_NUM_RECORD ; i++) { header =GET_IMAGE (ATOM_COMMON_RECORD_HEADER , offset);if (!header)
@@ -293,11 +294,12 @@ static enum bp_result bios_parser_get_device_tag_record( {ATOM_COMMON_RECORD_HEADER *header;uint32_t offset; +int i; offset =le16_to_cpu (object->usRecordOffset) + bp->object_info_tbl_offset; -for (;;) { +for (i =0 ; i <BIOS_MAX_NUM_RECORD ; i++) { header =GET_IMAGE (ATOM_COMMON_RECORD_HEADER , offset);if (!header)
@@ -948,6 +950,7 @@ static ATOM_HPD_INT_RECORD *get_hpd_record(struct bios_parser *bp, {ATOM_COMMON_RECORD_HEADER *header;uint32_t offset; +int i;if (!object) {BREAK_TO_DEBUGGER ();/* Invalid object */
@@ -957,7 +960,7 @@ static ATOM_HPD_INT_RECORD *get_hpd_record(struct bios_parser *bp, offset =le16_to_cpu (object->usRecordOffset) + bp->object_info_tbl_offset; -for (;;) { +for (i =0 ; i <BIOS_MAX_NUM_RECORD ; i++) { header =GET_IMAGE (ATOM_COMMON_RECORD_HEADER , offset);if (!header)
@@ -1652,6 +1655,7 @@ static ATOM_ENCODER_CAP_RECORD_V2 *get_encoder_cap_record( {ATOM_COMMON_RECORD_HEADER *header;uint32_t offset; +int i;if (!object) {BREAK_TO_DEBUGGER ();/* Invalid object */
@@ -1661,7 +1665,7 @@ static ATOM_ENCODER_CAP_RECORD_V2 *get_encoder_cap_record( offset =le16_to_cpu (object->usRecordOffset) + bp->object_info_tbl_offset; -for (;;) { +for (i =0 ; i <BIOS_MAX_NUM_RECORD ; i++) { header =GET_IMAGE (ATOM_COMMON_RECORD_HEADER , offset);if (!header)
@@ -2750,6 +2754,7 @@ static enum bp_result update_slot_layout_info(struct dc_bios *dcb, unsigned int record_offset) {unsigned int j; +unsigned int n;struct bios_parser *bp;ATOM_BRACKET_LAYOUT_RECORD *record;ATOM_COMMON_RECORD_HEADER *record_header;
@@ -2759,7 +2764,7 @@ static enum bp_result update_slot_layout_info(struct dc_bios *dcb, record =NULL ; record_header =NULL ; -for (;;) { +for (n =0 ; n <BIOS_MAX_NUM_RECORD ; n++) { record_header =GET_IMAGE (ATOM_COMMON_RECORD_HEADER , record_offset);if (record_header ==NULL ) {
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +54 -27
291 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.h +5 -0
@@ -37,4 +37,9 @@ void bios_set_scratch_critical_state(struct dc_bios *bios, bool state);#define GET_IMAGE (type, offset) ((type *) bios_get_image(&bp->base, offset, sizeof(type))) +/* Upper bound on the number of records in a VBIOS record chain. Prevents +* unbounded looping if the VBIOS image is malformed and lacks a terminator. +*/ +#define BIOS_MAX_NUM_RECORD 256 +#endif
drivers/gpu/drm/amd/display/dc/dc_dp_types.h +1 -1
@@ -1217,7 +1217,7 @@ 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;union dp_alpm_lttpr_cap alpm; -uint8_t aux_rd_interval[MAX_REPEATER_CNT -1 ]; +uint8_t aux_rd_interval[MAX_REPEATER_CNT ];uint8_t lttpr_ieee_oui[3 ];// Always read from closest LTTPR to host uint8_t lttpr_device_id[6 ];// Always read from closest LTTPR to host };
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +9 -1
@@ -110,7 +110,15 @@ static const struct out_csc_color_matrix global_color_matrix[] = { { COLOR_SPACE_YCBCR601_LIMITED, { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991, 0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} }, { COLOR_SPACE_YCBCR709_LIMITED, { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3, - 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} } + 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }, +{ COLOR_SPACE_2020_RGB_FULLRANGE, + { 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, +{ COLOR_SPACE_2020_RGB_LIMITEDRANGE, + { 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} }, +{ COLOR_SPACE_2020_YCBCR_LIMITED, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, + 0x15B2, 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} }, +{ COLOR_SPACE_2020_YCBCR_FULL, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, 0x15B2, + 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} } }; static bool setup_scaling_configuration(
drivers/gpu/drm/amd/display/dc/dce110/dce110_opp_csc_v.c +9 -1
@@ -88,7 +88,15 @@ static const struct out_csc_color_matrix global_color_matrix[] = { { COLOR_SPACE_YCBCR601_LIMITED, { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991, 0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} }, { COLOR_SPACE_YCBCR709_LIMITED, { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3, - 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} } + 0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }, +{ COLOR_SPACE_2020_RGB_FULLRANGE, + { 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} }, +{ COLOR_SPACE_2020_RGB_LIMITEDRANGE, + { 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} }, +{ COLOR_SPACE_2020_YCBCR_LIMITED, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, + 0x15B2, 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} }, +{ COLOR_SPACE_2020_YCBCR_FULL, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, 0x15B2, + 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} } }; enum csc_color_mode {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c +2 -1
@@ -529,7 +529,8 @@ enum mod_hdcp_status mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp) }else { status =read (hdcp,MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_SEND_RECEIVERID_LIST , hdcp->auth.msg.hdcp2.rx_id_list, - hdcp->auth.msg.hdcp2.rx_id_list_size); +MIN (hdcp->auth.msg.hdcp2.rx_id_list_size, +sizeof (hdcp->auth.msg.hdcp2.rx_id_list))); }return status; }
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +26 -16
80 lines not on this page · raw message
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +18 -14
@@ -2372,28 +2372,32 @@ static int smu_v13_0_7_enable_mgpu_fan_boost(struct smu_context *smu) }static int smu_v13_0_7_get_power_limit (struct smu_context *smu, -uint32_t *current_power_limit, -uint32_t *default_power_limit, -uint32_t *max_power_limit, -uint32_t *min_power_limit) +uint32_t *current_power_limit, +uint32_t *default_power_limit, +uint32_t *max_power_limit, +uint32_t *min_power_limit) {struct smu_table_context *table_context = &smu->smu_table;struct smu_13_0_7_powerplay_table *powerplay_table = (struct smu_13_0_7_powerplay_table *)table_context->power_play_table;PPTable_t *pptable = table_context->driver_pptable;SkuTable_t *skutable = &pptable->SkuTable; -uint32_t power_limit, od_percent_upper =0 , od_percent_lower =0 ; -uint32_t msg_limit = skutable->MsgLimits.Power[PPT_THROTTLER_PPT0 ][POWER_SOURCE_AC ]; - -if (smu_v13_0_get_current_power_limit (smu, &power_limit)) - power_limit = smu->adev->pm.ac_power ? +uint32_t pp_limit = smu->adev->pm.ac_power ? skutable->SocketPowerLimitAc[PPT_THROTTLER_PPT0 ] : skutable->SocketPowerLimitDc[PPT_THROTTLER_PPT0 ]; +uint32_t power_limit =0 , od_percent_upper =0 , od_percent_lower =0 ; +int ret; + +if (current_power_limit) { + ret =smu_v13_0_get_current_power_limit (smu, &power_limit); +if (ret) + power_limit = pp_limit; -if (current_power_limit) *current_power_limit = power_limit; + } +if (default_power_limit) - *default_power_limit = power_limit; + *default_power_limit = pp_limit;if (powerplay_table) { if (smu->od_enabled &&
@@ -2407,15 +2411,15 @@ static int smu_v13_0_7_get_power_limit(struct smu_context *smu, }dev_dbg (smu->adev->dev,"od percent upper:%d, od percent lower:%d (default power: %d)\n" , - od_percent_upper, od_percent_lower, power_limit); + od_percent_upper, od_percent_lower, pp_limit);if (max_power_limit) { - *max_power_limit = msg_limit * (100 + od_percent_upper); + *max_power_limit = pp_limit * (100 + od_percent_upper); *max_power_limit /=100 ; }if (min_power_limit) { - *min_power_limit = power_limit * (100 - od_percent_lower); + *min_power_limit = pp_limit * (100 - od_percent_lower); *min_power_limit /=100 ; }
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c +2 -1
@@ -1228,7 +1228,8 @@ static int smu_v14_0_0_set_soft_freq_limited_range(struct smu_context *smu,switch (clk_type) {case SMU_GFXCLK :case SMU_SCLK : - msg_set_min = SMU_MSG_SetHardMinGfxClk; +/* SoftMin lets PMFW throttle gfxclk; HardMin would override SoftMax. */ + msg_set_min = SMU_MSG_SetSoftMinGfxclk; msg_set_max = SMU_MSG_SetSoftMaxGfxClk;break ;case SMU_FCLK :
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c +0 -1
@@ -2150,7 +2150,6 @@ static ssize_t smu_v14_0_2_get_gpu_metrics(struct smu_context *smu, metrics->Vcn1ActivityPercentage); gpu_metrics->average_socket_power = metrics->AverageSocketPower; - gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;if (metrics->AverageGfxActivity <=SMU_14_0_2_BUSY_THRESHOLD ) gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
drivers/gpu/drm/drm_atomic.c +2 -2
@@ -829,7 +829,7 @@ static void drm_atomic_colorop_print_state(struct drm_printer *p,case DRM_COLOROP_1D_LUT :drm_printf (p,"\tsize=%d\n" , colorop->size);drm_printf (p,"\tinterpolation=%s\n" , -drm_get_colorop_lut1d_interpolation_name (colorop->lut1d_interpolation)); +drm_get_colorop_lut1d_interpolation_name (state->lut1d_interpolation));drm_printf (p,"\tdata blob id=%d\n" , state->data ? state->data->base.id :0 );break ;case DRM_COLOROP_CTM_3X4 :
@@ -841,7 +841,7 @@ static void drm_atomic_colorop_print_state(struct drm_printer *p,case DRM_COLOROP_3D_LUT :drm_printf (p,"\tsize=%d\n" , colorop->size);drm_printf (p,"\tinterpolation=%s\n" , -drm_get_colorop_lut3d_interpolation_name (colorop->lut3d_interpolation)); +drm_get_colorop_lut3d_interpolation_name (state->lut3d_interpolation));drm_printf (p,"\tdata blob id=%d\n" , state->data ? state->data->base.id :0 );break ;default :
drivers/gpu/drm/drm_atomic_uapi.c +53 -15
147 lines not on this page · raw message
drivers/gpu/drm/drm_colorop.c +14 -2
@@ -321,7 +321,6 @@ int drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_color colorop->lut1d_interpolation_property = prop;drm_object_attach_property (&colorop->base, prop, interpolation); - colorop->lut1d_interpolation = interpolation;/* data */ ret =drm_colorop_create_data_prop (dev, colorop);
@@ -417,7 +416,6 @@ int drm_plane_colorop_3dlut_init(struct drm_device *dev, struct drm_colorop *col colorop->lut3d_interpolation_property = prop;drm_object_attach_property (&colorop->base, prop, interpolation); - colorop->lut3d_interpolation = interpolation;/* data */ ret =drm_colorop_create_data_prop (dev, colorop);
@@ -496,6 +494,20 @@ static void __drm_colorop_state_reset(struct drm_colorop_state *colorop_state, &val); colorop_state->curve_1d_type = val; } + +if (colorop->lut1d_interpolation_property) { +if (!drm_object_property_get_default_value (&colorop->base, + colorop->lut1d_interpolation_property, + &val)) + colorop_state->lut1d_interpolation = val; + } + +if (colorop->lut3d_interpolation_property) { +if (!drm_object_property_get_default_value (&colorop->base, + colorop->lut3d_interpolation_property, + &val)) + colorop_state->lut3d_interpolation = val; + } }/**
drivers/gpu/drm/drm_gem.c +35 -40
113 lines not on this page · raw message
drivers/gpu/drm/drm_ioctl.c +2 -1
@@ -660,7 +660,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = {DRM_IOCTL_DEF (DRM_IOCTL_GEM_CLOSE , drm_gem_close_ioctl,DRM_RENDER_ALLOW ),DRM_IOCTL_DEF (DRM_IOCTL_GEM_FLINK , drm_gem_flink_ioctl,DRM_AUTH ),DRM_IOCTL_DEF (DRM_IOCTL_GEM_OPEN , drm_gem_open_ioctl,DRM_AUTH ), -DRM_IOCTL_DEF (DRM_IOCTL_GEM_CHANGE_HANDLE , drm_gem_change_handle_ioctl,DRM_RENDER_ALLOW ), +/* see drm_gem.c:drm_gem_change_handle_ioctl for why this is invalid */ +DRM_IOCTL_DEF (DRM_IOCTL_GEM_CHANGE_HANDLE , drm_invalid_op,DRM_RENDER_ALLOW ), DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETRESOURCES, drm_mode_getresources, 0),
drivers/gpu/drm/hyperv/hyperv_drm_drv.c +5 -0
@@ -150,6 +150,10 @@ static int hyperv_vmbus_probe(struct hv_device *hdev, goto err_free_mmio; } +/* If DRM panic path is stubbed out VMBus code must do the unload */ +if (IS_ENABLED (CONFIG_DRM_PANIC )) +vmbus_set_skip_unload (true); +drm_client_setup (dev,NULL );return 0 ;
@@ -169,6 +173,7 @@ static void hyperv_vmbus_remove(struct hv_device *hdev)struct drm_device *dev =hv_get_drvdata (hdev);struct hyperv_drm_device *hv =to_hv (dev); +vmbus_set_skip_unload (false);drm_dev_unplug (dev);drm_atomic_helper_shutdown (dev);vmbus_close (hdev->channel);
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c +8 -7
@@ -212,15 +212,16 @@ static void hyperv_plane_panic_flush(struct drm_plane *plane)struct hyperv_drm_device *hv =to_hv (plane->dev);struct drm_rect rect; -if (!plane->state || !plane->state->fb) -return ; +if (plane->state && plane->state->fb) { + rect.x1 =0 ; + rect.y1 =0 ; + rect.x2 = plane->state->fb->width; + rect.y2 = plane->state->fb->height; - rect.x1 =0 ; - rect.y1 =0 ; - rect.x2 = plane->state->fb->width; - rect.y2 = plane->state->fb->height; +hyperv_update_dirt (hv->hdev, &rect); + } -hyperv_update_dirt (hv->hdev, &rect); +vmbus_initiate_unload (true); }static const struct drm_plane_helper_funcs hyperv_plane_helper_funcs = {
drivers/gpu/drm/i915/display/intel_dp.c +9 -2
@@ -4533,10 +4533,17 @@ intel_edp_set_sink_rates(struct intel_dp *intel_dp)if (intel_dp->edp_dpcd[0 ] >=DP_EDP_14 ) {__le16 sink_rates[DP_MAX_SUPPORTED_RATES ]; +int ret;int i; -drm_dp_dpcd_read (&intel_dp->aux,DP_SUPPORTED_LINK_RATES , - sink_rates,sizeof (sink_rates)); + ret =drm_dp_dpcd_read_data (&intel_dp->aux, +DP_SUPPORTED_LINK_RATES , + sink_rates,sizeof (sink_rates)); +if (ret <0 ) { +drm_dbg_kms (display->drm, +"Unable to read eDP supported link rates, using default rates\n" ); +memset (sink_rates,0 ,sizeof (sink_rates)); + }for (i =0 ; i <ARRAY_SIZE (sink_rates); i++) {int rate;
drivers/gpu/drm/i915/display/intel_plane.c +27 -0
@@ -144,6 +144,15 @@ intel_plane_duplicate_state(struct drm_plane *plane)if (intel_state->hw.fb)drm_framebuffer_get (intel_state->hw.fb); +if (intel_state->hw.degamma_lut) +drm_property_blob_get (intel_state->hw.degamma_lut); +if (intel_state->hw.gamma_lut) +drm_property_blob_get (intel_state->hw.gamma_lut); +if (intel_state->hw.ctm) +drm_property_blob_get (intel_state->hw.ctm); +if (intel_state->hw.lut_3d) +drm_property_blob_get (intel_state->hw.lut_3d); +return &intel_state->uapi; }
@@ -167,6 +176,16 @@ intel_plane_destroy_state(struct drm_plane *plane,__drm_atomic_helper_plane_destroy_state (&plane_state->uapi);if (plane_state->hw.fb)drm_framebuffer_put (plane_state->hw.fb); + +if (plane_state->hw.degamma_lut) +drm_property_blob_put (plane_state->hw.degamma_lut); +if (plane_state->hw.gamma_lut) +drm_property_blob_put (plane_state->hw.gamma_lut); +if (plane_state->hw.ctm) +drm_property_blob_put (plane_state->hw.ctm); +if (plane_state->hw.lut_3d) +drm_property_blob_put (plane_state->hw.lut_3d); +kfree (plane_state); }
@@ -317,6 +336,14 @@ static void intel_plane_clear_hw_state(struct intel_plane_state *plane_state) {if (plane_state->hw.fb)drm_framebuffer_put (plane_state->hw.fb); +if (plane_state->hw.degamma_lut) +drm_property_blob_put (plane_state->hw.degamma_lut); +if (plane_state->hw.gamma_lut) +drm_property_blob_put (plane_state->hw.gamma_lut); +if (plane_state->hw.ctm) +drm_property_blob_put (plane_state->hw.ctm); +if (plane_state->hw.lut_3d) +drm_property_blob_put (plane_state->hw.lut_3d);memset (&plane_state->hw,0 ,sizeof (plane_state->hw)); }
drivers/gpu/drm/i915/gem/i915_gem_phys.c +15 -4
@@ -18,6 +18,17 @@#include "i915_gem_tiling.h" #include "i915_scatterlist.h" +/* Abuse scatterlist to store pointer instead of struct page. */ +static inline void __set_phys_vaddr (struct scatterlist *sg,void *vaddr) +{ +sg_assign_page (sg, (struct page *)vaddr); +} + +static inline void *__get_phys_vaddr (struct scatterlist *sg) +{ +return (void *)sg_page (sg); +} +static int i915_gem_object_get_pages_phys (struct drm_i915_gem_object *obj) {struct address_space *mapping = obj->base.filp->f_mapping;
@@ -58,7 +69,7 @@ static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj) sg->offset =0 ; sg->length = obj->base.size; -sg_assign_page (sg, (struct page *)vaddr); +__set_phys_vaddr (sg, vaddr);sg_dma_address (sg) = dma;sg_dma_len (sg) = obj->base.size;
@@ -99,7 +110,7 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj, struct sg_table *pages) {dma_addr_t dma =sg_dma_address (pages->sgl); -void *vaddr =sg_page (pages->sgl); +void *vaddr =__get_phys_vaddr (pages->sgl);__i915_gem_object_release_shmem (obj, pages, false);
@@ -139,7 +150,7 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,int i915_gem_object_pwrite_phys (struct drm_i915_gem_object *obj,const struct drm_i915_gem_pwrite *args) { -void *vaddr =sg_page (obj->mm.pages->sgl) + args->offset; +void *vaddr =__get_phys_vaddr (obj->mm.pages->sgl) + args->offset;char __user *user_data =u64_to_user_ptr (args->data_ptr);struct drm_i915_private *i915 =to_i915 (obj->base.dev);int err;
@@ -170,7 +181,7 @@ int i915_gem_object_pwrite_phys(struct drm_i915_gem_object *obj,int i915_gem_object_pread_phys (struct drm_i915_gem_object *obj,const struct drm_i915_gem_pread *args) { -void *vaddr =sg_page (obj->mm.pages->sgl) + args->offset; +void *vaddr =__get_phys_vaddr (obj->mm.pages->sgl) + args->offset;char __user *user_data =u64_to_user_ptr (args->data_ptr);int err;
drivers/gpu/drm/imx/dcss/dcss-scaler.c +3 -0
@@ -166,6 +166,7 @@ static int exp_approx_q(int x)* dcss_scaler_gaussian_filter() - Generate gaussian prototype filter. * @fc_q: fixed-point cutoff frequency normalized to range [0, 1] * @use_5_taps: indicates whether to use 5 taps or 7 taps +* @phase0_identity: whether to override phase 0 coefficients with identity filter * @coef: output filter coefficients */ static void dcss_scaler_gaussian_filter(int fc_q, bool use_5_taps,
@@ -262,7 +263,9 @@ static void dcss_scaler_nearest_neighbor_filter(bool use_5_taps,* @src_length: length of input * @dst_length: length of output * @use_5_taps: 0 for 7 taps per phase, 1 for 5 taps +* @phase0_identity: whether to override phase 0 coefficients with identity filter * @coef: output coefficients +* @nn_interpolation: whether to use nearest neighbor instead of gaussian filter */ static void dcss_scaler_filter_design(int src_length, int dst_length, bool use_5_taps, bool phase0_identity,
drivers/gpu/drm/v3d/v3d_gem.c +8 -0
@@ -213,6 +213,14 @@ v3d_clean_caches(struct v3d_dev *v3d)trace_v3d_cache_clean_begin (dev); +/* GFXH-1897: Ensure pending flushes complete before writing L2TCACTL */ +if (v3d->ver <V3D_GEN_71 ) { +if (wait_for (!(V3D_CORE_READ (core,V3D_CTL_L2TCACTL ) & +V3D_L2TCACTL_L2TFLS ),100 )) { +drm_err (dev,"Timeout waiting for L2T clean\n" ); + } + } +V3D_CORE_WRITE (core,V3D_CTL_L2TCACTL ,V3D_L2TCACTL_TMUWCF );if (wait_for (!(V3D_CORE_READ (core,V3D_CTL_L2TCACTL ) &V3D_L2TCACTL_TMUWCF ),100 )) {
drivers/gpu/drm/v3d/v3d_perfmon.c +19 -5
@@ -313,8 +313,11 @@ static int v3d_perfmon_idr_del(int id, void *elem, void *data)if (perfmon == v3d->active_perfmon)v3d_perfmon_stop (v3d, perfmon, false); -/* If the global perfmon is being destroyed, set it to NULL */ -cmpxchg (&v3d->global_perfmon, perfmon,NULL ); +/* If the global perfmon is being destroyed, clean it and release +* the reference stashed in v3d_perfmon_set_global_ioctl(). +*/ +if (cmpxchg (&v3d->global_perfmon, perfmon,NULL ) == perfmon) +v3d_perfmon_put (perfmon);v3d_perfmon_put (perfmon);
@@ -480,16 +483,27 @@ int v3d_perfmon_set_global_ioctl(struct drm_device *dev, void *data,/* If the request is to clear the global performance monitor */ if (req->flags &DRM_V3D_PERFMON_CLEAR_GLOBAL ) { -if (!v3d->global_perfmon) +struct v3d_perfmon *old; + +/* DRM_V3D_PERFMON_CLEAR_GLOBAL doesn't check if +* v3d->global_perfmon == perfmon. Therefore, there +* is no need to keep perfmon's reference. +*/ +v3d_perfmon_put (perfmon); + + old =xchg (&v3d->global_perfmon,NULL ); +if (!old)return -EINVAL ; -xchg (&v3d->global_perfmon,NULL ); +v3d_perfmon_put (old);return 0 ; } -if (cmpxchg (&v3d->global_perfmon,NULL , perfmon)) +if (cmpxchg (&v3d->global_perfmon,NULL , perfmon)) { +v3d_perfmon_put (perfmon);return -EBUSY ; + }return 0 ; }
drivers/gpu/drm/v3d/v3d_sched.c +14 -3
@@ -378,6 +378,16 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)return NULL ; } +/* The HW interprets a workgroup size of 0 as 65536; however, the +* user-space driver exposes a maximum of 65535. Therefore, a 0 in +* any dimension means that we have no workgroups and the compute +* shader should not be dispatched. +*/ +if (!V3D_GET_FIELD (job->args.cfg[0 ],V3D_CSD_QUEUED_CFG0_NUM_WGS_X ) || + !V3D_GET_FIELD (job->args.cfg[1 ],V3D_CSD_QUEUED_CFG1_NUM_WGS_Y ) || + !V3D_GET_FIELD (job->args.cfg[2 ],V3D_CSD_QUEUED_CFG2_NUM_WGS_Z )) +return NULL ; + v3d->queue[V3D_CSD ].active_job = &job->base;v3d_invalidate_caches (v3d);
@@ -428,13 +438,13 @@ v3d_rewrite_csd_job_wg_counts_from_indirect(struct v3d_cpu_job *job) wg_counts = (uint32_t *)(bo->vaddr + indirect_csd->offset); -if (wg_counts[0 ] ==0 || wg_counts[1 ] ==0 || wg_counts[2 ] ==0 ) -return ; - args->cfg[0 ] = wg_counts[0 ] <<V3D_CSD_CFG012_WG_COUNT_SHIFT ; args->cfg[1 ] = wg_counts[1 ] <<V3D_CSD_CFG012_WG_COUNT_SHIFT ; args->cfg[2 ] = wg_counts[2 ] <<V3D_CSD_CFG012_WG_COUNT_SHIFT ; +if (wg_counts[0 ] ==0 || wg_counts[1 ] ==0 || wg_counts[2 ] ==0 ) + goto unmap_bo; + num_batches =DIV_ROUND_UP (indirect_csd->wg_size,16 ) * (wg_counts[0 ] * wg_counts[1 ] * wg_counts[2 ]);
@@ -454,6 +464,7 @@ v3d_rewrite_csd_job_wg_counts_from_indirect(struct v3d_cpu_job *job) } } +unmap_bo:v3d_put_bo_vaddr (indirect);v3d_put_bo_vaddr (bo); }
drivers/gpu/drm/vc4/vc4_validate_shaders.c +7 -6
@@ -290,15 +290,16 @@ static bool require_uniform_address_uniform(struct vc4_validated_shader_info *va {uint32_t o = validated_shader->num_uniform_addr_offsets;uint32_t num_uniforms = validated_shader->uniforms_size /4 ; +u32 *offsets; - validated_shader->uniform_addr_offsets = -krealloc (validated_shader->uniform_addr_offsets, - (o +1 ) * -sizeof (*validated_shader->uniform_addr_offsets), -GFP_KERNEL ); -if (!validated_shader->uniform_addr_offsets) + offsets =krealloc_array (validated_shader->uniform_addr_offsets, + o +1 , +sizeof (*validated_shader->uniform_addr_offsets), +GFP_KERNEL ); +if (!offsets)return false; + validated_shader->uniform_addr_offsets = offsets; validated_shader->uniform_addr_offsets[o] = num_uniforms; validated_shader->num_uniform_addr_offsets++;
drivers/gpu/drm/virtio/virtgpu_drv.c +4 -1
@@ -124,7 +124,10 @@ static void virtio_gpu_remove(struct virtio_device *vdev)struct drm_device *dev = vdev->priv;drm_dev_unplug (dev); -drm_atomic_helper_shutdown (dev); + +if (drm_core_check_feature (dev,DRIVER_ATOMIC )) +drm_atomic_helper_shutdown (dev); +virtio_gpu_deinit (dev);drm_dev_put (dev); }
drivers/gpu/drm/virtio/virtgpu_submit.c +3 -1
@@ -65,8 +65,10 @@ static int virtio_gpu_dma_fence_wait(struct virtio_gpu_submit *submit,dma_fence_unwrap_for_each (f, &itr, fence) { err =virtio_gpu_do_fence_wait (submit, f); -if (err) +if (err) { +dma_fence_put (itr.chain);return err; + } }return 0 ;
drivers/gpu/drm/xe/display/xe_display.c +9 -2
@@ -119,6 +119,15 @@ int xe_display_init_early(struct xe_device *xe)intel_display_driver_early_probe (display); +intel_display_device_info_runtime_init (display); + +/* Display may have been disabled at runtime init */ +if (!intel_display_device_present (display)) { + xe->info.probe_display = false; +unset_display_features (xe); +return 0 ; + } +/* Early display init.. */ intel_opregion_setup (display);
@@ -132,8 +141,6 @@ int xe_display_init_early(struct xe_device *xe)intel_bw_init_hw (display); -intel_display_device_info_runtime_init (display); - err =intel_display_driver_probe_noirq (display);if (err) goto err_opregion;
drivers/gpu/drm/xe/xe_exec_queue.h +0 -17
@@ -161,21 +161,4 @@ int xe_exec_queue_contexts_hwsp_rebase(struct xe_exec_queue *q, void *scratch);struct xe_lrc *xe_exec_queue_lrc (struct xe_exec_queue *q); -/** -* xe_exec_queue_idle_skip_suspend() - Can exec queue skip suspend -* @q: The exec_queue -* -* If an exec queue is not parallel and is idle, the suspend steps can be -* skipped in the submission backend immediatley signaling the suspend fence. -* Parallel queues cannot skip this step due to limitations in the submission -* backend. -* -* Return: True if exec queue is idle and can skip suspend steps, False -* otherwise -*/ -static inline bool xe_exec_queue_idle_skip_suspend (struct xe_exec_queue *q) -{ -return !xe_exec_queue_is_parallel (q) &&xe_exec_queue_is_idle (q); -} -#endif
drivers/gpu/drm/xe/xe_guc_submit.c +43 -68
198 lines not on this page · raw message
drivers/gpu/drm/xe/xe_hw_engine_group.c +2 -8
@@ -207,21 +207,15 @@ static int xe_hw_engine_group_suspend_faulting_lr_jobs(struct xe_hw_engine_grouplockdep_assert_held_write (&group->mode_sem);list_for_each_entry (q, &group->exec_queue_list, hw_engine_group_link) { -bool idle_skip_suspend;if (!xe_vm_in_fault_mode (q->vm))continue ; - idle_skip_suspend =xe_exec_queue_idle_skip_suspend (q); -if (!idle_skip_suspend && has_deps) +if (has_deps)return -EAGAIN ;xe_gt_stats_incr (q->gt,XE_GT_STATS_ID_HW_ENGINE_GROUP_SUSPEND_LR_QUEUE_COUNT ,1 ); -if (idle_skip_suspend) -xe_gt_stats_incr (q->gt, -XE_GT_STATS_ID_HW_ENGINE_GROUP_SKIP_LR_QUEUE_COUNT ,1 ); - - need_resume |= !idle_skip_suspend; + need_resume = true; q->ops->suspend (q); gt = q->gt; }
drivers/gpu/drm/xe/xe_range_fence.c +2 -0
@@ -77,6 +77,8 @@ int xe_range_fence_insert(struct xe_range_fence_tree *tree, }else if (err ==0 ) {xe_range_fence_tree_insert (rfence, &tree->root);return 0 ; + }else { +dma_fence_put (fence); } free:
drivers/gpu/drm/xe/xe_uc_fw.c +0 -1
@@ -115,7 +115,6 @@ struct fw_blobs_by_type {#define XE_GT_TYPE_ANY XE_GT_TYPE_UNINITIALIZED#define XE_GUC_FIRMWARE_DEFS (fw_def, mmp_ver, major_ver) \ - fw_def(NOVALAKE_S, GT_TYPE_ANY, mmp_ver(xe, guc, nvl, 70, 55, 4)) \ fw_def(PANTHERLAKE, GT_TYPE_ANY, major_ver(xe, guc, ptl, 70, 54, 0)) \ fw_def(BATTLEMAGE, GT_TYPE_ANY, major_ver(xe, guc, bmg, 70, 54, 0)) \ fw_def(LUNARLAKE, GT_TYPE_ANY, major_ver(xe, guc, lnl, 70, 53, 0)) \
drivers/hv/channel_mgmt.c +1 -0
@@ -944,6 +944,7 @@ void vmbus_initiate_unload(bool crash)else vmbus_wait_for_unload (); } +EXPORT_SYMBOL_GPL (vmbus_initiate_unload);static void vmbus_setup_channel_state (struct vmbus_channel *channel,struct vmbus_channel_offer_channel *offer)
drivers/hv/hv_kvp.c +13 -12
@@ -93,7 +93,7 @@ static void kvp_send_key(struct work_struct *dummy);static void kvp_respond_to_host (struct hv_kvp_msg *msg,int error);static void kvp_timeout_func (struct work_struct *dummy);static void kvp_host_handshake_func (struct work_struct *dummy); -static void kvp_register (int ); +static int kvp_register (int ); static DECLARE_DELAYED_WORK(kvp_timeout_work, kvp_timeout_func); static DECLARE_DELAYED_WORK(kvp_host_handshake_work, kvp_host_handshake_func);
@@ -127,24 +127,26 @@ static void kvp_register_done(void)hv_poll_channel (kvp_transaction.recv_channel, kvp_poll_wrapper); } -static void +static int kvp_register (int reg_value) {struct hv_kvp_msg *kvp_msg;char *version; +int ret; kvp_msg =kzalloc_obj (*kvp_msg); +if (!kvp_msg) +return -ENOMEM ; -if (kvp_msg) { - version = kvp_msg->body.kvp_register.version; - kvp_msg->kvp_hdr.operation = reg_value; -strcpy (version,HV_DRV_VERSION ); + version = kvp_msg->body.kvp_register.version; + kvp_msg->kvp_hdr.operation = reg_value; +strcpy (version,HV_DRV_VERSION ); -hvutil_transport_send (hvt, kvp_msg,sizeof (*kvp_msg), - kvp_register_done); -kfree (kvp_msg); - } + ret =hvutil_transport_send (hvt, kvp_msg,sizeof (*kvp_msg), + kvp_register_done); +kfree (kvp_msg); +return ret; }static void kvp_timeout_func (struct work_struct *dummy)
@@ -186,9 +188,8 @@ static int kvp_handle_handshake(struct hv_kvp_msg *msg)*/ pr_debug ("KVP: userspace daemon ver. %d connected\n" , msg->kvp_hdr.operation); -kvp_register (dm_reg_value); -return 0 ; +return kvp_register (dm_reg_value); }
drivers/hv/hyperv_vmbus.h +0 -1
@@ -440,7 +440,6 @@ void hv_vss_deinit(void);int hv_vss_pre_suspend (void );int hv_vss_pre_resume (void );void hv_vss_onchannelcallback (void *context); -void vmbus_initiate_unload (bool crash);static inline void hv_poll_channel (struct vmbus_channel *channel,void (*cb)(void *))
drivers/hv/vmbus_drv.c +44 -10
104 lines not on this page · raw message
drivers/i2c/busses/i2c-imx-lpi2c.c +32 -21
61 lines not on this page · raw message
drivers/i2c/busses/i2c-tegra.c +30 -23
53 lines not on this page · raw message
drivers/infiniband/core/iter.c new file +43 -0
43 lines not on this page · raw message
drivers/infiniband/core/uverbs_std_types_dmah.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/debugfs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_res.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_res.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/erdma/erdma_verbs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_alloc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_mr.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/ionic/ionic_ibdev.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/mthca/mthca_provider.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/vmw_pvrdma/pvrdma.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/isert/ib_isert.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/misc/fastrpc.c +68 -39
107 lines not on this page · raw message
drivers/mmc/host/renesas_sdhi_internal_dmac.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/mmc/host/sdhci-of-dwcmshc.c +22 -22
44 lines not on this page · raw message
drivers/net/ethernet/airoha/airoha_eth.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amazon/ena/ena_com.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c +10 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +59 -28
87 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.h +10 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +211 -130
341 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h deleted +0 -128
128 lines not on this page · raw message
drivers/net/ethernet/freescale/fec_main.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_dpll.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_ptp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mv643xx_eth.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +41 -26
67 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +18 -18
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mediatek/mtk_eth_soc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/cq.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +3 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/vport.c +54 -18
72 lines not on this page · raw message
drivers/net/ethernet/microchip/lan743x_main.c +32 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan743x_main.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/rtase/rtase_main.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/txgbe/txgbe_aml.c +11 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/drv.c +32 -24
56 lines not on this page · raw message
drivers/pmdomain/ti/ti_sci_pm_domains.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/slimbus/qcom-ngd-ctrl.c +77 -45
122 lines not on this page · raw message
drivers/soc/qcom/ice.c +47 -10
57 lines not on this page · raw message
drivers/staging/rtl8723bs/core/rtw_mlme.c +18 -6
Lines of this file are not shown. View the raw message.
drivers/tee/optee/supp.c +74 -33
107 lines not on this page · raw message
include/linux/bnxt/ulp.h new file +143 -0
143 lines not on this page · raw message
include/net/netfilter/nf_conntrack_helper.h +1 -0
Lines of this file are not shown. View the raw message.
include/rdma/ib_umem.h +12 -32
44 lines not on this page · raw message
include/rdma/ib_verbs.h +0 -48
48 lines not on this page · raw message
include/rdma/iter.h new file +88 -0
88 lines not on this page · raw message
lib/debugobjects.c +46 -8
54 lines not on this page · raw message
mm/huge_memory.c +36 -13
49 lines not on this page · raw message
mm/hugetlb.c +39 -30
69 lines not on this page · raw message
net/bluetooth/bnep/core.c +36 -14
50 lines not on this page · raw message
net/bluetooth/iso.c +46 -17
63 lines not on this page · raw message
net/bluetooth/l2cap_core.c +46 -0
46 lines not on this page · raw message
net/bluetooth/rfcomm/core.c +49 -18
67 lines not on this page · raw message
net/l2tp/l2tp_ppp.c +50 -32
82 lines not on this page · raw message
net/mptcp/options.c +32 -41
73 lines not on this page · raw message
net/netfilter/ipset/ip_set_bitmap_ipmac.c +3 -2
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipmac.c +5 -4
Lines of this file are not shown. View the raw message.
net/netfilter/nfnetlink_queue.c +56 -8
64 lines not on this page · raw message
net/sched/act_pedit.c +41 -36
77 lines not on this page · raw message
net/vmw_vsock/virtio_transport_common.c +10 -1
Lines of this file are not shown. View the raw message.
net/wireless/nl80211.c +64 -9
73 lines not on this page · raw message
tools/testing/selftests/ftrace/test.d/dynevent/eprobes_syntax_errors.tc +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/kselftest_harness.h +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +4 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/riscv/cfi/cfitests.c +6 -0
Lines of this file are not shown. View the raw message.
tools/verification/rv/src/in_kernel.c +36 -29
65 lines not on this page · raw message
tools/verification/rvgen/rvgen/ltl2ba.py +5 -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.