Linux 6.18.34
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.18.34 kernel.
All users of the 6.18 kernel series must upgrade.
The updated 6.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.18.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/pm/intel_pstate.rst | 11 Documentation/crypto/krb5.rst | 17 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml | 38 + Documentation/gpu/drm-kms-helpers.rst | 12 Makefile | 2 arch/alpha/include/asm/Kbuild | 1 arch/arc/include/asm/Kbuild | 1 arch/arm/boot/dts/renesas/r7s72100-genmai.dts | 3 arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts | 2 arch/arm/include/asm/Kbuild | 1 arch/arm/mach-versatile/integrator_cp.c | 13 arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 9 arch/arm64/include/asm/insn.h | 2 arch/arm64/include/asm/page.h | 2 arch/arm64/include/asm/ring_buffer.h | 10 arch/arm64/kvm/arm.c | 4 arch/arm64/kvm/vgic/vgic-its.c | 4 arch/arm64/mm/fault.c | 11 arch/csky/include/asm/Kbuild | 1 arch/hexagon/include/asm/Kbuild | 1 arch/loongarch/include/asm/Kbuild | 1 arch/loongarch/kernel/kprobes.c | 14 arch/loongarch/mm/init.c | 4 arch/m68k/include/asm/Kbuild | 1 arch/microblaze/include/asm/Kbuild | 1 arch/mips/include/asm/Kbuild | 1 arch/nios2/include/asm/Kbuild | 1 arch/openrisc/include/asm/Kbuild | 1 arch/parisc/include/asm/Kbuild | 1 arch/powerpc/Kconfig.debug | 3 arch/powerpc/include/asm/Kbuild | 1 arch/powerpc/kernel/time.c | 6 arch/powerpc/platforms/82xx/km82xx.c | 4 arch/riscv/errata/mips/errata.c | 2 arch/riscv/include/asm/Kbuild | 1 arch/riscv/kvm/vcpu_pmu.c | 12 arch/riscv/mm/init.c | 25 arch/s390/include/asm/Kbuild | 1 arch/sh/include/asm/Kbuild | 1 arch/sparc/include/asm/Kbuild | 1 arch/um/include/asm/Kbuild | 1 arch/x86/include/asm/Kbuild | 1 arch/x86/kernel/cpu/mce/core.c | 33 - arch/x86/kvm/svm/avic.c | 12 arch/x86/xen/setup.c | 2 arch/xtensa/include/asm/Kbuild | 1 block/bio-integrity.c | 19 block/blk-cgroup.c | 2 block/blk-mq.c | 19 crypto/krb5/krb5_api.c | 54 +- drivers/accel/qaic/qaic_data.c | 23 drivers/ata/libata-core.c | 9 drivers/ata/libata-eh.c | 8 drivers/ata/libata-pmp.c | 18 drivers/ata/libata-scsi.c | 100 ++- drivers/ata/sata_sil24.c | 6 drivers/base/memory.c | 8 drivers/block/rbd.c | 20 drivers/block/ublk_drv.c | 3 drivers/bluetooth/btintel_pcie.c | 20 drivers/bluetooth/btintel_pcie.h | 3 drivers/bluetooth/btmtk.c | 2 drivers/bluetooth/hci_ldisc.c | 48 + drivers/cxl/core/mbox.c | 11 drivers/firmware/arm_ffa/bus.c | 4 drivers/firmware/arm_ffa/driver.c | 131 +++- drivers/firmware/efi/efi.c | 28 - drivers/fwctl/pds/main.c | 3 drivers/gpio/Kconfig | 1 drivers/gpio/gpio-aggregator.c | 47 + drivers/gpio/gpiolib-cdev.c | 13 drivers/gpu/drm/Makefile | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 7 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 9 drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c | 9 drivers/gpu/drm/amd/display/dc/core/dc.c | 6 drivers/gpu/drm/bridge/chipone-icn6211.c | 4 drivers/gpu/drm/bridge/ite-it66121.c | 5 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 16 drivers/gpu/drm/drm_atomic_helper.c | 2 drivers/gpu/drm/drm_vblank.c | 172 ++++++ drivers/gpu/drm/drm_vblank_helper.c | 176 ++++++ drivers/gpu/drm/i915/display/intel_dp.c | 2 drivers/gpu/drm/mediatek/mtk_cec.c | 2 drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 2 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 6 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 3 drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 24 drivers/gpu/drm/msm/dsi/dsi_host.c | 1 drivers/gpu/drm/msm/msm_gem_shrinker.c | 40 - drivers/gpu/drm/msm/msm_iommu.c | 5 drivers/gpu/drm/v3d/v3d_sched.c | 16 drivers/gpu/drm/v3d/v3d_submit.c | 22 drivers/gpu/drm/virtio/virtgpu_drv.h | 1 drivers/gpu/drm/virtio/virtgpu_gem.c | 17 drivers/gpu/drm/virtio/virtgpu_plane.c | 10 drivers/gpu/drm/vkms/vkms_crtc.c | 83 --- drivers/gpu/drm/vkms/vkms_drv.h | 2 drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 12 drivers/gpu/drm/xe/xe_gsc.c | 5 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.c | 6 drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.h | 2 drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 24 drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 6 drivers/gpu/drm/xe/xe_oa.c | 6 drivers/hid/hid-quirks.c | 2 drivers/hid/hid-uclogic-core.c | 4 drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c | 4 drivers/hwmon/lm90.c | 26 drivers/hwmon/pmbus/adm1266.c | 32 - drivers/infiniband/hw/mana/main.c | 1 drivers/infiniband/sw/siw/siw_qp_rx.c | 15 drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 drivers/iommu/amd/debugfs.c | 43 - drivers/irqchip/irq-ath79-cpu.c | 7 drivers/mfd/bcm2835-pm.c | 1 drivers/net/dsa/mt7530.c | 47 + drivers/net/ethernet/airoha/airoha_eth.c | 10 drivers/net/ethernet/amd/pds_core/debugfs.c | 7 drivers/net/ethernet/amd/pds_core/dev.c | 11 drivers/net/ethernet/amd/pds_core/devlink.c | 6 drivers/net/ethernet/atheros/ag71xx.c | 3 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 9 drivers/net/ethernet/cirrus/cs89x0.c | 2 drivers/net/ethernet/cortina/gemini.c | 21 drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 4 drivers/net/ethernet/intel/ice/ice_main.c | 10 drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 33 - drivers/net/ethernet/intel/ice/ice_txrx.c | 7 drivers/net/ethernet/intel/ice/virt/queues.c | 2 drivers/net/ethernet/intel/idpf/idpf_ptp.c | 4 drivers/net/ethernet/intel/igc/igc_tsn.c | 9 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 1 drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 7 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/rep.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c | 6 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 7 drivers/net/ethernet/mellanox/mlx5/core/esw/ipsec_fs.c | 3 drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 8 drivers/net/ethernet/microsoft/mana/hw_channel.c | 29 - drivers/net/ethernet/qlogic/qed/qed_cxt.c | 2 drivers/net/ethernet/ti/icssm/icssm_prueth.c | 1 drivers/net/ifb.c | 11 drivers/net/ovpn/io.c | 12 drivers/net/ovpn/main.c | 12 drivers/net/ovpn/netlink.c | 8 drivers/net/ovpn/peer.c | 23 drivers/net/ovpn/peer.h | 1 drivers/net/ovpn/stats.h | 16 drivers/net/ovpn/tcp.c | 19 drivers/net/ovpn/udp.c | 2 drivers/net/phy/dp83tc811.c | 1 drivers/net/phy/phy-c45.c | 8 drivers/net/phy/phy_device.c | 6 drivers/net/pse-pd/pse_core.c | 2 drivers/net/tap.c | 2 drivers/net/wireless/ath/ath10k/wmi.c | 15 drivers/net/wireless/ath/ath11k/dp_rx.c | 3 drivers/net/wireless/ath/ath11k/hal.c | 14 drivers/net/wireless/ath/ath11k/hal_rx.c | 5 drivers/net/wireless/ath/ath11k/testmode.c | 1 drivers/net/wireless/ath/ath11k/wmi.c | 19 drivers/net/wireless/intel/iwlwifi/mld/link.c | 13 drivers/net/wireless/intel/iwlwifi/mld/tx.c | 15 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 27 - drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 14 drivers/net/wireless/microchip/wilc1000/wlan.c | 2 drivers/net/wwan/iosm/iosm_ipc_imem.c | 2 drivers/nvme/host/ioctl.c | 5 drivers/nvme/host/pci.c | 6 drivers/phy/marvell/phy-mvebu-a3700-utmi.c | 5 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 1 drivers/phy/samsung/phy-exynos5-usbdrd.c | 7 drivers/phy/tegra/xusb-tegra186.c | 33 - drivers/phy/tegra/xusb.h | 1 drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 6 drivers/pinctrl/qcom/pinctrl-ipq4019.c | 2 drivers/pinctrl/qcom/pinctrl-msm.h | 5 drivers/pinctrl/qcom/pinctrl-qcs615.c | 6 drivers/pinctrl/qcom/pinctrl-sm8150.c | 8 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 23 drivers/platform/surface/surface_aggregator_registry.c | 2 drivers/platform/x86/adv_swbutton.c | 6 drivers/platform/x86/hp/hp_accel.c | 3 drivers/platform/x86/intel/hid.c | 6 drivers/platform/x86/intel/vbtn.c | 6 drivers/regulator/tps65219-regulator.c | 135 +++-- drivers/scsi/isci/host.c | 3 drivers/scsi/sd.c | 3 drivers/spi/spi-amd.c | 2 drivers/spi/spi-dw-dma.c | 2 drivers/spi/spi-ep93xx.c | 2 drivers/spi/spi-mtk-snfi.c | 2 drivers/spi/spi-qup.c | 3 drivers/spi/spi-sprd.c | 3 drivers/spi/spi-ti-qspi.c | 1 drivers/virt/coco/sev-guest/sev-guest.c | 10 fs/afs/dir.c | 11 fs/btrfs/backref.c | 11 fs/btrfs/block-group.c | 3 fs/btrfs/ctree.c | 17 fs/btrfs/dir-item.c | 3 fs/btrfs/extent-tree.c | 55 -- fs/btrfs/free-space-tree.c | 29 - fs/btrfs/fs.h | 4 fs/btrfs/inode-item.c | 3 fs/btrfs/inode.c | 7 fs/btrfs/ioctl.c | 60 -- fs/btrfs/print-tree.c | 14 fs/btrfs/qgroup.c | 270 +++++----- fs/btrfs/relocation.c | 4 fs/btrfs/root-tree.c | 4 fs/btrfs/send.c | 10 fs/btrfs/super.c | 10 fs/btrfs/tree-checker.c | 21 fs/btrfs/tree-log.c | 42 - fs/btrfs/volumes.c | 3 fs/btrfs/xattr.c | 3 fs/erofs/zdata.c | 15 fs/fuse/dir.c | 20 fs/jfs/namei.c | 2 fs/mnt_idmapping.c | 2 fs/netfs/buffered_read.c | 64 +- fs/netfs/buffered_write.c | 172 ++++-- fs/netfs/direct_read.c | 42 - fs/netfs/internal.h | 3 fs/netfs/iterator.c | 26 fs/netfs/misc.c | 8 fs/netfs/read_collect.c | 13 fs/netfs/read_retry.c | 11 fs/netfs/read_single.c | 23 fs/netfs/write_issue.c | 46 + fs/nfsd/nfs4state.c | 7 fs/nsfs.c | 2 fs/ntfs3/file.c | 12 fs/orangefs/namei.c | 2 fs/smb/client/cifs_spnego.c | 16 fs/smb/client/cifsfs.c | 2 fs/smb/client/netlink.c | 6 fs/smb/client/smb2ops.c | 4 fs/smb/client/smb2transport.c | 2 fs/smb/server/oplock.c | 6 fs/smb/server/smb2pdu.c | 15 fs/smb/server/smbacl.c | 78 ++ fs/smb/server/vfs_cache.c | 120 +++- fs/sysfs/group.c | 2 fs/zonefs/super.c | 6 include/asm-generic/kprobes.h | 2 include/asm-generic/ring_buffer.h | 13 include/crypto/krb5.h | 9 include/drm/drm_modeset_helper_vtables.h | 12 include/drm/drm_vblank.h | 32 + include/drm/drm_vblank_helper.h | 56 ++ include/linux/cgroup.h | 1 include/linux/cleanup.h | 5 include/linux/fprobe.h | 5 include/linux/fwnode.h | 1 include/linux/gfp_types.h | 10 include/linux/highmem.h | 7 include/linux/libata.h | 7 include/linux/netfilter/x_tables.h | 3 include/linux/netfilter_arp/arp_tables.h | 1 include/linux/netfilter_ipv4/ip_tables.h | 1 include/linux/netfilter_ipv6/ip6_tables.h | 1 include/linux/netfs.h | 2 include/linux/soc/airoha/airoha_offload.h | 6 include/net/bluetooth/bluetooth.h | 1 include/net/net_shaper.h | 1 include/net/netfilter/nf_queue.h | 1 include/net/tcp.h | 7 include/trace/events/btrfs.h | 4 include/trace/events/netfs.h | 8 include/trace/events/rxrpc.h | 1 io_uring/net.c | 26 io_uring/nop.c | 4 io_uring/waitid.c | 1 kernel/cgroup/cpuset.c | 8 kernel/cgroup/rstat.c | 37 - kernel/dma/debug.c | 9 kernel/dma/mapping.c | 4 kernel/irq_work.c | 7 kernel/sched/core.c | 159 ++--- kernel/sched/ext.c | 44 - kernel/sched/sched.h | 33 - kernel/sched/syscalls.c | 95 +-- kernel/trace/bpf_trace.c | 3 kernel/trace/fprobe.c | 200 +++++-- kernel/trace/ring_buffer.c | 30 - kernel/trace/trace_events_hist.c | 6 kernel/trace/tracing_map.c | 17 lib/kunit/Kconfig | 5 lib/tests/test_kprobes.c | 29 - mm/damon/sysfs-schemes.c | 1 mm/memcontrol.c | 6 mm/memory.c | 24 mm/memory_hotplug.c | 2 mm/page_alloc.c | 8 net/batman-adv/bat_iv_ogm.c | 82 ++- net/batman-adv/bat_v_ogm.c | 59 +- net/batman-adv/bridge_loop_avoidance.c | 109 ++-- net/batman-adv/distributed-arp-table.c | 3 net/batman-adv/fragmentation.c | 58 +- net/batman-adv/gateway_client.c | 4 net/batman-adv/mesh-interface.c | 1 net/batman-adv/originator.c | 4 net/batman-adv/tp_meter.c | 117 ++-- net/batman-adv/translation-table.c | 55 +- net/batman-adv/tvlv.c | 28 - net/batman-adv/tvlv.h | 2 net/batman-adv/types.h | 59 +- net/bluetooth/af_bluetooth.c | 97 ++- net/bluetooth/bnep/core.c | 2 net/bluetooth/iso.c | 14 net/bluetooth/l2cap_core.c | 2 net/bluetooth/l2cap_sock.c | 51 + net/bluetooth/mgmt.c | 6 net/bluetooth/rfcomm/sock.c | 9 net/bluetooth/sco.c | 9 net/bridge/br_mrp_netlink.c | 4 net/bridge/br_multicast.c | 27 - net/bridge/netfilter/ebtable_broute.c | 14 net/bridge/netfilter/ebtable_filter.c | 14 net/bridge/netfilter/ebtable_nat.c | 12 net/bridge/netfilter/ebtables.c | 71 +- net/core/dev.c | 21 net/core/gro.c | 3 net/core/skmsg.c | 9 net/ethtool/bitset.c | 8 net/ethtool/phy.c | 36 + net/ipv4/inet_connection_sock.c | 2 net/ipv4/netfilter/arp_tables.c | 18 net/ipv4/netfilter/arptable_filter.c | 27 - net/ipv4/netfilter/ip_tables.c | 18 net/ipv4/netfilter/iptable_filter.c | 27 - net/ipv4/netfilter/iptable_mangle.c | 29 - net/ipv4/netfilter/iptable_nat.c | 6 net/ipv4/netfilter/iptable_raw.c | 26 net/ipv4/netfilter/iptable_security.c | 27 - net/ipv4/raw.c | 2 net/ipv4/tcp.c | 3 net/ipv4/tcp_ao.c | 3 net/ipv4/tcp_input.c | 15 net/ipv4/tcp_ipv4.c | 3 net/ipv6/exthdrs.c | 21 net/ipv6/netfilter/ip6_tables.c | 18 net/ipv6/netfilter/ip6t_hbh.c | 4 net/ipv6/netfilter/ip6table_filter.c | 26 net/ipv6/netfilter/ip6table_mangle.c | 27 - net/ipv6/netfilter/ip6table_nat.c | 6 net/ipv6/netfilter/ip6table_raw.c | 24 net/ipv6/netfilter/ip6table_security.c | 27 - net/ipv6/tcp_ipv6.c | 3 net/l2tp/l2tp_core.c | 2 net/mac80211/mlme.c | 5 net/mac80211/parse.c | 71 +- net/mptcp/pm.c | 56 +- net/netfilter/ipset/ip_set_hash_ipmark.c | 6 net/netfilter/ipset/ip_set_hash_ipport.c | 5 net/netfilter/ipset/ip_set_hash_ipportip.c | 5 net/netfilter/ipset/ip_set_hash_ipportnet.c | 5 net/netfilter/nf_queue.c | 4 net/netfilter/nfnetlink_queue.c | 2 net/netfilter/nft_inner.c | 3 net/netfilter/x_tables.c | 100 +++ net/phonet/pep.c | 19 net/rxrpc/rxgk.c | 15 net/shaper/shaper.c | 220 +++++--- net/smc/af_smc.c | 3 net/smc/smc_tracepoint.h | 2 net/tls/tls_sw.c | 46 + net/unix/af_unix.c | 11 net/vmw_vsock/virtio_transport_common.c | 103 +-- net/vmw_vsock/vmci_transport.c | 2 net/wireless/scan.c | 3 scripts/gcc-plugins/gcc-common.h | 4 scripts/package/PKGBUILD | 2 security/keys/keyring.c | 1 security/lsm_syscalls.c | 9 sound/core/pcm_lib.c | 3 sound/core/seq/seq_ump_client.c | 22 sound/hda/codecs/realtek/alc269.c | 12 sound/hda/codecs/side-codecs/cs35l41_hda.c | 4 sound/hda/codecs/side-codecs/cs35l56_hda.c | 1 sound/pci/asihpi/hpicmn.c | 6 sound/soc/amd/acp/acp-sdw-legacy-mach.c | 2 sound/soc/codecs/cs35l56-sdw.c | 3 sound/soc/codecs/fs210x.c | 2 sound/soc/sdw_utils/soc_sdw_utils.c | 4 sound/soc/soc-utils.c | 1 sound/soc/sof/amd/acp.c | 2 sound/usb/misc/ua101.c | 5 sound/usb/mixer_scarlett2.c | 9 tools/testing/selftests/mm/hmm-tests.c | 50 + tools/testing/selftests/mm/run_vmtests.sh | 2 tools/testing/selftests/net/lib/xdp_native.bpf.c | 55 +- tools/testing/selftests/ublk/kublk.c | 11 397 files changed, 4706 insertions(+), 2334 deletions(-)
Abdun Nihaal (1):
net: wwan: iosm: fix potential memory leaks in ipc_imem_init()
Abdurrahman Hussain (10):
hwmon: (pmbus/adm1266) widen blackbox-info buffer to I2C_SMBUS_BLOCK_MAX
hwmon: (pmbus/adm1266) seed timestamp from the real-time clock
hwmon: (pmbus/adm1266) reject implausible blackbox record_count
hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer
hwmon: (pmbus/adm1266) bounce blackbox records through a protocol-sized buffer
hwmon: (pmbus/adm1266) cap PDIO scan in get_multiple at ADM1266_PDIO_NR
hwmon: (pmbus/adm1266) don't clobber GPIO bits before PDIO read in get_multiple
hwmon: (pmbus/adm1266) register the gpio_chip after pmbus_do_probe()
hwmon: (pmbus/adm1266) register the nvmem device after pmbus_do_probe()
hwmon: (pmbus/adm1266) reject short block-read responses in the GPIO accessors
Aditya Garg (1):
net: mana: validate rx_req_idx to prevent out-of-bounds array access
Alan Liu (1):
drm/amdgpu/vpe: Force collaborate sync after TRAP
Alexander A. Klimov (2):
ASoC: codecs: fs210x: fix possible buffer overflow io_uring/nop: pass all errors to userspace
Alexander Sverdlin (1):
regulator: tps65219: fix irq_data.rdev not being assigned
Alexandru Hossu (1):
wifi: mac80211: bounds-check link_id in ieee80211_ml_epcs
Alistair Popple (1):
mm/memory: fix spurious warning when unmapping device-private/exclusive pages
Ally Heev (1):
powerpc: 82xx: fix uninitialized pointers with free attribute
Andreas Haarmann-Thiemann (1):
net: ethernet: cortina: Drop half-assembled SKB
Ankit Nautiyal (1):
drm/i915/dp: Fix readback for target_rr in Adaptive Sync SDP
Antonio Quartulli (1):
ovpn: fix race between deleting interface and adding new peer
Ard Biesheuvel (1):
efi: Allocate runtime workqueue before ACPI init
Asim Viladi Oglu Manizada (1):
smb: client: reject userspace cifs.spnego descriptions
Bart Van Assche (1):
ice: fix locking in ice_dcb_rebuild()
Bartosz Golaszewski (6):
device property: set fwnode->secondary to NULL in fwnode_init()
gpio: cdev: check if uAPI v2 config attributes are correctly zeroed
gpio: aggregator: fix a potential use-after-free
gpio: aggregator: stop using dev-sync-probe
gpio: aggregator: remove the software node when deactivating the aggregator
gpio: aggregator: lock device when calling device_is_bound()
Biju Das (1):
pinctrl: renesas: rzg2l: Fix incorrect PUPD register offset for high pins during suspend/resume
Boris Burkov (4):
btrfs: check squota parent usage on membership change
btrfs: relax squota parent qgroup deletion rule
btrfs: check for subvolume before deleting squota qgroup
btrfs: fix squota accounting during enable generation
Borislav Petkov (AMD) (1):
x86/mce: Restore MCA polling interval halving
Carlos López (1):
virt: sev-guest: Explicitly leak pages in unknown state
Casey Chen (1):
block: recompute nr_integrity_segments in blk_insert_cloned_request
ChenXiaoSong (1):
smb/server: promote S_DEL_ON_CLS to S_DEL_PENDING when close
Chenguang Zhao (1):
ethtool: fix ethnl_bitmap32_not_zero() bit interval semantics
Chia-Lin Kao (AceLan) (1):
nvme-pci: fix use-after-free in nvme_free_host_mem()
Christian Marangi (1):
net: airoha: Fix NPU RX DMA descriptor bits
Chuck Lever (2):
NFSD: Fix infinite loop in layout state revocation
tls: Preserve sk_err across recvmsg() when data has been copied
Cole Leavitt (1):
wifi: iwlwifi: mld: fix TSO segmentation explosion when AMSDU is disabled
Cunlong Li (1):
cgroup: rstat: relax NMI guard after switch to try_cmpxchg
Cássio Gabriel (3):
ALSA: ua101: Reject too-short USB descriptors
ALSA: scarlett2: Allow flash writes ending at segment boundary
ASoC: amd: acp-sdw-legacy: check CPU DAI name before logging
DaeMyung Kang (1):
ksmbd: close durable scavenger races against m_fp_list lookups
Dan Carpenter (1):
HID: intel-thc-hid: Intel-quickspi: Fix some error codes
Daniel Golle (2):
net: dsa: mt7530: fix FDB entries not aging out with short timeout
net: dsa: mt7530: preserve VLAN tags on trapped link-local frames
Daniel J Blueman (1):
drm/msm: Fix shrinker deadlock
David Carlier (6):
Bluetooth: ISO: drop ISO_END frames received without prior ISO_START
net: ethtool: phy: avoid NULL deref when PHY driver is unbound
block: don't overwrite bip_vcnt in bio_integrity_copy_user()
ovpn: tcp - use cached peer pointer in ovpn_tcp_close()
ovpn: respect peer refcount in CMD_NEW_PEER error path
tracing: Avoid NULL return from hist_field_name() on truncation
David Gow (2):
kunit: config: Enable KUNIT_DEBUGFS by default
kunit: config: KUNIT_DEBUGFS should depend on DEBUG_FS
David Hildenbrand (Arm) (2):
mm: fix __vm_normal_page() to handle missing support for pmd_special()/pud_special() mm/page_alloc: fix initialization of tags of the huge zero folio with init_on_free
David Howells (17):
netfs: Fix cancellation of a DIO and single read subrequests
netfs: Fix netfs_read_to_pagecache() to pause on subreq failure
netfs: Fix overrun check in netfs_extract_user_iter()
netfs: Fix netfs_invalidate_folio() to clear dirty bit if all changes gone
netfs: Defer the emission of trace_netfs_folio()
netfs: Fix streaming write being overwritten
netfs: Fix potential deadlock in write-through mode
netfs: Fix read-gaps to remove netfs_folio from filled folio
netfs: Fix write streaming disablement if fd open O_RDWR
netfs: Fix early put of sink folio in netfs_read_gaps()
netfs: Fix leak of request in netfs_write_begin() error handling
netfs: Fix potential UAF in netfs_unlock_abandoned_read_pages()
netfs: Fix partial invalidation of streaming-write folio
netfs: Fix folio->private handling in netfs_perform_write()
netfs: Fix netfs_read_folio() to wait on writeback
netfs, afs: Fix write skipping in dir/link writepages crypto/krb5, rxrpc: Fix lack of pre-decrypt/pre-verify length checks
David Sterba (1):
btrfs: remaining BTRFS_PATH_AUTO_FREE conversions
Davidlohr Bueso (1):
cxl/mbox: validate payload size before accessing contents in cxl_payload_from_user_allowed()
Dawei Feng (2):
qed: fix double free in qed_cxt_tables_alloc()
octeontx2-pf: fix double free in rvu_rep_rsrc_init()
Deepanshu Kartikey (1):
drm/virtio: use uninterruptible resv lock for plane updates
Dmitry Baryshkov (4):
drm/msm/dsi: don't dump registers past the mapped region drm/msm/dpu: don't mix devm and drmm functions drm/msm/adreno: fix userspace-triggered crash on a2xx-a4xx drm/msm/snapshot: fix dumping of the unaligned regions
Dragos Tatulea (1):
net: napi: Avoid gro timer misfiring at end of busypoll
Eder Zulian (1):
iommu/amd: Remove latent out-of-bounds access in IOMMU debugfs
Emil Tantilov (1):
idpf: fix read_dev_clk_lock spinlock init in idpf_ptp_init()
Eric Dumazet (1):
tcp: fix stale per-CPU tcp_tw_isn leak enabling ISN prediction
Eric Naim (1):
ALSA: hda/realtek: Use ALC287_FIXUP_TXNW2781_I2C for ASUS Strix Gxx5
Erni Sri Satya Vennela (1):
net: mana: Fix TOCTOU double-fetch of hwc_msg_id from DMA buffer
Ethan Nelson-Moore (1):
net: ethernet: cs89x0: remove stale CONFIG_MACH_MX31ADS reference
Felix Gu (1):
spi: mtk-snfi: Fix resource leak in mtk_snand_read_page_cache()
Ferry Meng (1):
ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow
Filipe Manana (3):
btrfs: tracepoints: fix sleep while in atomic context in btrfs_sync_file()
btrfs: add macros to facilitate printing of keys
btrfs: use the key format macros when printing keys
Florian Westphal (8):
netfilter: x_tables: unregister the templates first
netfilter: x_tables: add and use xt_unregister_table_pre_exit
netfilter: x_tables: add and use xtables_unregister_table_exit
netfilter: ebtables: move to two-stage removal scheme
netfilter: ebtables: close dangling table module init race
netfilter: x_tables: close dangling table module init race
netfilter: bridge: eb_tables: close module init race
netfilter: nft_inner: release local_lock before re-enabling softirqs
Gabor Juhos (1):
phy: marvell: mvebu-a3700-utmi: fix incorrect USB2_PHY_CTRL register access
Gao Xiang (1):
erofs: fix managed cache race for unaligned extents
Greg Kroah-Hartman (2):
sysfs: don't remove existing directory on update failure Linux 6.18.34
Grzegorz Nitka (3):
ice: restore PTP Rx timestamp config after ethtool set-channels
ice: ptp: serialize E825 PHY timer start with PTP lock
ice: ptp: use primary NAC semaphore on E825
Guanghui Feng (1):
iommu/amd: Fix illegal cap/mmio access in IOMMU debugfs
Guangshuo Li (1):
RDMA/rtrs: Fix use-after-free in path file creation cleanup
Guenter Roeck (3):
ARM: integrator: Fix early initialization
hwmon: (lm90) Stop work before releasing hwmon device
hwmon: (lm90) Add lock protection to lm90_alert
Guo Ren (Alibaba DAMO Academy) (1):
riscv: mm: Fixup no5lvl failure when vaddr is invalid
Guopeng Zhang (1):
cgroup/cpuset: Reset DL migration state on can_attach() failure
Gustavo Sousa (1):
drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status()
Haoze Xie (1):
netfilter: nf_queue: hold bridge skb->dev while queued
Harry Wentland (3):
drm/amd/display: Fix integer overflow in bios_get_image()
drm/amd/display: Validate GPIO pin LUT table size before iterating drm/amd/display: Validate payload length and link_index in dc_process_dmub_aux_transfer_async
Heechan Kang (2):
io_uring/waitid: clear waitid info before copying it to userspace
fwctl: pds: Validate RPC input size before parsing
Henrique Carvalho (1):
smb: client: protect tc_count increment in smb2_find_smb_sess_tcon_unlocked()
Hongling Zeng (1):
fs: Fix return in jfs_mkdir and orangefs_mkdir
Huacai Chen (1):
LoongArch: Remove unused code to avoid build warning
Ido Schimmel (1):
bridge: mcast: Fix a possible use-after-free when removing a bridge port
Ilya Dryomov (1):
rbd: eliminate a race in lock_dwork draining on unmap
Jacob Keller (1):
ice: fix locking around wait_event_interruptible_locked_irq
Jakub Kicinski (11):
net: shaper: flip the polarity of the valid flag
net: shaper: fix trivial ordering issue in net_shaper_commit()
net: shaper: reject duplicate leaves in GROUP request
net: shaper: set ret to -ENOMEM when genlmsg_new() fails in group_doit
net: shaper: fix undersized reply skb allocation in GROUP command
net: shaper: enforce singleton NETDEV scope with id 0
net: shaper: reject QUEUE scope handle with missing id
net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring
net: tls: prevent chain-after-chain in plain text SG
net: shaper: annotate the data races
net: shaper: rework the VALID marking (again)
Jann Horn (2):
Bluetooth: bnep: Fix UAF read of dev->name
af_unix: Fix UAF read of tail->len in unix_stream_data_wait()Jens Axboe (1):
io_uring/net: punt IORING_OP_BIND async if it needs file create
Jeremy Erazo (1):
smb: client: use data_len for SMB2 READ encrypted folioq copy
Jeremy Laratro (1):
ksmbd: fix null pointer dereference in compare_guid_key()
Jeroen Massar (1):
net/mlx5: Do not restore destination-less TC rules
Jiajia Liu (1):
Bluetooth: btmtk: fix urb->setup_packet leak in error paths
Jianpeng Chang (2):
kprobes: skip non-symbol addresses in kprobe_add_ksym_blacklist()
dma-mapping: move dma_map_resource() sanity check into debug code
Jiayuan Chen (1):
irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT
Jiexun Wang (1):
Bluetooth: serialize accept_q access
Johan Hovold (4):
spi: qup: fix error pointer deref after DMA setup failure
spi: ep93xx: fix error pointer deref after DMA setup failure
spi: sprd: fix error pointer deref after DMA setup failure
spi: ti-qspi: fix use-after-free after DMA setup failure
Johannes Berg (2):
wifi: iwlwifi: mvm: fix driver-set TX rates on old devices
wifi: mac80211: fix MLE defragmentation
Johannes Thumshirn (1):
zonefs: handle integer overflow in zonefs_fname_to_fno
John Walker (1):
wifi: cfg80211: advance loop vars in cfg80211_merge_profile()
Jonas Jelonek (1):
net: pse-pd: fix sign on -ENOENT check in of_load_pse_pis()
Jose Ignacio Tornos Martinez (1):
ice: fix VF queue configuration with low MTU values
Josef Bacik (1):
btrfs: don't search back for dir inode item in INO_LOOKUP_USER
Juergen Gross (1):
x86/xen: Fix xen_e820_swap_entry_with_ram()
Julian Braha (1):
powerpc: fix dead default for GUEST_STATE_BUFFER_TEST
Julien Chauveau (1):
drm/bridge: it66121: acquire reset GPIO in probe
Junyi Liu (2):
ksmbd: validate SID in parent security descriptor during ACL inheritance
ksmbd: fix durable reconnect error path file lifetime
Junyoung Jang (1):
fs/statmount: fix slab out-of-bounds write in statmount_mnt_idmap
Juri Lelli (1):
sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting
Justin Iurman (2):
ipv6: ioam: refresh hdr pointer before ioam6_event()
ipv6: ioam: add NULL check for idev in ipv6_hop_ioam()
Kang Yang (1):
wifi: ath10k: skip WMI and beacon transmission when device is wedged
Kees Cook (1):
gcc-plugins: Always define CONST_CAST_GIMPLE and CONST_CAST_TREE
Keith Busch (1):
nvme: fix bio leak on mapping failure
Kiran K (1):
Bluetooth: btintel_pcie: Fix incorrect MAC access programming
Kohei Enju (2):
igc: fix potential skb leak in igc_fpe_xmit_smd_frame()
igc: set tx buffer type for SMD frames
Konstantin Komarov (1):
fs/ntfs3: handle attr_set_size() errors when truncating files
Krishnamoorthi M (1):
spi: amd: Set correct bus number in ACPI probe path
Kuniyuki Iwashima (2):
tcp: Fix imbalanced icsk_accept_queue count.
tcp: Fix out-of-bounds access for twsk in tcp_ao_established_key().
Kyle Farnung (1):
wifi: ath11k: clear shared SRNG pointer state on restart
Lad Prabhakar (1):
pinctrl: renesas: rzg2l: Fix SMT register cache handling
Li Xiasong (1):
mptcp: pm: fix ADD_ADDR timer infinite retry on option space insufficient
Linus Torvalds (1):
security/keys: fix missed RCU read section on lookup
Linus Walleij (2):
net: ethernet: cortina: Make RX SKB per-port
net: ethernet: cortina: Carry over frag counter
Lorenzo Bianconi (1):
net: airoha: Disable GDM2 forwarding before configuring GDM2 loopback
Louis-Alexis Eyraud (2):
drm/mediatek: mtk_cec: Fix non-static global variable drm/mediatek: mtk_hdmi_ddc: Fix non-static global variable
Luis Henriques (1):
fuse: fix uninit-value in fuse_dentry_revalidate()
Luiz Capitulino (1):
selftests/mm: run_vmtests.sh: fix destructive tests invocation
Lukas Bulwahn (1):
HID: quirks: really enable the intended work around for appledisplay
Luxiao Xu (1):
batman-adv: fix tp_meter counter underflow during shutdown
Mac Chiang (2):
ASoC: sdw_utils: Add quirk to ignore RT712 CODEC_MIC
ASoC: sdw_utils: Add quirk to ignore RT721 CODEC_MIC
Marcin Szycik (2):
ice: fix setting promisc mode while adding VID filter
ice: fix setting RSS VSI hash for E830
Marek Vasut (2):
ARM: dts: renesas: genmai: Drop superfluous cells
ARM: dts: renesas: rskrza1: Drop superfluous cells
Mario Limonciello (1):
ASoC: SOF: amd: Fix error code handling in psp_send_cmd()
Martin Kaiser (1):
test_kprobes: clear kprobes between test runs
Masami Hiramatsu (Google) (6):
tracing: fprobe: Remove unused local variable
tracing/fprobe: Avoid kcalloc() in rcu_read_lock section tracing/fprobe: Check the same type fprobe on table as the unregistered one
ring-buffer: Flush and stop persistent ring buffer on panic
tracing: Do not call map->ops->elt_free() if elt_alloc() fails
fprobe: Fix unregister_fprobe() to wait for RCU grace period
Matt Fleming (1):
net/mlx5e: Fix use-after-free in mlx5e_tx_reporter_timeout_recover
Matthew Leach (1):
wifi: ath11k: fix peer resolution on rx path when peer_id=0
Maulik Shah (2):
pinctrl: qcom: Fix GPIO to PDC wake irq map for qcs615
pinctrl: qcom: Fix wakeirq map by removing disconnected irqs for sm8150
Maíra Canal (2):
drm/v3d: Fix use-after-free of CPU job query arrays on error path drm/v3d: Release indirect CSD GEM reference on CPU job free
Menglong Dong (1):
tracing: fprobe: use ftrace if CONFIG_DYNAMIC_FTRACE_WITH_ARGS
Michael Bommarito (12):
smb: client: require net admin for CIFS SWN netlink
Bluetooth: L2CAP: ecred_reconfigure: send packed pdu, not stack pointer
Bluetooth: MGMT: validate Add Extended Advertising Data length
net: ifb: report ethtool stats over num_tx_queues
l2tp: use list_del_rcu in l2tp_session_unhash
ipv4: raw: reject IP_HDRINCL packets with ihl < 5
ixgbevf: fix use-after-free in VEPA multicast source pruning
wifi: mac80211: consume only present negotiated TTLM maps
KVM: arm64: vgic-its: Reject restored DTE with out-of-range num_eventid_bits
KVM: arm64: vgic: Free private_irqs when init fails after allocation
scsi: isci: Fix use-after-free in device removal path
RDMA/siw: Reject MPA FPDU length underflow before signed receive math
Michael Neuling (1):
riscv: errata: Fix bitwise vs logical AND in MIPS errata patching
Michal Wajdeczko (1):
drm/xe/vf: Fix signature of print functions
Mike Christie (1):
scsi: sd: Fix return code handling in sd_spinup_disk()
Mikko Perttunen (1):
drm/msm: Fix iommu_map_sgtable() return value check and avoid WARN
Ming Lei (2):
ublk: reject max_sectors smaller than PAGE_SECTORS in parameter validation
selftests: ublk: cap nthreads to kernel's actual nr_hw_queues
Mingyu Wang (1):
Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths
Minh Nguyen (1):
vsock/vmci: fix UAF when peer resets connection during handshake
Miri Korenblit (1):
wifi: iwlwifi: mld: don't dereference a pointer before NULL checking it
Mohanram Meenakshisundaram (1):
drm/xe/pf: Fix CFI failure in debugfs access
Mohsin Bashir (1):
net: shaper: Reject reparenting of existing nodes
Muchun Song (2):
drivers/base/memory: fix memory block reference leak in poison accounting mm/memory_hotplug: fix memory block reference leak on remove
Myeonghun Pak (1):
net: lan966x: avoid unregistering netdev on register failure
Nan Li (1):
netfilter: ipset: stop hash:* range iteration at end
Nathan Chancellor (1):
drm/msm: Restore second parameter name in purge() and evict()
Nerijus Bendžiūnas (1):
net: phy: skip EEE advertisement write when autoneg is disabled
Nicolai Buchwitz (3):
net: bcmgenet: keep RBUF EEE/PM disabled
net: phy: honor eee_disabled_modes in phy_support_eee()
net: phy: honor eee_disabled_modes in phy_advertise_eee_all()
Nicolas Escande (2):
wifi: ath11k: fix error path leaks in some WMI WOW calls
wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm()
Nikhil P. Rao (3):
pds_core: fix error handling in pdsc_devcmd_wait
pds_core: fix debugfs_lookup dentry leak and error handling
pds_core: ensure null-termination for firmware version strings
Niklas Cassel (4):
ata: libata-scsi: improve readability of ata_scsi_qc_issue()
ata: libata-scsi: do not use the deferred QC feature for ATA_DEFER_PORT
ata: libata-scsi: do not use the deferred QC feature on PMPs with CBS
ata: libata-scsi: do not needlessly defer commands when using PMP with FBS
Nimrod Oren (1):
selftests: net: Fix checksums in xdp_native
Nitin Rawat (1):
phy: qcom-qmp-ufs: Fix kaanapali PHY PLL lock failure after SM8650 G4 fix
Oliver White (1):
platform/surface: aggregator_registry: omit battery & AC nodes on Surface Laptop 7
Osama Abdelkader (4):
riscv: kvm: return SBI_ERR_FAILURE for pmu_snapshot_set_shmem() when OOM
riscv: kvm: return SBI_ERR_FAILURE for pmu_event_info() when OOM drm/bridge: chipone-icn6211: use devm_drm_bridge_add in i2c probe drm/bridge: megachips: remove bridge when irq request fails
Peter Zijlstra (1):
sched: Employ sched_change guards
Petr Machata (1):
net: bridge: Flush multicast groups when snooping is disabled
Prathamesh Deshpande (1):
net/mlx5e: Fix eswitch mode block underflow on IPsec acquire SA
Qing Ming (1):
cgroup/rstat: validate cpu before css_rstat_cpu() access
Quan Sun (1):
net: ethtool: fix NULL pointer dereference in phy_reply_size
Rafael J. Wysocki (4):
platform/x86: adv_swbutton: Check ACPI_HANDLE() against NULL platform/x86: hp_accel: Check ACPI_COMPANION() against NULL platform/x86: intel-hid: Check ACPI_HANDLE() against NULL platform/x86: intel-vbtn: Check ACPI_HANDLE() against NULL
Ralf Lici (1):
ovpn: disable BHs when updating device stats
Ratheesh Kannoth (1):
octeontx2-af: npc: Fix allmulticast skip logic for LBK and SDP VFs
Ricardo Neri (1):
Documentation: intel_pstate: Fix description of asymmetric packing with SMT
Richard Fitzgerald (1):
ASoC: cs35l56: Fix flushing of IRQ work in cs35l56_sdw_remove()
Robertus Diawan Chris (2):
ALSA: scarlett2: Add missing error check when initialise Autogain Status
ASoC: soc-utils: Add missing va_end in snd_soc_ret()
Rosen Penev (2):
irqchip/ath79-cpu: Remove unused function
net: ag71xx: check error for platform_get_irq
Ruide Cao (1):
batman-adv: fix fragment reassembly length accounting
Ruijie Li (1):
batman-adv: clear current gateway during teardown
Sabrina Dubroca (1):
net: gro: don't merge zcopy skbs
Safa Karakuş (1):
Bluetooth: fix UAF in l2cap_sock_cleanup_listen() vs l2cap_conn_del()
Sam Daly (1):
octeontx2-af: CGX: add bounds check to cgx_speed_mbps index
Samuele Mariotti (1):
sched_ext: Fix missing warning in scx_set_task_state() default case
Sasha Levin (2):
Revert "ice: fix double-free of tx_buf skb" Revert "ice: Remove jumbo_remove step from TX path"
Sayali Patil (1):
powerpc/time: Remove redundant preempt_disable|enable() calls from arch_irq_work_raise()
SeongJae Park (1):
mm/damon/sysfs-schemes: call missing mem_cgroup_iter_break()
Sheroz Juraev (1):
wifi: iwlwifi: mld: stop TX during firmware restart
Shiraz Saleem (1):
RDMA/mana_ib: Report max_msg_sz in mana_ib_query_port
Shitalkumar Gandhi (2):
net: ti: icssm-prueth: fix eth_ports_node leak in probe
wifi: wilc1000: fix dma_buffer leak on bus acquire failure
Shuhao Fu (2):
ALSA: hda: cs35l56: Put ACPI device after setting companion
ALSA: hda: cs35l41: Put ACPI device on missing physical node
Shuicheng Lin (2):
drm/xe/gsc: Fix double-free of managed BO in error path drm/xe/oa: Fix exec_queue leak on width check in stream open
Stanimir Varbanov (3):
dt-bindings: soc: bcm: Add bcm2712 compatible
arm64: dts: broadcom: bcm2712: Add watchdog DT node
mfd: bcm2835-pm: Add support for BCM2712
Stefano Garzarella (2):
vsock/virtio: reset connection on receiving queue overflow vsock/virtio: fix zerocopy completion for multi-skb sends
Stephen Smalley (1):
lsm: hold cred_guard_mutex for lsm_set_self_attr()
Steven Rostedt (1):
ring-buffer: Fix reporting of missed events in iterator
Sudeep Holla (10):
firmware: arm_ffa: Check for NULL FF-A ID table while driver registration
firmware: arm_ffa: Skip free_pages on RX buffer alloc failure
firmware: arm_ffa: Fix per-vcpu self notifications handling in workqueue
firmware: arm_ffa: Unregister bus notifier on teardown for FF-A v1.0
firmware: arm_ffa: Bound PARTITION_INFO_GET_REGS copies
firmware: arm_ffa: Keep framework RX release under lock
firmware: arm_ffa: Validate framework notification message layout
firmware: arm_ffa: Align RxTx buffer size before mapping
firmware: arm_ffa: Snapshot notifier callbacks under lock
firmware: arm_ffa: Fix sched-recv callback partition lookup
Sungwoo Kim (1):
block: bio-integrity: Fix null-ptr-deref in bio_integrity_map_user()
Sven Eckelmann (21):
batman-adv: v: stop OGMv2 on disabled interface
batman-adv: tvlv: abort OGM send on tvlv append failure
batman-adv: tvlv: reject oversized TVLV packets
batman-adv: iv: recover OGM scheduling after forward packet error
batman-adv: mcast: fix use-after-free in orig_node RCU release
batman-adv: dat: handle forward allocation error
batman-adv: frag: disallow unicast fragment in fragment
batman-adv: bla: fix report_work leak on backbone_gw purge
batman-adv: bla: avoid double decrement of bla.num_requests
batman-adv: bla: avoid NULL-ptr deref for claim via dropped interface
batman-adv: tp_meter: avoid use of uninit sender vars
batman-adv: tp_meter: directly shut down timer on cleanup
batman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown
batman-adv: tp_meter: fix race condition in send error reporting
batman-adv: tp_meter: avoid role confusion in tp_list
batman-adv: tt: fix TOCTOU race for reported vlans
batman-adv: tt: reject oversized local TVLV buffers
batman-adv: tt: avoid empty VLAN responses
batman-adv: tt: fix negative last_changeset_len
batman-adv: tt: fix negative tt_buff_len
batman-adv: tt: prevent TVLV entry number overflow
Sven Schuchmann (1):
net: phy: DP83TC811: add reading of abilities
Takashi Iwai (3):
ALSA: pcm: Don't setup bogus iov_iter for silencing
ALSA: asihpi: Fix potential OOB array access at reading cache
HID: uclogic: Fix regression of input name assignment
Tejun Heo (1):
sched_ext: Avoid UAF in scx_root_enable_workfn() init failure path
Thomas Zimmermann (5):
drm/vblank: Add vblank timer
drm/vblank: Add CRTC helpers for simple use cases drm/vkms: Convert to DRM's vblank timer
drm/atomic: Increase timeout in drm_atomic_helper_wait_for_vblanks() drm/vblank: Fix kernel docs for vblank timer
Tiezhu Yang (2):
LoongArch: kprobes: Use larch_insn_text_copy() to patch instructions
LoongArch: kprobes: Fix handling of fatal unrecoverable recursions
Til Kaiser (1):
pinctrl: qcom: ipq4019: mark gpio as a GPIO pin function
Tina Zhang (1):
KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum #1235)
Viacheslav Dubeyko (1):
netfs: fix VM_BUG_ON_FOLIO() issue in netfs_write_begin() call
Viktor Jägersküpper (1):
kbuild: pacman-pkg: make "rc" releases adhere to pacman versioning scheme
Vladimir Murzin (1):
arm64: probes: Handle probes on hinted conditional branch instructions
Vladimir Yakovlev (1):
spi: spi-dw-dma: fix print error log when wait finish transaction
Wayne Chang (1):
phy: tegra: xusb: Fix per-pad high-speed termination calibration
Weiming Shi (1):
tap: fix stack info leak in tap_ioctl() SIOCGIFHWADDR
Xiang Mei (3):
bridge: mrp: reject zero test interval to avoid OOM panic net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint net/smc: reject CHID-0 ACCEPT that matches an empty ism_dev slot
Xianwei Zhao (1):
pinctrl: meson: amlogic-a4: fix deadlock issue
Xingwang Xiang (1):
bpf, skmsg: fix verdict sk_data_ready racing with ktls rx
Yizhou Zhao (1):
netfilter: nft_inner: Fix IPv6 inner_thoff desync
Zack McKevitt (1):
accel/qaic: Add overflow check to remap_pfn_range during mmap
Zhang Cen (1):
ALSA: seq: Serialize UMP output teardown with event_input
Zhengchuan Liang (1):
netfilter: ip6t_hbh: reject oversized option lists
Zhihao Cheng (2):
cifs: Fix busy dentry used after unmounting
nsfs: fix wrong error code returned for pidns ioctls
Zijing Yin (1):
phonet/pep: disable BH around forwarded sk_receive_skb()
Łukasz Lebiedziński (1):
phy: exynos5-usbdrd: fix USB 2.0 HS PHY tuning values for Exynos7870
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/pm/intel_pstate.rst +6 -5
@@ -348,11 +348,12 @@ HyperThreading (HT) in the context of Intel processors, is enabled on at least one core, ``intel_pstate`` assigns performance-based priorities to CPUs. Namely, the priority of a given CPU reflects its highest HWP performance level which causes the CPU scheduler to generally prefer more performant CPUs, so the less -performant CPUs are used when the other ones are fully loaded. However, SMT -siblings (that is, logical CPUs sharing one physical core) are treated in a -special way such that if one of them is in use, the effective priority of the -other ones is lowered below the priorities of the CPUs located in the other -physical cores. +performant CPUs are used when the other ones are fully loaded. SMT siblings +(that is, logical CPUs sharing one physical core) are given the same priority. +The scheduler can pull tasks from lower-priority cores and place them on any +sibling. Since the scheduler spreads tasks among physical cores, tasks will be +placed on the SMT siblings of physical cores only after all physical cores are +busy. This approach maximizes performance in the majority of cases, but unfortunately it also leads to excessive energy usage in some important scenarios, like video
Documentation/crypto/krb5.rst +13 -4
@@ -158,13 +158,22 @@ returned. When a message has been received, the location and size of the data with the message can be determined by calling:: - void crypto_krb5_where_is_the_data(const struct krb5_enctype *krb5, - enum krb5_crypto_mode mode, - size_t *_offset, size_t *_len); + int crypto_krb5_where_is_the_data(const struct krb5_enctype *krb5, + enum krb5_crypto_mode mode, + size_t *_offset, size_t *_len); The caller provides the offset and length of the message to the function, which then alters those values to indicate the region containing the data (plus any -padding). It is up to the caller to determine how much padding there is. +padding). It is up to the caller to determine how much padding there is. The +function returns an error if the length is too small or if the mode is +unsupported. An additional function:: + + int crypto_krb5_check_data_len(const struct krb5_enctype *krb5, + enum krb5_crypto_mode mode, + size_t len, size_t min_content); + +is provided to just do a basic check that the decrypted/verified message would +have a sufficient minimum payload. Preparation Functions ---------------------
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml +32 -6
@@ -13,23 +13,21 @@ description: | maintainers: - Nicolas Saenz Julienne <[email protected]> -allOf: - - $ref: /schemas/watchdog/watchdog.yaml# - properties: compatible: items: - enum: - brcm,bcm2835-pm - brcm,bcm2711-pm + - brcm,bcm2712-pm - const: brcm,bcm2835-pm-wdt reg: - minItems: 2 + minItems: 1 maxItems: 3 reg-names: - minItems: 2 + minItems: 1 items: - const: pm - const: asb
@@ -62,7 +60,35 @@ required: - reg - "#power-domain-cells" - "#reset-cells" - - clocks + +allOf: + - $ref: /schemas/watchdog/watchdog.yaml# + + - if: + properties: + compatible: + contains: + enum: + - brcm,bcm2835-pm + - brcm,bcm2711-pm + then: + required: + - clocks + + properties: + reg: + minItems: 2 + + reg-names: + minItems: 2 + + else: + properties: + reg: + maxItems: 1 + + reg-names: + maxItems: 1 additionalProperties: false
Documentation/gpu/drm-kms-helpers.rst +12 -0
@@ -92,6 +92,18 @@ GEM Atomic Helper Reference .. kernel-doc:: drivers/gpu/drm/drm_gem_atomic_helper.c :export: +VBLANK Helper Reference +----------------------- + +.. kernel-doc:: drivers/gpu/drm/drm_vblank_helper.c + :doc: overview + +.. kernel-doc:: include/drm/drm_vblank_helper.h + :internal: + +.. kernel-doc:: drivers/gpu/drm/drm_vblank_helper.c + :export: + Simple KMS Helper Reference ===========================
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 18 -SUBLEVEL = 33 +SUBLEVEL = 34 EXTRAVERSION = NAME = Baby Opossum Posse
arch/alpha/include/asm/Kbuild +1 -0
@@ -5,4 +5,5 @@ generic-y += agp.h generic-y += asm-offsets.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += text-patching.h
arch/arc/include/asm/Kbuild +1 -0
@@ -5,5 +5,6 @@ generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h generic-y += parport.h +generic-y += ring_buffer.h generic-y += user.h generic-y += text-patching.h
arch/arm/boot/dts/renesas/r7s72100-genmai.dts +0 -3
@@ -34,9 +34,6 @@ flash@18000000 { clocks = <&mstp9_clks R7S72100_CLK_SPIBSC0>; power-domains = <&cpg_clocks>; - #address-cells = <1>; - #size-cells = <1>; - partitions { compatible = "fixed-partitions"; #address-cells = <1>;
arch/arm/boot/dts/renesas/r7s72100-rskrza1.dts +0 -2
@@ -36,8 +36,6 @@ flash@18000000 { power-domains = <&cpg_clocks>; bank-width = <4>; device-width = <1>; - #address-cells = <1>; - #size-cells = <1>; partitions { compatible = "fixed-partitions";
arch/arm/include/asm/Kbuild +1 -0
@@ -3,6 +3,7 @@ generic-y += early_ioremap.h generic-y += extable.h generic-y += flat.h generic-y += parport.h +generic-y += ring_buffer.h generated-y += mach-types.h generated-y += unistd-nr.h
arch/arm/mach-versatile/integrator_cp.c +4 -9
@@ -86,14 +86,6 @@ static u64 notrace intcp_read_sched_clock(void)return val; } -static void __init intcp_init_early (void ) -{ - cm_map =syscon_regmap_lookup_by_compatible ("arm,core-module-integrator" ); -if (IS_ERR (cm_map)) -return ; -sched_clock_register (intcp_read_sched_clock,32 ,24000000 ); -} -static void __init intcp_init_irq_of (void ) {cm_init ();
@@ -119,6 +111,10 @@ static void __init intcp_init_of(void) {struct device_node *cpcon; + cm_map =syscon_regmap_lookup_by_compatible ("arm,core-module-integrator" ); +if (!IS_ERR (cm_map)) +sched_clock_register (intcp_read_sched_clock,32 ,24000000 ); + cpcon =of_find_matching_node (NULL , intcp_syscon_match);if (!cpcon)return ;
@@ -138,7 +134,6 @@ static const char * intcp_dt_board_compat[] = {DT_MACHINE_START (INTEGRATOR_CP_DT ,"ARM Integrator/CP (Device Tree)" ) .reserve = integrator_reserve, .map_io = intcp_map_io, - .init_early = intcp_init_early, .init_irq = intcp_init_irq_of, .init_machine = intcp_init_of, .dt_compat = intcp_dt_board_compat,
arch/arm64/boot/dts/broadcom/bcm2712.dtsi +9 -0
@@ -250,6 +250,15 @@ uart10: serial@7d001000 { status = "disabled"; }; + pm: watchdog@7d200000 { + compatible = "brcm,bcm2712-pm", "brcm,bcm2835-pm-wdt"; + reg = <0x7d200000 0x604>; + reg-names = "pm"; + #power-domain-cells = <1>; + #reset-cells = <1>; + system-power-controller; + }; + pinctrl: pinctrl@7d504100 { compatible = "brcm,bcm2712c0-pinctrl"; reg = <0x7d504100 0x30>;
arch/arm64/include/asm/insn.h +1 -1
@@ -409,7 +409,7 @@ __AARCH64_INSN_FUNCS(cbz, 0x7F000000, 0x34000000) __AARCH64_INSN_FUNCS(cbnz, 0x7F000000, 0x35000000) __AARCH64_INSN_FUNCS(tbz, 0x7F000000, 0x36000000) __AARCH64_INSN_FUNCS(tbnz, 0x7F000000, 0x37000000) -__AARCH64_INSN_FUNCS(bcond, 0xFF000010, 0x54000000) +__AARCH64_INSN_FUNCS(bcond, 0xFF000000, 0x54000000) __AARCH64_INSN_FUNCS(svc, 0xFFE0001F, 0xD4000001) __AARCH64_INSN_FUNCS(hvc, 0xFFE0001F, 0xD4000002)__AARCH64_INSN_FUNCS (smc,0xFFE0001F ,0xD4000003 )
arch/arm64/include/asm/page.h +1 -1
@@ -33,7 +33,7 @@ struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, unsigned long vaddr);#define vma_alloc_zeroed_movable_folio vma_alloc_zeroed_movable_folio -bool tag_clear_highpages (struct page *to,int numpages); +bool tag_clear_highpages (struct page *to,int numpages,bool clear_pages);#define __HAVE_ARCH_TAG_CLEAR_HIGHPAGES#define clear_user_page (page, vaddr, pg) clear_page(page)
arch/arm64/include/asm/ring_buffer.h new file +10 -0
@@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASM_ARM64_RING_BUFFER_H +#define _ASM_ARM64_RING_BUFFER_H + +#include <asm/cacheflush.h> + +/* Flush D-cache on persistent ring buffer */ +#define arch_ring_buffer_flush_range (start, end) dcache_clean_pop(start, end) + +#endif /* _ASM_ARM64_RING_BUFFER_H */
arch/arm64/kvm/arm.c +3 -1
@@ -490,8 +490,10 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)kvm_destroy_mpidr_data (vcpu->kvm); err =kvm_vgic_vcpu_init (vcpu); -if (err) +if (err) { +kvm_vgic_vcpu_destroy (vcpu);return err; + } err =kvm_share_hyp (vcpu, vcpu +1 );if (err)
arch/arm64/kvm/vgic/vgic-its.c +4 -0
@@ -2307,6 +2307,10 @@ static int vgic_its_restore_dte(struct vgic_its *its, u32 id,/* dte entry is valid */ offset = (entry &KVM_ITS_DTE_NEXT_MASK ) >>KVM_ITS_DTE_NEXT_SHIFT ; +/* Mimic the MAPD behaviour and reject invalid EID bits. */ +if (num_eventid_bits >VITS_TYPER_IDBITS ) +return -EINVAL ; +if (!vgic_its_check_id (its, baser, id,NULL ))return -EINVAL ;
arch/arm64/mm/fault.c +7 -4
@@ -967,7 +967,7 @@ struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma,return vma_alloc_folio (flags,0 , vma, vaddr); } -bool tag_clear_highpages (struct page *page,int numpages) +bool tag_clear_highpages (struct page *page,int numpages,bool clear_pages) {/* * Check if MTE is supported and fall back to clear_highpage().
@@ -975,13 +975,16 @@ bool tag_clear_highpages(struct page *page, int numpages)* post_alloc_hook() will invoke tag_clear_highpages(). */ if (!system_supports_mte ()) -return false; +return clear_pages;/* Newly allocated pages, shouldn't have been tagged yet */ for (int i =0 ; i < numpages; i++, page++) {WARN_ON_ONCE (!try_page_mte_tagging (page)); -mte_zero_clear_page_tags (page_address (page)); +if (clear_pages) +mte_zero_clear_page_tags (page_address (page)); +else +mte_clear_page_tags (page_address (page));set_page_mte_tagged (page); } -return true; +return false; }
arch/csky/include/asm/Kbuild +1 -0
@@ -9,6 +9,7 @@ generic-y += qrwlock.h generic-y += qrwlock_types.h generic-y += qspinlock.h generic-y += parport.h +generic-y += ring_buffer.h generic-y += user.h generic-y += vmlinux.lds.h generic-y += text-patching.h
arch/hexagon/include/asm/Kbuild +1 -0
@@ -5,4 +5,5 @@ generic-y += extable.h generic-y += iomap.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += text-patching.h
arch/loongarch/include/asm/Kbuild +1 -0
@@ -9,5 +9,6 @@ generic-y += qrwlock.h generic-y += user.h generic-y += ioctl.h generic-y += mmzone.h +generic-y += ring_buffer.h generic-y += statfs.h generic-y += text-patching.h
arch/loongarch/kernel/kprobes.c +8 -6
@@ -60,16 +60,18 @@ NOKPROBE_SYMBOL(arch_prepare_kprobe);/* Install breakpoint in text */ void arch_arm_kprobe (struct kprobe *p) { - *p->addr =KPROBE_BP_INSN ; -flush_insn_slot (p); +u32 insn =KPROBE_BP_INSN ; + +larch_insn_text_copy (p->addr, &insn,LOONGARCH_INSN_SIZE ); }NOKPROBE_SYMBOL (arch_arm_kprobe);/* Remove breakpoint from text */ void arch_disarm_kprobe (struct kprobe *p) { - *p->addr = p->opcode; -flush_insn_slot (p); +u32 insn = p->opcode; + +larch_insn_text_copy (p->addr, &insn,LOONGARCH_INSN_SIZE ); }NOKPROBE_SYMBOL (arch_disarm_kprobe);
@@ -184,16 +186,16 @@ static bool reenter_kprobe(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) {switch (kcb->kprobe_status) { -case KPROBE_HIT_SS :case KPROBE_HIT_SSDONE :case KPROBE_HIT_ACTIVE :kprobes_inc_nmissed_count (p);setup_singlestep (p, regs, kcb,1 );break ; +case KPROBE_HIT_SS :case KPROBE_REENTER :pr_warn ("Failed to recover from reentered kprobes.\n" );dump_kprobe (p); -WARN_ON_ONCE (1 ); +BUG ();break ;default :WARN_ON (1 );
arch/loongarch/mm/init.c +0 -4
@@ -97,11 +97,7 @@ void arch_remove_memory(u64 start, u64 size, struct vmem_altmap *altmap) {unsigned long start_pfn = start >>PAGE_SHIFT ;unsigned long nr_pages = size >>PAGE_SHIFT ; -struct page *page =pfn_to_page (start_pfn); -/* With altmap the first mapped page is offset from @start */ -if (altmap) - page +=vmem_altmap_offset (altmap);__remove_pages (start_pfn, nr_pages, altmap); }#endif
arch/m68k/include/asm/Kbuild +1 -0
@@ -3,5 +3,6 @@ generated-y += syscall_table.h generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += spinlock.h generic-y += text-patching.h
arch/microblaze/include/asm/Kbuild +1 -0
@@ -5,6 +5,7 @@ generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h generic-y += parport.h +generic-y += ring_buffer.h generic-y += syscalls.h generic-y += tlb.h generic-y += user.h
arch/mips/include/asm/Kbuild +1 -0
@@ -12,5 +12,6 @@ generic-y += mcs_spinlock.h generic-y += parport.h generic-y += qrwlock.h generic-y += qspinlock.h +generic-y += ring_buffer.h generic-y += user.h generic-y += text-patching.h
arch/nios2/include/asm/Kbuild +1 -0
@@ -5,6 +5,7 @@ generic-y += cmpxchg.h generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += spinlock.h generic-y += user.h generic-y += text-patching.h
arch/openrisc/include/asm/Kbuild +1 -0
@@ -8,4 +8,5 @@ generic-y += spinlock_types.h generic-y += spinlock.h generic-y += qrwlock_types.h generic-y += qrwlock.h +generic-y += ring_buffer.h generic-y += user.h
arch/parisc/include/asm/Kbuild +1 -0
@@ -4,4 +4,5 @@ generated-y += syscall_table_64.h generic-y += agp.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += user.h
arch/powerpc/Kconfig.debug +1 -2
@@ -83,11 +83,10 @@ config MSI_BITMAP_SELFTEST depends on DEBUG_KERNEL config GUEST_STATE_BUFFER_TEST - def_tristate n + def_tristate KUNIT_ALL_TESTS prompt "Enable Guest State Buffer unit tests" depends on KUNIT depends on KVM_BOOK3S_HV_POSSIBLE - default KUNIT_ALL_TESTS help The Guest State Buffer is a data format specified in the PAPR. It is by hcalls to communicate the state of L2 guests between
arch/powerpc/include/asm/Kbuild +1 -0
@@ -5,4 +5,5 @@ generated-y += syscall_table_spu.h generic-y += agp.h generic-y += mcs_spinlock.h generic-y += qrwlock.h +generic-y += ring_buffer.h generic-y += early_ioremap.h
arch/powerpc/kernel/time.c +4 -2
@@ -458,6 +458,10 @@ DEFINE_PER_CPU(u8, irq_work_pending);#endif /* 32 vs 64 bit */ +/* +* Must be called with preemption disabled since it updates +* per-CPU irq_work state and programs the local CPU decrementer. +*/ void arch_irq_work_raise (void ) {/*
@@ -471,10 +475,8 @@ void arch_irq_work_raise(void)* which could get tangled up if we're messing with the same state * here. */ -preempt_disable ();set_irq_work_pending_flag ();set_dec (1 ); -preempt_enable (); }static void set_dec_or_work (u64 val)
arch/powerpc/platforms/82xx/km82xx.c +2 -2
@@ -27,8 +27,8 @@static void __init km82xx_pic_init (void ) { - struct device_node *np __free(device_node); - np =of_find_compatible_node (NULL ,NULL ,"fsl,pq2-pic" ); + struct device_node *np __free(device_node) = of_find_compatible_node(NULL, +NULL ,"fsl,pq2-pic" );if (!np) {pr_err ("PIC init: can not find cpm-pic node\n" );
arch/riscv/errata/mips/errata.c +1 -1
@@ -57,7 +57,7 @@ void mips_errata_patch_func(struct alt_entry *begin, struct alt_entry *end, } tmp = (1U << alt->patch_id); -if (cpu_req_errata && tmp) { +if (cpu_req_errata & tmp) {mutex_lock (&text_mutex);patch_text_nosync (ALT_OLD_PTR (alt),ALT_ALT_PTR (alt), alt->alt_len);
arch/riscv/include/asm/Kbuild +1 -0
@@ -14,5 +14,6 @@ generic-y += ticket_spinlock.h generic-y += qrwlock.h generic-y += qrwlock_types.h generic-y += qspinlock.h +generic-y += ring_buffer.h generic-y += user.h generic-y += vmlinux.lds.h
arch/riscv/kvm/vcpu_pmu.c +8 -4
@@ -431,8 +431,10 @@ int kvm_riscv_vcpu_pmu_snapshot_set_shmem(struct kvm_vcpu *vcpu, unsigned long s } kvpmu->sdata =kzalloc (snapshot_area_size,GFP_ATOMIC ); -if (!kvpmu->sdata) -return -ENOMEM ; +if (!kvpmu->sdata) { + sbiret =SBI_ERR_FAILURE ; + goto out; + }/* No need to check writable slot explicitly as kvm_vcpu_write_guest does it internally */ if (kvm_vcpu_write_guest (vcpu, saddr, kvpmu->sdata, snapshot_area_size)) {
@@ -476,8 +478,10 @@ int kvm_riscv_vcpu_pmu_event_info(struct kvm_vcpu *vcpu, unsigned long saddr_low } einfo =kzalloc (shmem_size,GFP_KERNEL ); -if (!einfo) -return -ENOMEM ; +if (!einfo) { + ret =SBI_ERR_FAILURE ; + goto out; + } ret =kvm_vcpu_read_guest (vcpu, shmem, einfo, shmem_size);if (ret) {
arch/riscv/mm/init.c +25 -0
@@ -852,6 +852,27 @@ static void __init set_mmap_rnd_bits_max(void) mmap_rnd_bits_max =MMAP_VA_BITS -PAGE_SHIFT -3 ; } +static bool __init is_vaddr_valid (unsigned long va) +{ +unsigned long up =0 ; + +switch (satp_mode) { +case SATP_MODE_39 : + up =1UL <<38 ; +break ; +case SATP_MODE_48 : + up =1UL <<47 ; +break ; +case SATP_MODE_57 : + up =1UL <<56 ; +break ; +default : +return false; + } + +return (va < up) || (va >= (ULONG_MAX - up +1 )); +} +/* * There is a simple way to determine if 4-level is supported by the * underlying hardware: establish 1:1 mapping in 4-level page table mode
@@ -893,6 +914,9 @@ static __init void set_satp_mode(uintptr_t dtb_pa) set_satp_mode_pmd +PMD_SIZE , PMD_SIZE, PAGE_KERNEL_EXEC); retry: +if (!is_vaddr_valid (set_satp_mode_pmd)) + goto out; + create_pgd_mapping(early_pg_dir, set_satp_mode_pmd, pgtable_l5_enabled ?
@@ -915,6 +939,7 @@ static __init void set_satp_mode(uintptr_t dtb_pa)disable_pgtable_l4 (); } +out:memset (early_pg_dir,0 ,PAGE_SIZE );memset (early_p4d,0 ,PAGE_SIZE );memset (early_pud,0 ,PAGE_SIZE );
arch/s390/include/asm/Kbuild +1 -0
@@ -8,3 +8,4 @@ generic-y += asm-offsets.h generic-y += kvm_types.h generic-y += mcs_spinlock.h generic-y += mmzone.h +generic-y += ring_buffer.h
arch/sh/include/asm/Kbuild +1 -0
@@ -3,4 +3,5 @@ generated-y += syscall_table.h generic-y += kvm_para.h generic-y += mcs_spinlock.h generic-y += parport.h +generic-y += ring_buffer.h generic-y += text-patching.h
arch/sparc/include/asm/Kbuild +1 -0
@@ -4,4 +4,5 @@ generated-y += syscall_table_64.h generic-y += agp.h generic-y += kvm_para.h generic-y += mcs_spinlock.h +generic-y += ring_buffer.h generic-y += text-patching.h
arch/um/include/asm/Kbuild +1 -0
@@ -18,6 +18,7 @@ generic-y += module.lds.h generic-y += parport.h generic-y += percpu.h generic-y += preempt.h +generic-y += ring_buffer.h generic-y += runtime-const.h generic-y += softirq_stack.h generic-y += switch_to.h
arch/x86/include/asm/Kbuild +1 -0
@@ -14,3 +14,4 @@ generic-y += early_ioremap.h generic-y += fprobe.h generic-y += mcs_spinlock.h generic-y += mmzone.h +generic-y += ring_buffer.h
arch/x86/kernel/cpu/mce/core.c +5 -28
@@ -89,7 +89,6 @@ struct mca_config mca_cfg __read_mostly = { }; static DEFINE_PER_CPU(struct mce_hw_err, hw_errs_seen); -static unsigned long mce_need_notify;/* * MCA banks polled by the period polling timer for corrected events.
@@ -151,8 +150,10 @@ EXPORT_PER_CPU_SYMBOL_GPL(injectm);void mce_log (struct mce_hw_err *err) { -if (mce_gen_pool_add (err)) +if (mce_gen_pool_add (err)) { +pr_info (HW_ERR "Machine check events logged\n" );irq_work_queue (&mce_irq_work); + } }EXPORT_SYMBOL_GPL (mce_log);
@@ -584,28 +585,6 @@ bool mce_is_correctable(struct mce *m) }EXPORT_SYMBOL_GPL (mce_is_correctable); -/* -* Notify the user(s) about new machine check events. -* Can be called from interrupt context, but not from machine check/NMI -* context. -*/ -static bool mce_notify_irq (void ) -{ -/* Not more than two messages every minute */ - static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2); - -if (test_and_clear_bit (0 , &mce_need_notify)) { -mce_work_trigger (); - -if (__ratelimit (&ratelimit)) -pr_info (HW_ERR "Machine check events logged\n" ); - -return true; - } - -return false; -} -static int mce_early_notifier (struct notifier_block *nb,unsigned long val,void *data) {
@@ -617,9 +596,7 @@ static int mce_early_notifier(struct notifier_block *nb, unsigned long val,/* Emit the trace record: */ trace_mce_record (err); -set_bit (0 , &mce_need_notify); - -mce_notify_irq (); +mce_work_trigger ();return NOTIFY_DONE ; }
@@ -1771,7 +1748,7 @@ static void mce_timer_fn(struct timer_list *t)* Alert userspace if needed. If we logged an MCE, reduce the polling * interval, otherwise increase the polling interval. */ -if (mce_notify_irq ()) +if (!mce_gen_pool_empty ()) iv =max (iv /2 , (unsigned long )HZ /100 );else iv =min (iv *2 ,round_jiffies_relative (check_interval *HZ ));
arch/x86/kvm/svm/avic.c +7 -5
@@ -1252,12 +1252,14 @@ bool __init avic_hardware_setup(void) svm_x86_ops.allow_apicv_in_x2apic_without_x2apic_virtualization = true;/* -* Disable IPI virtualization for AMD Family 17h CPUs (Zen1 and Zen2) -* due to erratum 1235, which results in missed VM-Exits on the sender -* and thus missed wake events for blocking vCPUs due to the CPU -* failing to see a software update to clear IsRunning. +* Disable IPI virtualization for AMD Family 17h (Zen1 and Zen2) and +* Hygon Family 18h (derived from AMD Zen1) CPUs due to erratum 1235, +* which results in missed VM-Exits on the sender and thus missed wake +* events for blocking vCPUs due to the CPU failing to see a software +* update to clear IsRunning. */ - enable_ipiv = enable_ipiv && boot_cpu_data.x86 !=0x17 ; +if (boot_cpu_data.x86 ==0x17 || boot_cpu_data.x86 ==0x18 ) + enable_ipiv = false;amd_iommu_register_ga_log_notifier (&avic_ga_log_notifier);
arch/x86/xen/setup.c +1 -1
@@ -655,7 +655,7 @@ static void __init xen_e820_swap_entry_with_ram(struct e820_entry *swap_entry)/* Fill new entry (keep size and page offset). */ entry->type = swap_entry->type; entry->addr = entry_end - swap_size + - swap_addr - swap_entry->addr; + swap_entry->addr - swap_addr; entry->size = swap_entry->size;/* Convert old entry to RAM, align to pages. */
arch/xtensa/include/asm/Kbuild +1 -0
@@ -6,5 +6,6 @@ generic-y += mcs_spinlock.h generic-y += parport.h generic-y += qrwlock.h generic-y += qspinlock.h +generic-y += ring_buffer.h generic-y += user.h generic-y += text-patching.h
block/bio-integrity.c +18 -1
@@ -205,7 +205,6 @@ static int bio_integrity_copy_user(struct bio *bio, struct bio_vec *bvec, } bip->bip_flags |=BIP_COPY_USER ; - bip->bip_vcnt = nr_vecs;return 0 ; free_bip:bio_integrity_free (bio);
@@ -300,6 +299,24 @@ int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter)if (unlikely (ret <0 )) goto free_bvec; +/* +* Handle partial pinning. This can happen when pin_user_pages_fast() +* returns fewer pages than requested. +*/ +if (user_backed_iter (iter) &&unlikely (ret != bytes)) { +if (ret >0 ) { +int npinned =DIV_ROUND_UP (offset + ret,PAGE_SIZE ); +int i; + +for (i =0 ; i < npinned; i++) +unpin_user_page (pages[i]); + } +if (pages != stack_pages) +kvfree (pages); + ret = -EFAULT ; + goto free_bvec; + } + nr_bvecs =bvec_from_pages (bvec, pages, nr_vecs, bytes, offset, &is_p2p);if (pages != stack_pages)
block/blk-cgroup.c +1 -1
@@ -2241,7 +2241,7 @@ void blk_cgroup_bio_start(struct bio *bio) }u64_stats_update_end_irqrestore (&bis->sync, flags); -css_rstat_updated (&blkcg->css, cpu); +__css_rstat_updated (&blkcg->css, cpu);put_cpu (); }
block/blk-mq.c +19 -0
@@ -3285,6 +3285,25 @@ blk_status_t blk_insert_cloned_request(struct request *rq)return BLK_STS_IOERR ; } +/* +* Integrity segment counting depends on the same queue limits +* (virt_boundary_mask, seg_boundary_mask, max_segment_size) that +* vary across stacked queues, so recompute against the bottom +* queue just like nr_phys_segments above. +*/ +if (blk_integrity_rq (rq) && rq->bio) { +unsigned short max_int_segs =queue_max_integrity_segments (q); + + rq->nr_integrity_segments = +blk_rq_count_integrity_sg (rq->q, rq->bio); +if (rq->nr_integrity_segments > max_int_segs) { +printk (KERN_ERR "%s: over max integrity segments limit. (%u > %u)\n" , + __func__, rq->nr_integrity_segments, + max_int_segs); +return BLK_STS_IOERR ; + } + } +if (q->disk &&should_fail_request (q->disk->part0,blk_rq_bytes (rq)))return BLK_STS_IOERR ;
crypto/krb5/krb5_api.c +48 -6
75 lines not on this page · raw message
drivers/accel/qaic/qaic_data.c +21 -2
@@ -605,8 +605,11 @@ static const struct vm_operations_struct drm_vm_ops = {static int qaic_gem_object_mmap (struct drm_gem_object *obj,struct vm_area_struct *vma) {struct qaic_bo *bo =to_qaic_bo (obj); +unsigned long remap_start;unsigned long offset =0 ; +unsigned long remap_end;struct scatterlist *sg; +unsigned long length;int ret =0 ;if (drm_gem_is_imported (obj))
@@ -614,11 +617,27 @@ static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_strucfor (sg = bo->sgt->sgl; sg; sg =sg_next (sg)) {if (sg_page (sg)) { +/* if sg is too large for the VMA, so truncate it to fit */ +if (check_add_overflow (vma->vm_start, offset, &remap_start)) +return -EINVAL ; +if (check_add_overflow (remap_start, sg->length, &remap_end)) +return -EINVAL ; + +if (remap_end > vma->vm_end) { +if (check_sub_overflow (vma->vm_end, remap_start, &length)) +return -EINVAL ; + }else { + length = sg->length; + } + +if (length ==0 ) + goto out; + ret =remap_pfn_range (vma, vma->vm_start + offset,page_to_pfn (sg_page (sg)), - sg->length, vma->vm_page_prot); + length, vma->vm_page_prot);if (ret) goto out; - offset += sg->length; + offset += length; } }
drivers/ata/libata-core.c +6 -3
@@ -5499,6 +5499,7 @@ void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp) link->pmp = pmp; link->active_tag =ATA_TAG_POISON ; link->hw_sata_spd_limit =UINT_MAX ; +INIT_WORK (&link->deferred_qc_work, ata_scsi_deferred_qc_work);/* can't use iterator, ap isn't initialized yet */ for (i =0 ; i <ATA_MAX_DEVICES ; i++) {
@@ -5581,7 +5582,6 @@ struct ata_port *ata_port_alloc(struct ata_host *host)mutex_init (&ap->scsi_scan_mutex);INIT_DELAYED_WORK (&ap->hotplug_task, ata_scsi_hotplug);INIT_DELAYED_WORK (&ap->scsi_rescan_task, ata_scsi_dev_rescan); -INIT_WORK (&ap->deferred_qc_work, ata_scsi_deferred_qc_work);INIT_LIST_HEAD (&ap->eh_done_q);init_waitqueue_head (&ap->eh_wait_q);init_completion (&ap->park_req_pending);
@@ -6204,12 +6204,15 @@ static void ata_port_detach(struct ata_port *ap)/* It better be dead now and not have any remaining deferred qc. */ WARN_ON (!(ap->pflags &ATA_PFLAG_UNLOADED )); -WARN_ON (ap->deferred_qc); -cancel_work_sync (&ap->deferred_qc_work);cancel_delayed_work_sync (&ap->hotplug_task);cancel_delayed_work_sync (&ap->scsi_rescan_task); +ata_for_each_link (link, ap,PMP_FIRST ) { +WARN_ON (link->deferred_qc); +cancel_work_sync (&link->deferred_qc_work); + } +/* Delete port multiplier link transport devices */ if (ap->pmp_link) {int i;
drivers/ata/libata-eh.c +4 -4
@@ -643,11 +643,11 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,if (qc->scsicmd != scmd)continue ;if ((qc->flags &ATA_QCFLAG_ACTIVE ) || - qc == ap->deferred_qc) + qc == qc->dev->link->deferred_qc)break ; } -if (i <ATA_MAX_QUEUE && qc == ap->deferred_qc) { +if (i <ATA_MAX_QUEUE && qc == qc->dev->link->deferred_qc) {/* * This is a deferred command that timed out while * waiting for the command queue to drain. Since the qc
@@ -658,8 +658,8 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,* deferred qc work from issuing this qc. */ WARN_ON_ONCE (qc->flags &ATA_QCFLAG_ACTIVE ); - ap->deferred_qc =NULL ; -cancel_work (&ap->deferred_qc_work); + qc->dev->link->deferred_qc =NULL ; +cancel_work (&qc->dev->link->deferred_qc_work);set_host_byte (scmd,DID_TIME_OUT );scsi_eh_finish_cmd (scmd, &ap->eh_done_q); }else if (i <ATA_MAX_QUEUE ) {
drivers/ata/libata-pmp.c +16 -2
@@ -110,13 +110,24 @@ int sata_pmp_qc_defer_cmd_switch(struct ata_queued_cmd *qc) {struct ata_link *link = qc->dev->link;struct ata_port *ap = link->ap; +int ret;if (ap->excl_link ==NULL || ap->excl_link == link) {if (ap->nr_active_links ==0 ||ata_link_active (link)) { qc->flags |=ATA_QCFLAG_CLEAR_EXCL ; -return ata_std_qc_defer (qc); + ret =ata_std_qc_defer (qc); +if (ret ==ATA_DEFER_LINK ) +return ATA_DEFER_LINK_EXCL ; +return ret; } +/* +* Note: ap->excl_link contains the link that is next in line, +* i.e. implicit round robin. If there is only one link +* dispatching, ap->excl_link will be left unclaimed, allowing +* other links to set ap->excl_link, ensuring that the currently +* active link cannot queue any more. +*/ ap->excl_link = link; }
@@ -571,8 +582,11 @@ static void sata_pmp_detach(struct ata_device *dev)if (ap->ops->pmp_detach) ap->ops->pmp_detach (ap); -ata_for_each_link (tlink, ap,EDGE ) +ata_for_each_link (tlink, ap,EDGE ) { +WARN_ON (tlink->deferred_qc); +cancel_work_sync (&tlink->deferred_qc_work);ata_eh_detach_dev (tlink->device); + }spin_lock_irqsave (ap->lock, flags); ap->nr_pmp_links =0 ;
drivers/ata/libata-scsi.c +57 -43
175 lines not on this page · raw message
drivers/ata/sata_sil24.c +5 -1
@@ -789,6 +789,7 @@ static int sil24_qc_defer(struct ata_queued_cmd *qc)struct ata_link *link = qc->dev->link;struct ata_port *ap = link->ap;u8 prot = qc->tf.protocol; +int ret;/* * There is a bug in the chip:
@@ -826,7 +827,10 @@ static int sil24_qc_defer(struct ata_queued_cmd *qc) qc->flags |=ATA_QCFLAG_CLEAR_EXCL ; } -return ata_std_qc_defer (qc); + ret =ata_std_qc_defer (qc); +if (ret ==ATA_DEFER_LINK ) +return ATA_DEFER_LINK_EXCL ; +return ret; }static enum ata_completion_errors sil24_qc_prep (struct ata_queued_cmd *qc)
drivers/base/memory.c +6 -2
@@ -1251,8 +1251,10 @@ void memblk_nr_poison_inc(unsigned long pfn)const unsigned long block_id =pfn_to_block_id (pfn);struct memory_block *mem =find_memory_block_by_id (block_id); -if (mem) +if (mem) {atomic_long_inc (&mem->nr_hwpoison); +put_device (&mem->dev); + } }void memblk_nr_poison_sub (unsigned long pfn,long i)
@@ -1260,8 +1262,10 @@ void memblk_nr_poison_sub(unsigned long pfn, long i)const unsigned long block_id =pfn_to_block_id (pfn);struct memory_block *mem =find_memory_block_by_id (block_id); -if (mem) +if (mem) {atomic_long_sub (i, &mem->nr_hwpoison); +put_device (&mem->dev); + } }static unsigned long memblk_nr_poison (struct memory_block *mem)
drivers/block/rbd.c +8 -12
@@ -4565,24 +4565,12 @@ static int rbd_register_watch(struct rbd_device *rbd_dev)return ret; } -static void cancel_tasks_sync (struct rbd_device *rbd_dev) -{ -dout ("%s rbd_dev %p\n" , __func__, rbd_dev); - -cancel_work_sync (&rbd_dev->acquired_lock_work); -cancel_work_sync (&rbd_dev->released_lock_work); -cancel_delayed_work_sync (&rbd_dev->lock_dwork); -cancel_work_sync (&rbd_dev->unlock_work); -} -/* * header_rwsem must not be held to avoid a deadlock with * rbd_dev_refresh() when flushing notifies. */ static void rbd_unregister_watch (struct rbd_device *rbd_dev) { -cancel_tasks_sync (rbd_dev); -mutex_lock (&rbd_dev->watch_mutex);if (rbd_dev->watch_state ==RBD_WATCH_STATE_REGISTERED )__rbd_unregister_watch (rbd_dev);
@@ -6548,10 +6536,18 @@ static int rbd_add_parse_args(const char *buf,static void rbd_dev_image_unlock (struct rbd_device *rbd_dev) { +dout ("%s rbd_dev %p\n" , __func__, rbd_dev); + +disable_delayed_work_sync (&rbd_dev->lock_dwork); +disable_work_sync (&rbd_dev->unlock_work); +down_write (&rbd_dev->lock_rwsem);if (__rbd_is_lock_owner (rbd_dev))__rbd_release_lock (rbd_dev);up_write (&rbd_dev->lock_rwsem); + +flush_work (&rbd_dev->acquired_lock_work); +flush_work (&rbd_dev->released_lock_work); }/*
drivers/block/ublk_drv.c +3 -0
@@ -601,6 +601,9 @@ static int ublk_validate_params(const struct ublk_device *ub)if (p->max_sectors > (ub->dev_info.max_io_buf_bytes >>9 ))return -EINVAL ; +if (p->max_sectors <PAGE_SECTORS ) +return -EINVAL ; +if (ublk_dev_is_zoned (ub) && !p->chunk_sectors)return -EINVAL ; }else
drivers/bluetooth/btintel_pcie.c +6 -14
@@ -567,12 +567,10 @@ static int btintel_pcie_get_mac_access(struct btintel_pcie_data *data) reg =btintel_pcie_rd_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG ); - reg |=BTINTEL_PCIE_CSR_FUNC_CTRL_STOP_MAC_ACCESS_DIS ; - reg |=BTINTEL_PCIE_CSR_FUNC_CTRL_XTAL_CLK_REQ ; -if ((reg &BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_STS ) ==0 ) +if (!(reg &BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ )) { reg |=BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ ; - -btintel_pcie_wr_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG , reg); +btintel_pcie_wr_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG , reg); + } do { reg = btintel_pcie_rd_reg32(data, BTINTEL_PCIE_CSR_FUNC_CTRL_REG);
@@ -592,16 +590,10 @@ static void btintel_pcie_release_mac_access(struct btintel_pcie_data *data) reg =btintel_pcie_rd_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG ); -if (reg &BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ ) +if (reg &BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ ) { reg &= ~BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ ; - -if (reg &BTINTEL_PCIE_CSR_FUNC_CTRL_STOP_MAC_ACCESS_DIS ) - reg &= ~BTINTEL_PCIE_CSR_FUNC_CTRL_STOP_MAC_ACCESS_DIS ; - -if (reg &BTINTEL_PCIE_CSR_FUNC_CTRL_XTAL_CLK_REQ ) - reg &= ~BTINTEL_PCIE_CSR_FUNC_CTRL_XTAL_CLK_REQ ; - -btintel_pcie_wr_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG , reg); +btintel_pcie_wr_reg32 (data,BTINTEL_PCIE_CSR_FUNC_CTRL_REG , reg); + } } static void *btintel_pcie_copy_tlv(void *dest, enum btintel_pcie_tlv_type type,
drivers/bluetooth/btintel_pcie.h +0 -3
@@ -34,9 +34,6 @@#define BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_STS (BIT(20))#define BTINTEL_PCIE_CSR_FUNC_CTRL_MAC_ACCESS_REQ (BIT(21)) -/* Stop MAC Access disconnection request */ -#define BTINTEL_PCIE_CSR_FUNC_CTRL_STOP_MAC_ACCESS_DIS (BIT(22)) -#define BTINTEL_PCIE_CSR_FUNC_CTRL_XTAL_CLK_REQ (BIT(23))#define BTINTEL_PCIE_CSR_FUNC_CTRL_BUS_MASTER_STS (BIT(28))#define BTINTEL_PCIE_CSR_FUNC_CTRL_BUS_MASTER_DISCON (BIT(29))
drivers/bluetooth/btmtk.c +2 -0
@@ -496,6 +496,7 @@ static void btmtk_usb_wmt_recv(struct urb *urb)return ; }else if (urb->status == -ENOENT ) {/* Avoid suspend failed when usb_kill_urb */ +kfree (urb->setup_packet);return ; }
@@ -569,6 +570,7 @@ static int btmtk_usb_submit_wmt_recv_urb(struct hci_dev *hdev)if (err != -EPERM && err != -ENODEV )bt_dev_err (hdev,"urb %p submission failed (%d)" , urb, -err); +kfree (dr);usb_unanchor_urb (urb); }
drivers/bluetooth/hci_ldisc.c +40 -8
102 lines not on this page · raw message
drivers/cxl/core/mbox.c +9 -2
@@ -311,6 +311,7 @@ static bool cxl_mem_raw_command_allowed(u16 opcode)* cxl_payload_from_user_allowed() - Check contents of in_payload. * @opcode: The mailbox command opcode. * @payload_in: Pointer to the input payload passed in from user space. +* @in_size: Size of @payload_in in bytes. * * Return: * * true - payload_in passes check for @opcode.
@@ -325,12 +326,15 @@ static bool cxl_mem_raw_command_allowed(u16 opcode)* * The specific checks are determined by the opcode. */ -static bool cxl_payload_from_user_allowed (u16 opcode,void *payload_in) +static bool cxl_payload_from_user_allowed (u16 opcode,void *payload_in, +size_t in_size) {switch (opcode) {case CXL_MBOX_OP_SET_PARTITION_INFO : {struct cxl_mbox_set_partition_info *pi = payload_in; +if (in_size <sizeof (*pi)) +return false;if (pi->flags &CXL_SET_PARTITION_IMMEDIATE_FLAG )return false;break ;
@@ -338,6 +342,8 @@ static bool cxl_payload_from_user_allowed(u16 opcode, void *payload_in)case CXL_MBOX_OP_CLEAR_LOG : {const uuid_t *uuid = (uuid_t *)payload_in; +if (in_size <sizeof (uuid_t)) +return false;/* * Restrict the ‘Clear log’ action to only apply to * Vendor debug logs.
@@ -365,7 +371,8 @@ static int cxl_mbox_cmd_ctor(struct cxl_mbox_cmd *mbox_cmd,if (IS_ERR (mbox_cmd->payload_in))return PTR_ERR (mbox_cmd->payload_in); -if (!cxl_payload_from_user_allowed (opcode, mbox_cmd->payload_in)) { +if (!cxl_payload_from_user_allowed (opcode, mbox_cmd->payload_in, + in_size)) {dev_dbg (cxl_mbox->host,"%s: input payload not allowed\n" ,cxl_mem_opcode_to_name (opcode));kvfree (mbox_cmd->payload_in);
drivers/firmware/arm_ffa/bus.c +3 -1
@@ -26,6 +26,8 @@ static int ffa_device_match(struct device *dev, const struct device_driver *drv) id_table =to_ffa_driver (drv)->id_table; ffa_dev =to_ffa_dev (dev); +if (!id_table) +return 0 ;while (!uuid_is_null (&id_table->uuid)) {/*
@@ -123,7 +125,7 @@ int ffa_driver_register(struct ffa_driver *driver, struct module *owner, {int ret; -if (!driver->probe) +if (!driver->probe || !driver->id_table)return -EINVAL ; driver->driver.bus = &ffa_bus_type;
drivers/firmware/arm_ffa/driver.c +93 -38
267 lines not on this page · raw message
drivers/firmware/efi/efi.c +16 -12
@@ -401,21 +401,11 @@ static void __init efi_debugfs_init(void)static inline void efi_debugfs_init (void ) {}#endif -/* -* We register the efi subsystem with the firmware subsystem and the -* efivars subsystem with the efi subsystem, if the system was booted with -* EFI. -*/ -static int __init efisubsys_init (void ) +static int __init efipostcore_init (void ) { -int error; -if (!efi_enabled (EFI_RUNTIME_SERVICES )) efi.runtime_supported_mask =0 ; -if (!efi_enabled (EFI_BOOT )) -return 0 ; -if (efi.runtime_supported_mask) {/* * Since we process only one efi_runtime_service() at a time, an
@@ -427,9 +417,23 @@ static int __init efisubsys_init(void)pr_err ("Creating efi_rts_wq failed, EFI runtime services disabled.\n" );clear_bit (EFI_RUNTIME_SERVICES , &efi.flags); efi.runtime_supported_mask =0 ; -return 0 ; } } +return 0 ; +} +postcore_initcall (efipostcore_init); + +/* +* We register the efi subsystem with the firmware subsystem and the +* efivars subsystem with the efi subsystem, if the system was booted with +* EFI. +*/ +static int __init efisubsys_init (void ) +{ +int error; + +if (!efi_enabled (EFI_BOOT )) +return 0 ;if (efi_rt_services_supported (EFI_RT_SUPPORTED_TIME_SERVICES ))platform_device_register_simple ("rtc-efi" ,0 ,NULL ,0 );
drivers/fwctl/pds/main.c +3 -0
@@ -362,6 +362,9 @@ static void *pdsfc_fw_rpc(struct fwctl_uctx *uctx, enum fwctl_rpc_scope scope,void *out =NULL ;int err; +if (in_len <sizeof (*rpc)) +return ERR_PTR (-EINVAL ); + err =pdsfc_validate_rpc (pdsfc, rpc, scope);if (err)return ERR_PTR (err);
drivers/gpio/Kconfig +0 -1
@@ -1968,7 +1968,6 @@ menu "Virtual GPIO drivers" config GPIO_AGGREGATOR tristate "GPIO Aggregator" select CONFIGFS_FS - select DEV_SYNC_PROBE help Say yes here to enable the GPIO Aggregator, which provides a way to aggregate existing GPIO lines into a new virtual GPIO chip.
drivers/gpio/gpio-aggregator.c +29 -18
122 lines not on this page · raw message
drivers/gpio/gpiolib-cdev.c +13 -0
@@ -1208,6 +1208,7 @@ static int gpio_v2_line_flags_validate(u64 flags)static int gpio_v2_line_config_validate (struct gpio_v2_line_config *lc,unsigned int num_lines) { +size_t unused_attrs;unsigned int i;u64 flags;int ret;
@@ -1215,9 +1216,21 @@ static int gpio_v2_line_config_validate(struct gpio_v2_line_config *lc,if (lc->num_attrs >GPIO_V2_LINE_NUM_ATTRS_MAX )return -EINVAL ; + unused_attrs =GPIO_V2_LINE_NUM_ATTRS_MAX - lc->num_attrs; +if (!mem_is_zero (lc->padding,sizeof (lc->padding)))return -EINVAL ; +for (i =0 ; i < lc->num_attrs; i++) { +if (lc->attrs[i].attr.padding !=0 ) +return -EINVAL ; + } + +if (unused_attrs) { +if (!mem_is_zero (&lc->attrs[lc->num_attrs], unused_attrs *sizeof (*lc->attrs))) +return -EINVAL ; + } +for (i =0 ; i < num_lines; i++) { flags =gpio_v2_line_config_flags (lc, i); ret =gpio_v2_line_flags_validate (flags);
drivers/gpu/drm/Makefile +2 -1
@@ -152,7 +152,8 @@ drm_kms_helper-y := \ drm_plane_helper.o \ drm_probe_helper.o \ drm_self_refresh_helper.o \ - drm_simple_kms_helper.o + drm_simple_kms_helper.o \ + drm_vblank_helper.o drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c +6 -1
@@ -562,6 +562,11 @@ static void vpe_ring_emit_fence(struct amdgpu_ring *ring, uint64_t addr,amdgpu_ring_write (ring,0 ); } +/* WA: Force sync after TRAP to avoid VPE1 fail to power off */ +if (ring->adev->vpe.collaborate_mode) { +amdgpu_ring_write (ring,VPE_CMD_HEADER (VPE_CMD_OPCODE_COLLAB_SYNC ,0 )); +amdgpu_ring_write (ring,0xabcd ); + } }static void vpe_ring_emit_pipeline_sync (struct amdgpu_ring *ring)
@@ -968,7 +973,7 @@ static const struct amdgpu_ring_funcs vpe_ring_funcs = { .emit_frame_size =5 +/* vpe_ring_init_cond_exec */ 6 +/* vpe_ring_emit_pipeline_sync */ -10 +10 +10 +/* vpe_ring_emit_fence */ +12 +12 +12 +/* vpe_ring_emit_fence */ /* vpe_ring_emit_vm_flush */ SOC15_FLUSH_GPU_TLB_NUM_WREG *3 + SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 6,
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +9 -0
@@ -492,6 +492,10 @@ static enum bp_result get_gpio_i2c_info( - sizeof(struct atom_common_table_header)) /sizeof (struct atom_gpio_pin_assignment ); +if (!bios_get_image (&bp->base,DATA_TABLES (gpio_pin_lut), +le16_to_cpu (header->table_header.structuresize))) +return BP_RESULT_BADBIOSTABLE ; + pin = (struct atom_gpio_pin_assignment *) header->gpio_pin;for (table_index =0 ; table_index < count; table_index++) {
@@ -680,6 +684,11 @@ static enum bp_result bios_parser_get_gpio_pin_info( count = (le16_to_cpu (header->table_header.structuresize) -sizeof (struct atom_common_table_header )) /sizeof (struct atom_gpio_pin_assignment ); + +if (!bios_get_image (&bp->base,DATA_TABLES (gpio_pin_lut), +le16_to_cpu (header->table_header.structuresize))) +return BP_RESULT_BADBIOSTABLE ; +for (i =0 ; i < count; ++i) {if (header->gpio_pin[i].gpio_id != gpio_id)continue ;
drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c +6 -3
@@ -37,10 +37,13 @@ uint8_t *bios_get_image(struct dc_bios *bp, uint32_t offset, uint32_t size) { -if (bp->bios && offset + size < bp->bios_size) -return bp->bios + offset; -else +if (!bp->bios)return NULL ; + +if (offset > bp->bios_size || size > bp->bios_size - offset) +return NULL ; + +return bp->bios + offset; }#include "reg_helper.h"
drivers/gpu/drm/amd/display/dc/core/dc.c +5 -1
@@ -5884,7 +5884,11 @@ bool dc_process_dmub_aux_transfer_async(struct dc *dc,uint8_t action;union dmub_rb_cmd cmd = {0 }; -ASSERT (payload->length <=16 ); +if (link_index >= dc->link_count || !dc->links[link_index]) +return false; + +if (payload->length >sizeof (cmd.dp_aux_access.aux_control.dpaux.data)) +return false; cmd.dp_aux_access.header.type =DMUB_CMD__DP_AUX_ACCESS ; cmd.dp_aux_access.header.payload_bytes =0 ;
drivers/gpu/drm/bridge/chipone-icn6211.c +3 -1
@@ -758,7 +758,9 @@ static int chipone_i2c_probe(struct i2c_client *client)dev_set_drvdata (dev, icn);i2c_set_clientdata (client, icn); -drm_bridge_add (&icn->bridge); + ret =devm_drm_bridge_add (dev, &icn->bridge); +if (ret) +return ret;return chipone_dsi_host_attach (icn); }
drivers/gpu/drm/bridge/ite-it66121.c +5 -0
@@ -1559,6 +1559,11 @@ static int it66121_probe(struct i2c_client *client)return ret; } + ctx->gpio_reset =devm_gpiod_get (dev,"reset" ,GPIOD_OUT_LOW ); +if (IS_ERR (ctx->gpio_reset)) +return dev_err_probe (dev,PTR_ERR (ctx->gpio_reset), +"Failed to get reset GPIO\n" ); +it66121_hw_reset (ctx); ctx->regmap =devm_regmap_init_i2c (client, &it66121_regmap_config);
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +10 -6
@@ -251,7 +251,6 @@ static void ge_b850v3_lvds_remove(void) goto out;drm_bridge_remove (&ge_b850v3_lvds_ptr->bridge); - ge_b850v3_lvds_ptr =NULL ; out:mutex_unlock (&ge_b850v3_lvds_dev_mutex);
@@ -261,6 +260,7 @@ static int ge_b850v3_register(void) {struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;struct device *dev = &stdp4028_i2c->dev; +int ret;/* drm bridge initialization */ ge_b850v3_lvds_ptr->bridge.ops = DRM_BRIDGE_OP_DETECT |
@@ -277,11 +277,15 @@ static int ge_b850v3_register(void)if (!stdp4028_i2c->irq)return 0 ; -return devm_request_threaded_irq (&stdp4028_i2c->dev, - stdp4028_i2c->irq,NULL , - ge_b850v3_lvds_irq_handler, -IRQF_TRIGGER_HIGH |IRQF_ONESHOT , -"ge-b850v3-lvds-dp" , ge_b850v3_lvds_ptr); + ret =devm_request_threaded_irq (&stdp4028_i2c->dev, + stdp4028_i2c->irq,NULL , + ge_b850v3_lvds_irq_handler, +IRQF_TRIGGER_HIGH |IRQF_ONESHOT , +"ge-b850v3-lvds-dp" , ge_b850v3_lvds_ptr); +if (ret) +drm_bridge_remove (&ge_b850v3_lvds_ptr->bridge); + +return ret; }static int stdp4028_ge_b850v3_fw_probe (struct i2c_client *stdp4028_i2c)
drivers/gpu/drm/drm_atomic_helper.c +1 -1
@@ -1913,7 +1913,7 @@ drm_atomic_helper_wait_for_vblanks(struct drm_device *dev, ret =wait_event_timeout (dev->vblank[i].queue, state->crtcs[i].last_vblank_count !=drm_crtc_vblank_count (crtc), -msecs_to_jiffies (100 )); +msecs_to_jiffies (1000 ));WARN (!ret,"[CRTC:%d:%s] vblank wait timed out\n" , crtc->base.id, crtc->name);
drivers/gpu/drm/drm_vblank.c +170 -2
187 lines not on this page · raw message
drivers/gpu/drm/drm_vblank_helper.c new file +176 -0
176 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_dp.c +1 -1
@@ -4899,7 +4899,7 @@ int intel_dp_as_sdp_unpack(struct drm_dp_as_sdp *as_sdp, as_sdp->length = sdp->sdp_header.HB3 &DP_ADAPTIVE_SYNC_SDP_LENGTH ; as_sdp->mode = sdp->db[0 ] &DP_ADAPTIVE_SYNC_SDP_OPERATION_MODE ; as_sdp->vtotal = (sdp->db[2 ] <<8 ) | sdp->db[1 ]; - as_sdp->target_rr = (u64 )sdp->db[3 ] | ((u64 )sdp->db[4 ] &0x3 ); + as_sdp->target_rr = ((sdp->db[4 ] &0x3 ) <<8 ) | sdp->db[3 ]; as_sdp->target_rr_divider = sdp->db[4 ] &0x20 ? true : false;return 0 ;
drivers/gpu/drm/mediatek/mtk_cec.c +1 -1
@@ -240,7 +240,7 @@ static const struct of_device_id mtk_cec_of_ids[] = { };MODULE_DEVICE_TABLE (of, mtk_cec_of_ids); -struct platform_driver mtk_cec_driver = { +static struct platform_driver mtk_cec_driver = { .probe = mtk_cec_probe, .remove = mtk_cec_remove, .driver = {
drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c +1 -1
@@ -328,7 +328,7 @@ static const struct of_device_id mtk_hdmi_ddc_match[] = { };MODULE_DEVICE_TABLE (of, mtk_hdmi_ddc_match); -struct platform_driver mtk_hdmi_ddc_driver = { +static struct platform_driver mtk_hdmi_ddc_driver = { .probe = mtk_hdmi_ddc_probe, .remove = mtk_hdmi_ddc_remove, .driver = {
drivers/gpu/drm/msm/adreno/adreno_gpu.c +6 -0
@@ -419,15 +419,21 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx, *value = vm->mm_range;return 0 ;case MSM_PARAM_HIGHEST_BANK_BIT : +if (!adreno_gpu->ubwc_config) +return UERR (ENOENT , drm,"no UBWC on this platform" ); *value = adreno_gpu->ubwc_config->highest_bank_bit;return 0 ;case MSM_PARAM_RAYTRACING : *value = adreno_gpu->has_ray_tracing;return 0 ;case MSM_PARAM_UBWC_SWIZZLE : +if (!adreno_gpu->ubwc_config) +return UERR (ENOENT , drm,"no UBWC on this platform" ); *value = adreno_gpu->ubwc_config->ubwc_swizzle;return 0 ;case MSM_PARAM_MACROTILE_MODE : +if (!adreno_gpu->ubwc_config) +return UERR (ENOENT , drm,"no UBWC on this platform" ); *value = adreno_gpu->ubwc_config->macrotile_mode;return 0 ;case MSM_PARAM_UCHE_TRAP_BASE :
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c +2 -1
@@ -5,6 +5,7 @@#include <drm/drm_edid.h> #include <drm/drm_framebuffer.h> +#include <drm/drm_managed.h> #include "dpu_writeback.h"
@@ -125,7 +126,7 @@ int dpu_writeback_init(struct drm_device *dev, struct drm_encoder *enc,struct dpu_wb_connector *dpu_wb_conn;int rc =0 ; - dpu_wb_conn =devm_kzalloc (dev->dev,sizeof (*dpu_wb_conn),GFP_KERNEL ); + dpu_wb_conn =drmm_kzalloc (dev,sizeof (*dpu_wb_conn),GFP_KERNEL );if (!dpu_wb_conn)return -ENOMEM ;
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c +18 -6
@@ -9,7 +9,7 @@#include "msm_disp_snapshot.h" -static void msm_disp_state_dump_regs (u32 **reg,u32 aligned_len,void __iomem *base_addr) +static void msm_disp_state_dump_regs (u32 **reg,u32 len,void __iomem *base_addr) {u32 len_padded;u32 num_rows;
@@ -19,11 +19,11 @@ static void msm_disp_state_dump_regs(u32 **reg, u32 aligned_len, void __iomem *bvoid __iomem *end_addr;int i; - len_padded = aligned_len *REG_DUMP_ALIGN ; - num_rows = aligned_len /REG_DUMP_ALIGN ; + len_padded =round_up (len,REG_DUMP_ALIGN ); + num_rows =DIV_ROUND_UP (len,REG_DUMP_ALIGN ); addr = base_addr; - end_addr = base_addr + aligned_len; + end_addr = base_addr + len; *reg =kvzalloc (len_padded,GFP_KERNEL );if (!*reg)
@@ -48,8 +48,8 @@ static void msm_disp_state_dump_regs(u32 **reg, u32 aligned_len, void __iomem *bstatic void msm_disp_state_print_regs (const u32 *dump_addr,u32 len,void __iomem *base_addr,struct drm_printer *p) { +void __iomem *addr, *end_addr;int i; -void __iomem *addr;u32 num_rows;if (!dump_addr) {
@@ -58,6 +58,7 @@ static void msm_disp_state_print_regs(const u32 *dump_addr, u32 len, } addr = base_addr; + end_addr = base_addr + len; num_rows = len /REG_DUMP_ALIGN ;for (i =0 ; i < num_rows; i++) {
@@ -67,6 +68,17 @@ static void msm_disp_state_print_regs(const u32 *dump_addr, u32 len, dump_addr[i * 4 + 2], dump_addr[i * 4 + 3]); addr +=REG_DUMP_ALIGN ; } + +if (addr != end_addr) { +drm_printf (p,"0x%lx : %08x" , + (unsigned long )(addr - base_addr), + dump_addr[i *4 ]); +if (addr +0x4 < end_addr) +drm_printf (p," %08x" , dump_addr[i *4 +1 ]); +if (addr +0x8 < end_addr) +drm_printf (p," %08x" , dump_addr[i *4 +2 ]); +drm_printf (p,"\n" ); + } }void msm_disp_state_print (struct msm_disp_state *state,struct drm_printer *p)
@@ -186,7 +198,7 @@ void msm_disp_snapshot_add_block(struct msm_disp_state *disp_state, u32 len,va_end (va);INIT_LIST_HEAD (&new_blk->node); - new_blk->size =ALIGN (len,REG_DUMP_ALIGN ); + new_blk->size = len; new_blk->base_addr = base_addr;msm_disp_state_dump_regs (&new_blk->state, new_blk->size, base_addr);
drivers/gpu/drm/msm/dsi/dsi_host.c +1 -0
@@ -2003,6 +2003,7 @@ int msm_dsi_host_init(struct msm_dsi *msm_dsi)/* fixup base address by io offset */ msm_host->ctrl_base += cfg->io_offset; + msm_host->ctrl_size -= cfg->io_offset; ret = devm_regulator_bulk_get_const(&pdev->dev, cfg->num_regulators, cfg->regulator_data,
drivers/gpu/drm/msm/msm_gem_shrinker.c +16 -24
@@ -43,8 +43,7 @@ msm_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc) }static bool -with_vm_locks (struct ww_acquire_ctx *ticket, -void (*fn)(struct drm_gem_object *obj), +with_vm_locks (void (*fn)(struct drm_gem_object *obj),struct drm_gem_object *obj) {/*
@@ -52,7 +51,7 @@ with_vm_locks(struct ww_acquire_ctx *ticket,* success paths */ struct drm_gpuvm_bo *vm_bo, *last_locked =NULL ; -int ret =0 ; +bool locked = true; drm_gem_for_each_gpuvm_bo (vm_bo, obj) {struct dma_resv *resv =drm_gpuvm_resv (vm_bo->vm);
@@ -60,23 +59,14 @@ with_vm_locks(struct ww_acquire_ctx *ticket,if (resv == obj->resv)continue ; - ret =dma_resv_lock (resv, ticket); - -/* -* Since we already skip the case when the VM and obj -* share a resv (ie. _NO_SHARE objs), we don't expect -* to hit a double-locking scenario... which the lock -* unwinding cannot really cope with. -*/ -WARN_ON (ret == -EALREADY ); -/* -* Don't bother with slow-lock / backoff / retry sequence, -* if we can't get the lock just give up and move on to -* the next object. +* dma_resv_lock can't be used due to acquiring 'ticket' before the +* fs_reclaim lock, which is held in shrinker context */ -if (ret) +if (!dma_resv_trylock (resv)) { + locked = false; goto out_unlock; + }/* * Hold a ref to prevent the vm_bo from being freed
@@ -108,11 +98,11 @@ with_vm_locks(struct ww_acquire_ctx *ticket, } } -return ret ==0 ; +return locked; }static bool -purge (struct drm_gem_object *obj,struct ww_acquire_ctx *ticket) +purge (struct drm_gem_object *obj,struct ww_acquire_ctx *unused) {if (!is_purgeable (to_msm_bo (obj)))return false;
@@ -120,11 +110,11 @@ purge(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket)if (msm_gem_active (obj))return false; -return with_vm_locks (ticket, msm_gem_purge, obj); +return with_vm_locks (msm_gem_purge, obj); }static bool -evict (struct drm_gem_object *obj,struct ww_acquire_ctx *ticket) +evict (struct drm_gem_object *obj,struct ww_acquire_ctx *unused) {if (is_unevictable (to_msm_bo (obj)))return false;
@@ -132,7 +122,7 @@ evict(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket)if (msm_gem_active (obj))return false; -return with_vm_locks (ticket, msm_gem_evict, obj); +return with_vm_locks (msm_gem_evict, obj); } static bool
@@ -164,7 +154,6 @@ static unsigned long msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc) { struct msm_drm_private *priv = shrinker->private_data; -struct ww_acquire_ctx ticket; struct { struct drm_gem_lru *lru; bool (*shrink)(struct drm_gem_object *obj, struct ww_acquire_ctx *ticket);
@@ -185,11 +174,14 @@ msm_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)for (unsigned i =0 ; (nr >0 ) && (i <ARRAY_SIZE (stages)); i++) {if (!stages[i].cond)continue ; +/* +* 'ticket' not needed on trylock paths +*/ stages[i].freed =drm_gem_lru_scan (stages[i].lru, nr, &stages[i].remaining, stages[i].shrink, - &ticket); +NULL ); nr -= stages[i].freed; freed += stages[i].freed; remaining += stages[i].remaining;
drivers/gpu/drm/msm/msm_iommu.c +3 -2
@@ -677,7 +677,7 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova, int prot) {struct msm_iommu *iommu =to_msm_iommu (mmu); -size_t ret; +ssize_t ret;WARN_ON (off !=0 );
@@ -686,7 +686,8 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova, iova |=GENMASK_ULL (63 ,49 ); ret =iommu_map_sgtable (iommu->domain, iova, sgt, prot); -WARN_ON (!ret); +if (ret <0 ) +return ret;return (ret == len) ?0 : -EINVAL ; }
drivers/gpu/drm/v3d/v3d_sched.c +1 -15
@@ -103,20 +103,6 @@ v3d_performance_query_info_free(struct v3d_performance_query_info *query_info, } } -static void -v3d_cpu_job_free (struct drm_sched_job *sched_job) -{ -struct v3d_cpu_job *job =to_cpu_job (sched_job); - -v3d_timestamp_query_info_free (&job->timestamp_query, - job->timestamp_query.count); - -v3d_performance_query_info_free (&job->performance_query, - job->performance_query.count); - -v3d_job_cleanup (&job->base); -} -static void v3d_switch_perfmon (struct v3d_dev *v3d,struct v3d_job *job) {
@@ -860,7 +846,7 @@ static const struct drm_sched_backend_ops v3d_cache_clean_sched_ops = {static const struct drm_sched_backend_ops v3d_cpu_sched_ops = { .run_job = v3d_cpu_job_run, - .free_job = v3d_cpu_job_free + .free_job = v3d_sched_job_free }; static int
drivers/gpu/drm/v3d/v3d_submit.c +19 -3
@@ -119,6 +119,24 @@ v3d_render_job_free(struct kref *ref)v3d_job_free (ref); } +static void +v3d_cpu_job_free (struct kref *ref) +{ + struct v3d_cpu_job *job = container_of(ref, struct v3d_cpu_job, + base.refcount); + +v3d_timestamp_query_info_free (&job->timestamp_query, + job->timestamp_query.count); + +v3d_performance_query_info_free (&job->performance_query, + job->performance_query.count); + +if (job->indirect_csd.indirect) +drm_gem_object_put (job->indirect_csd.indirect); + +v3d_job_free (ref); +} +void v3d_job_cleanup (struct v3d_job *job) {if (!job)
@@ -1321,7 +1339,7 @@ v3d_submit_cpu_ioctl(struct drm_device *dev, void *data,trace_v3d_submit_cpu_ioctl (&v3d->drm, cpu_job->job_type); ret =v3d_job_init (v3d, file_priv, &cpu_job->base, - v3d_job_free,0 , &se,V3D_CPU ); + v3d_cpu_job_free,0 , &se,V3D_CPU );if (ret) {v3d_job_deallocate ((void *)&cpu_job); goto fail;
@@ -1404,8 +1422,6 @@ v3d_submit_cpu_ioctl(struct drm_device *dev, void *data,v3d_job_cleanup ((void *)csd_job);v3d_job_cleanup (clean_job);v3d_put_multisync_post_deps (&se); -kvfree (cpu_job->timestamp_query.queries); -kvfree (cpu_job->performance_query.queries);return ret; }
drivers/gpu/drm/virtio/virtgpu_drv.h +1 -0
@@ -317,6 +317,7 @@ virtio_gpu_array_from_handles(struct drm_file *drm_file, u32 *handles, u32 nentsvoid virtio_gpu_array_add_obj (struct virtio_gpu_object_array *objs,struct drm_gem_object *obj);int virtio_gpu_array_lock_resv (struct virtio_gpu_object_array *objs); +int virtio_gpu_lock_one_resv_uninterruptible (struct virtio_gpu_object_array *objs);void virtio_gpu_array_unlock_resv (struct virtio_gpu_object_array *objs);void virtio_gpu_array_add_fence (struct virtio_gpu_object_array *objs,struct dma_fence *fence);
drivers/gpu/drm/virtio/virtgpu_gem.c +17 -0
@@ -238,6 +238,23 @@ int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs)return ret; } +int virtio_gpu_lock_one_resv_uninterruptible (struct virtio_gpu_object_array *objs) +{ +int ret; + +if (objs->nents !=1 ) +return -EINVAL ; + +dma_resv_lock (objs->objs[0 ]->resv,NULL ); + + ret =dma_resv_reserve_fences (objs->objs[0 ]->resv,1 ); +if (ret) { +virtio_gpu_array_unlock_resv (objs); +return ret; + } +return 0 ; +} +void virtio_gpu_array_unlock_resv (struct virtio_gpu_object_array *objs) {if (objs->nents ==1 ) {
drivers/gpu/drm/virtio/virtgpu_plane.c +8 -2
@@ -214,7 +214,10 @@ static void virtio_gpu_resource_flush(struct drm_plane *plane,if (!objs)return ;virtio_gpu_array_add_obj (objs, vgfb->base.obj[0 ]); -virtio_gpu_array_lock_resv (objs); +if (virtio_gpu_lock_one_resv_uninterruptible (objs)) { +virtio_gpu_array_put_free (objs); +return ; + }virtio_gpu_cmd_resource_flush (vgdev, bo->hw_res_handle, x, y, width, height, objs, vgplane_st->fence);
@@ -458,7 +461,10 @@ static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,if (!objs)return ;virtio_gpu_array_add_obj (objs, vgfb->base.obj[0 ]); -virtio_gpu_array_lock_resv (objs); +if (virtio_gpu_lock_one_resv_uninterruptible (objs)) { +virtio_gpu_array_put_free (objs); +return ; + } virtio_gpu_cmd_transfer_to_host_2d (vgdev, 0, plane->state->crtc_w,
drivers/gpu/drm/vkms/vkms_crtc.c +7 -76
122 lines not on this page · raw message
drivers/gpu/drm/vkms/vkms_drv.h +0 -2
@@ -215,8 +215,6 @@ struct vkms_output {struct drm_crtc crtc;struct drm_writeback_connector wb_connector;struct drm_encoder wb_encoder; -struct hrtimer vblank_hrtimer; -ktime_t period_ns;struct workqueue_struct *composer_workq;spinlock_t lock;
drivers/gpu/drm/xe/display/xe_hdcp_gsc.c +10 -2
@@ -35,11 +35,19 @@ bool intel_hdcp_gsc_check_status(struct drm_device *drm)struct xe_device *xe =to_xe_device (drm);struct xe_tile *tile =xe_device_get_root_tile (xe);struct xe_gt *gt = tile->media_gt; -struct xe_gsc *gsc = >->uc.gsc; +struct xe_gsc *gsc;bool ret = true;unsigned int fw_ref; -if (!gsc || !xe_uc_fw_is_enabled (&gsc->fw)) { +if (!gt) { +drm_dbg_kms (&xe->drm, +"not checking GSC status for HDCP2.x: media GT not present or disabled\n" ); +return false; + } + + gsc = >->uc.gsc; + +if (!xe_uc_fw_is_enabled (&gsc->fw)) {drm_dbg_kms (&xe->drm,"GSC Components not ready for HDCP2.x\n" );return false;
drivers/gpu/drm/xe/xe_gsc.c +1 -4
@@ -487,8 +487,7 @@ int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc) EXEC_QUEUE_FLAG_PERMANENT, 0);if (IS_ERR (q)) {xe_gt_err (gt,"Failed to create queue for GSC submission\n" ); - err =PTR_ERR (q); - goto out_bo; +return PTR_ERR (q); } wq =alloc_ordered_workqueue ("gsc-ordered-wq" ,0 );
@@ -511,8 +510,6 @@ int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc) out_q:xe_exec_queue_put (q); -out_bo: -xe_bo_unpin_map_no_vm (bo);return err; }
drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.c +5 -1
@@ -114,8 +114,10 @@ int xe_gt_sriov_pf_monitor_process_guc2pf(struct xe_gt *gt, const u32 *msg, u32* VFs with no events are not printed. * * This function can only be called on PF. +* +* Return: always 0 */ -void xe_gt_sriov_pf_monitor_print_events (struct xe_gt *gt,struct drm_printer *p) +int xe_gt_sriov_pf_monitor_print_events (struct xe_gt *gt,struct drm_printer *p) {unsigned int n, total_vfs =xe_gt_sriov_pf_get_totalvfs (gt);const struct xe_gt_sriov_monitor *data;
@@ -144,4 +146,6 @@ void xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p#undef __format#undef __value } + +return 0 ; }
drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.h +1 -1
@@ -13,7 +13,7 @@ struct drm_printer;struct xe_gt ;void xe_gt_sriov_pf_monitor_flr (struct xe_gt *gt,u32 vfid); -void xe_gt_sriov_pf_monitor_print_events (struct xe_gt *gt,struct drm_printer *p); +int xe_gt_sriov_pf_monitor_print_events (struct xe_gt *gt,struct drm_printer *p);#ifdef CONFIG_PCI_IOV int xe_gt_sriov_pf_monitor_process_guc2pf (struct xe_gt *gt,const u32 *msg,u32 len);
drivers/gpu/drm/xe/xe_gt_sriov_vf.c +18 -6
@@ -1030,13 +1030,15 @@ void xe_gt_sriov_vf_write32(struct xe_gt *gt, struct xe_reg reg, u32 val) }/** -* xe_gt_sriov_vf_print_config - Print VF self config. +* xe_gt_sriov_vf_print_config() - Print VF self config. * @gt: the &xe_gt * @p: the &drm_printer * * This function is for VF use only. +* +* Return: always 0. */ -void xe_gt_sriov_vf_print_config (struct xe_gt *gt,struct drm_printer *p) +int xe_gt_sriov_vf_print_config (struct xe_gt *gt,struct drm_printer *p) {struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;struct xe_device *xe =gt_to_xe (gt);
@@ -1060,16 +1062,20 @@ void xe_gt_sriov_vf_print_config(struct xe_gt *gt, struct drm_printer *p)drm_printf (p,"GuC contexts:\t%u\n" , config->num_ctxs);drm_printf (p,"GuC doorbells:\t%u\n" , config->num_dbs); + +return 0 ; }/** -* xe_gt_sriov_vf_print_runtime - Print VF's runtime regs received from PF. +* xe_gt_sriov_vf_print_runtime() - Print VF's runtime regs received from PF. * @gt: the &xe_gt * @p: the &drm_printer * * This function is for VF use only. +* +* Return: always 0. */ -void xe_gt_sriov_vf_print_runtime (struct xe_gt *gt,struct drm_printer *p) +int xe_gt_sriov_vf_print_runtime (struct xe_gt *gt,struct drm_printer *p) {struct vf_runtime_reg *vf_regs = gt->sriov.vf.runtime.regs;unsigned int size = gt->sriov.vf.runtime.num_regs;
@@ -1078,16 +1084,20 @@ void xe_gt_sriov_vf_print_runtime(struct xe_gt *gt, struct drm_printer *p)for (; size--; vf_regs++)drm_printf (p,"%#x = %#x\n" , vf_regs->offset, vf_regs->value); + +return 0 ; }/** -* xe_gt_sriov_vf_print_version - Print VF ABI versions. +* xe_gt_sriov_vf_print_version() - Print VF ABI versions. * @gt: the &xe_gt * @p: the &drm_printer * * This function is for VF use only. +* +* Return: always 0. */ -void xe_gt_sriov_vf_print_version (struct xe_gt *gt,struct drm_printer *p) +int xe_gt_sriov_vf_print_version (struct xe_gt *gt,struct drm_printer *p) {struct xe_device *xe =gt_to_xe (gt);struct xe_uc_fw_version *guc_version = >->sriov.vf.guc_version;
@@ -1117,4 +1127,6 @@ void xe_gt_sriov_vf_print_version(struct xe_gt *gt, struct drm_printer *p) GUC_RELAY_VERSION_LATEST_MAJOR, GUC_RELAY_VERSION_LATEST_MINOR);drm_printf (p,"\thandshake:\t%u.%u\n" , pf_version->major, pf_version->minor); +
Lines of this file are not shown. View the raw message.
drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/iommu/amd/debugfs.c +20 -23
43 lines not on this page · raw message
drivers/net/dsa/mt7530.c +29 -18
47 lines not on this page · raw message
drivers/net/ethernet/airoha/airoha_eth.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/debugfs.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/dev.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/devlink.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +4 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_dcb_lib.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_main.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ptp_hw.c +26 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_txrx.c +4 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/virt/queues.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_ptp.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_tsn.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/cgx.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/rep.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +4 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/ipsec_fs.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan966x/lan966x_main.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/hw_channel.c +19 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qed/qed_cxt.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/icssm/icssm_prueth.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/dp_rx.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/hal_rx.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/testmode.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mld/link.c +6 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mld/tx.c +14 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +18 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/utils.c +4 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/wlan.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/phy/marvell/phy-mvebu-a3700-utmi.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/phy/samsung/phy-exynos5-usbdrd.c +4 -3
Lines of this file are not shown. View the raw message.
drivers/pinctrl/meson/pinctrl-amlogic-a4.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzg2l.c +15 -8
Lines of this file are not shown. View the raw message.
drivers/platform/surface/surface_aggregator_registry.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/regulator/tps65219-regulator.c +95 -40
135 lines not on this page · raw message
drivers/virt/coco/sev-guest/sev-guest.c +7 -3
Lines of this file are not shown. View the raw message.
fs/btrfs/extent-tree.c +23 -32
55 lines not on this page · raw message
fs/btrfs/ioctl.c +16 -44
60 lines not on this page · raw message
fs/btrfs/qgroup.c +157 -113
270 lines not on this page · raw message
fs/btrfs/tree-log.c +19 -23
42 lines not on this page · raw message
fs/netfs/buffered_read.c +34 -30
64 lines not on this page · raw message
fs/netfs/buffered_write.c +110 -62
172 lines not on this page · raw message
fs/netfs/direct_read.c +13 -29
42 lines not on this page · raw message
fs/netfs/write_issue.c +31 -15
46 lines not on this page · raw message
fs/smb/server/smbacl.c +59 -19
78 lines not on this page · raw message
fs/smb/server/vfs_cache.c +89 -31
120 lines not on this page · raw message
include/asm-generic/ring_buffer.h new file +13 -0
Lines of this file are not shown. View the raw message.
include/drm/drm_modeset_helper_vtables.h +12 -0
Lines of this file are not shown. View the raw message.
include/drm/drm_vblank_helper.h new file +56 -0
56 lines not on this page · raw message
include/linux/netfilter_arp/arp_tables.h +0 -1
Lines of this file are not shown. View the raw message.
include/linux/netfilter_ipv4/ip_tables.h +0 -1
Lines of this file are not shown. View the raw message.
include/linux/netfilter_ipv6/ip6_tables.h +0 -1
Lines of this file are not shown. View the raw message.
include/linux/soc/airoha/airoha_offload.h +3 -3
Lines of this file are not shown. View the raw message.
kernel/sched/core.c +61 -98
159 lines not on this page · raw message
kernel/sched/ext.c +21 -23
44 lines not on this page · raw message
kernel/sched/syscalls.c +53 -42
95 lines not on this page · raw message
kernel/trace/fprobe.c +137 -63
200 lines not on this page · raw message
net/batman-adv/bat_iv_ogm.c +65 -17
82 lines not on this page · raw message
net/batman-adv/bat_v_ogm.c +35 -24
59 lines not on this page · raw message
net/batman-adv/bridge_loop_avoidance.c +73 -36
109 lines not on this page · raw message
net/batman-adv/fragmentation.c +52 -6
58 lines not on this page · raw message
net/batman-adv/tp_meter.c +75 -42
117 lines not on this page · raw message
net/batman-adv/translation-table.c +45 -10
55 lines not on this page · raw message
net/batman-adv/types.h +44 -15
59 lines not on this page · raw message
net/bluetooth/af_bluetooth.c +75 -22
97 lines not on this page · raw message
net/bluetooth/l2cap_sock.c +44 -7
51 lines not on this page · raw message
net/bridge/netfilter/ebtables.c +43 -28
71 lines not on this page · raw message
net/ipv4/netfilter/iptable_security.c +14 -13
Lines of this file are not shown. View the raw message.
net/ipv6/netfilter/ip6table_security.c +14 -13
Lines of this file are not shown. View the raw message.
net/mac80211/parse.c +31 -40
71 lines not on this page · raw message
net/mptcp/pm.c +46 -10
56 lines not on this page · raw message
net/netfilter/ipset/ip_set_hash_ipmark.c +5 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipport.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipportip.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipportnet.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/x_tables.c +86 -14
100 lines not on this page · raw message
net/shaper/shaper.c +154 -66
220 lines not on this page · raw message
net/tls/tls_sw.c +32 -14
46 lines not on this page · raw message
net/vmw_vsock/virtio_transport_common.c +49 -54
103 lines not on this page · raw message
sound/hda/codecs/side-codecs/cs35l41_hda.c +3 -1
Lines of this file are not shown. View the raw message.
sound/hda/codecs/side-codecs/cs35l56_hda.c +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/amd/acp/acp-sdw-legacy-mach.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/hmm-tests.c +50 -0
50 lines not on this page · raw message
tools/testing/selftests/mm/run_vmtests.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/lib/xdp_native.bpf.c +30 -25
55 lines not on this page · 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.