Linux 6.18.55
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.18.55 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/arch/arm64/booting.rst | 1 Documentation/arch/s390/pci.rst | 152 ++- Makefile | 2 arch/arm64/include/asm/el2_setup.h | 9 arch/arm64/include/asm/io.h | 3 arch/arm64/include/asm/kvm_pkvm.h | 10 arch/arm64/kernel/cpu_errata.c | 15 arch/arm64/kvm/arm.c | 4 arch/arm64/kvm/emulate-nested.c | 2 arch/arm64/kvm/hyp/nvhe/pkvm.c | 38 arch/arm64/kvm/hyp/nvhe/setup.c | 10 arch/arm64/kvm/hyp/nvhe/sys_regs.c | 5 arch/arm64/kvm/hypercalls.c | 3 arch/arm64/kvm/mmu.c | 15 arch/arm64/kvm/nested.c | 15 arch/arm64/kvm/sys_regs.c | 1 arch/arm64/kvm/vgic/vgic-its.c | 43 - arch/arm64/net/bpf_jit_comp.c | 2 arch/mips/net/bpf_jit_comp32.c | 2 arch/mips/net/bpf_jit_comp64.c | 3 arch/parisc/include/asm/thread_info.h | 2 arch/riscv/kvm/aia_imsic.c | 11 arch/riscv/kvm/mmu.c | 2 arch/riscv/kvm/nacl.c | 20 arch/riscv/kvm/vcpu_exit.c | 2 arch/riscv/kvm/vcpu_pmu.c | 33 arch/riscv/kvm/vcpu_sbi_hsm.c | 4 arch/riscv/kvm/vcpu_timer.c | 5 arch/s390/crypto/hmac_s390.c | 5 arch/s390/include/asm/debug.h | 8 arch/s390/kernel/debug.c | 15 arch/s390/kernel/uv.c | 8 arch/s390/kvm/interrupt.c | 70 - arch/s390/pci/pci_event.c | 7 arch/s390/pci/pci_report.c | 32 arch/s390/pci/pci_report.h | 4 arch/x86/boot/startup/sev-startup.c | 3 arch/x86/coco/sev/Makefile | 2 arch/x86/coco/sev/core.c | 388 ---------- arch/x86/coco/sev/internal.h | 119 +++ arch/x86/coco/sev/noinstr.c | 7 arch/x86/coco/sev/svsm.c | 362 +++++++++ arch/x86/coco/sev/vc-handle.c | 3 arch/x86/events/intel/core.c | 79 +- arch/x86/events/intel/ds.c | 36 arch/x86/include/asm/sev-internal.h | 87 -- arch/x86/kernel/cpu/mce/core.c | 27 arch/x86/kvm/pmu.c | 8 arch/x86/kvm/svm/sev.c | 18 arch/x86/kvm/vmx/pmu_intel.c | 3 arch/x86/pci/fixup.c | 99 ++ drivers/ata/libata-scsi.c | 10 drivers/bluetooth/btintel_pcie.c | 16 drivers/bluetooth/btnxpuart.c | 8 drivers/dpll/dpll_netlink.c | 3 drivers/gpio/gpio-arizona.c | 8 drivers/gpio/gpio-tps65219.c | 12 drivers/gpio/gpio-zynq.c | 10 drivers/gpio/gpiolib-cdev.c | 32 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 12 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 3 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 3 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 62 - drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.h | 28 drivers/gpu/drm/amd/display/dc/dml/Makefile | 6 drivers/gpu/drm/bridge/samsung-dsim.c | 2 drivers/gpu/drm/clients/drm_fbdev_client.c | 28 drivers/gpu/drm/clients/drm_log.c | 4 drivers/gpu/drm/drm_client_event.c | 20 drivers/gpu/drm/drm_fb_helper.c | 24 drivers/gpu/drm/drm_file.c | 2 drivers/gpu/drm/drm_modeset_helper.c | 6 drivers/gpu/drm/i915/display/intel_cursor.c | 7 drivers/gpu/drm/i915/display/intel_display_types.h | 2 drivers/gpu/drm/i915/display/intel_dp_mst.c | 24 drivers/gpu/drm/i915/display/intel_dp_mst.h | 2 drivers/gpu/drm/i915/display/intel_link_bw.c | 3 drivers/gpu/drm/i915/display/intel_psr.c | 26 drivers/gpu/drm/i915/display/intel_quirks.c | 37 drivers/gpu/drm/i915/display/intel_quirks.h | 2 drivers/gpu/drm/i915/display/skl_universal_plane.c | 9 drivers/gpu/drm/i915/gem/i915_gem_object.c | 2 drivers/gpu/drm/i915/i915_driver.c | 6 drivers/gpu/drm/imagination/pvr_free_list.c | 15 drivers/gpu/drm/imagination/pvr_mmu.c | 19 drivers/gpu/drm/imagination/pvr_mmu.h | 2 drivers/gpu/drm/imagination/pvr_vm.c | 4 drivers/gpu/drm/nouveau/nouveau_bo.c | 3 drivers/gpu/drm/nouveau/nouveau_connector.c | 5 drivers/gpu/drm/nouveau/nouveau_display.c | 4 drivers/gpu/drm/nouveau/nouveau_drm.c | 5 drivers/gpu/drm/nouveau/nouveau_gem.c | 2 drivers/gpu/drm/nouveau/nouveau_sched.c | 2 drivers/gpu/drm/nouveau/nouveau_sched.h | 1 drivers/gpu/drm/nouveau/nouveau_uvmm.c | 13 drivers/gpu/drm/nouveau/nvif/vmm.c | 1 drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 3 drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 23 drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 2 drivers/gpu/drm/radeon/radeon_device.c | 4 drivers/gpu/drm/virtio/virtgpu_drv.h | 5 drivers/gpu/drm/virtio/virtgpu_gem.c | 2 drivers/gpu/drm/virtio/virtgpu_ioctl.c | 49 + drivers/gpu/drm/virtio/virtgpu_prime.c | 2 drivers/gpu/drm/virtio/virtgpu_submit.c | 11 drivers/gpu/drm/virtio/virtgpu_vq.c | 46 + drivers/gpu/drm/virtio/virtgpu_vram.c | 17 drivers/gpu/drm/xe/display/xe_display.c | 6 drivers/gpu/drm/xe/xe_bo.c | 7 drivers/gpu/drm/xe/xe_bo.h | 19 drivers/gpu/drm/xe/xe_hw_engine.c | 27 drivers/gpu/drm/xe/xe_vm.c | 21 drivers/hid/amd-sfh-hid/amd_sfh_common.h | 4 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 10 drivers/hid/bpf/hid_bpf_dispatch.c | 12 drivers/hid/hid-alps.c | 31 drivers/hid/hid-ids.h | 3 drivers/hid/hid-multitouch.c | 29 drivers/hid/hid-quirks.c | 3 drivers/hid/wacom_sys.c | 5 drivers/i2c/busses/i2c-qcom-geni.c | 38 drivers/net/bonding/bond_main.c | 2 drivers/net/dsa/mt7530-mdio.c | 20 drivers/net/dsa/mt7530.c | 3 drivers/net/ethernet/airoha/airoha_npu.c | 18 drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 3 drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 3 drivers/net/ethernet/atheros/atlx/atl1.c | 3 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 34 drivers/net/ethernet/broadcom/tg3.c | 15 drivers/net/ethernet/brocade/bna/bnad.c | 24 drivers/net/ethernet/cadence/macb_main.c | 14 drivers/net/ethernet/freescale/fman/fman.c | 1 drivers/net/ethernet/google/gve/gve.h | 12 drivers/net/ethernet/google/gve/gve_adminq.c | 12 drivers/net/ethernet/google/gve/gve_desc_dqo.h | 5 drivers/net/ethernet/google/gve/gve_ethtool.c | 99 +- drivers/net/ethernet/google/gve/gve_main.c | 93 +- drivers/net/ethernet/google/gve/gve_tx_dqo.c | 71 + drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 3 drivers/net/ethernet/marvell/octeontx2/af/common.h | 45 + drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c | 104 -- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 6 drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c | 45 - drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c | 4 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c | 15 drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.h | 2 drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c | 5 drivers/net/ethernet/meta/fbnic/fbnic_csr.h | 5 drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c | 48 + drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c | 13 drivers/net/ethernet/meta/fbnic/fbnic_fw.c | 74 + drivers/net/ethernet/meta/fbnic/fbnic_fw.h | 2 drivers/net/ethernet/meta/fbnic/fbnic_pci.c | 18 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c | 4 drivers/net/ethernet/netronome/nfp/crypto/ipsec.c | 3 drivers/net/ethernet/spacemit/k1_emac.c | 3 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 5 drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 4 drivers/net/ethernet/stmicro/stmmac/hwif.h | 2 drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 4 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 1 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c | 109 ++ drivers/net/ethernet/ti/netcp_core.c | 2 drivers/net/ethernet/wangxun/txgbe/txgbe_fdir.c | 13 drivers/net/macsec.c | 84 +- drivers/net/ovpn/netlink.c | 108 ++ drivers/net/ovpn/peer.c | 121 ++- drivers/net/ovpn/peer.h | 25 drivers/net/ovpn/udp.c | 193 ++++ drivers/net/pcs/pcs-rzn1-miic.c | 3 drivers/net/pcs/pcs-xpcs.c | 4 drivers/net/phy/micrel.c | 1 drivers/net/phy/phylink.c | 20 drivers/net/usb/catc.c | 15 drivers/net/usb/cdc_mbim.c | 5 drivers/net/usb/lan78xx.c | 2 drivers/net/usb/sr9700.c | 3 drivers/net/veth.c | 2 drivers/net/virtio_net.c | 9 drivers/net/vrf.c | 2 drivers/net/vxlan/vxlan_core.c | 6 drivers/nfc/microread/microread.c | 6 drivers/nfc/nfcmrvl/fw_dnld.c | 11 drivers/nfc/pn533/pn533.c | 14 drivers/nfc/pn533/pn533.h | 4 drivers/nfc/pn533/usb.c | 4 drivers/nfc/pn544/pn544.c | 7 drivers/nfc/port100.c | 7 drivers/nfc/st21nfca/core.c | 12 drivers/nfc/st21nfca/i2c.c | 29 drivers/nfc/trf7970a.c | 4 drivers/nfc/virtual_ncidev.c | 3 drivers/pci/of_property.c | 11 drivers/pci/setup-bus.c | 23 drivers/pinctrl/meson/pinctrl-meson-s4.c | 2 drivers/pinctrl/pinctrl-single.c | 3 drivers/pinctrl/sunxi/pinctrl-sun55i-a523-r.c | 2 drivers/pinctrl/sunxi/pinctrl-sun55i-a523.c | 2 drivers/pinctrl/sunxi/pinctrl-sunxi.c | 82 +- drivers/pinctrl/sunxi/pinctrl-sunxi.h | 9 drivers/remoteproc/qcom_q6v5_adsp.c | 8 drivers/s390/cio/chp.c | 3 drivers/s390/cio/cio.c | 11 drivers/s390/cio/cio.h | 5 drivers/s390/cio/cmf.c | 2 drivers/s390/cio/device.c | 9 drivers/s390/cio/device_fsm.c | 3 drivers/s390/cio/device_ops.c | 23 drivers/s390/cio/vfio_ccw_fsm.c | 2 drivers/s390/crypto/vfio_ap_ops.c | 18 drivers/scsi/libiscsi_tcp.c | 3 drivers/scsi/megaraid/megaraid_sas_base.c | 4 drivers/scsi/sd_zbc.c | 8 drivers/thermal/gov_step_wise.c | 10 fs/autofs/inode.c | 4 fs/bpf_fs_kfuncs.c | 4 fs/erofs/fscache.c | 2 fs/fs-writeback.c | 25 fs/hfsplus/super.c | 1 fs/inode.c | 11 fs/kernfs/mount.c | 4 fs/ntfs3/inode.c | 7 fs/ocfs2/namei.c | 9 fs/ocfs2/xattr.c | 13 fs/ocfs2/xattr.h | 8 fs/smb/client/cached_dir.c | 32 fs/smb/client/smb2inode.c | 4 fs/smb/client/smb2ops.c | 28 fs/smb/client/smb2pdu.c | 51 + fs/squashfs/xz_wrapper.c | 6 fs/super.c | 43 - fs/xfs/libxfs/xfs_metafile.c | 8 fs/xfs/libxfs/xfs_rtrefcount_btree.c | 4 fs/xfs/scrub/dir_repair.c | 19 fs/xfs/scrub/health.c | 6 fs/xfs/scrub/inode.c | 2 fs/xfs/scrub/inode_repair.c | 2 fs/xfs/scrub/orphanage.c | 6 fs/xfs/scrub/repair.c | 19 fs/xfs/scrub/scrub.h | 2 fs/xfs/scrub/trace.h | 12 fs/xfs/xfs_dquot.c | 8 fs/xfs/xfs_exchrange.c | 13 fs/xfs/xfs_icache.c | 2 fs/xfs/xfs_log_recover.c | 13 fs/xfs/xfs_refcount_item.c | 8 fs/xfs/xfs_rmap_item.c | 8 include/drm/drm_client.h | 22 include/drm/drm_client_event.h | 12 include/drm/drm_fb_helper.h | 8 include/linux/bpf_mem_alloc.h | 6 include/linux/if_vlan.h | 3 include/linux/rculist.h | 29 include/linux/skbuff.h | 24 include/net/gue.h | 19 include/net/ip6_route.h | 4 include/net/netfilter/nf_conntrack.h | 5 include/net/nfc/hci.h | 2 include/net/nfc/nfc.h | 3 include/net/rose.h | 28 include/net/tcp.h | 4 kernel/bpf/btf.c | 136 ++- kernel/bpf/crypto.c | 5 kernel/bpf/hashtab.c | 114 ++ kernel/bpf/memalloc.c | 106 +- kernel/bpf/offload.c | 2 kernel/bpf/syscall.c | 5 kernel/cgroup/cpuset.c | 53 - kernel/cgroup/pids.c | 5 kernel/events/core.c | 17 kernel/sched/core.c | 2 kernel/sched/ext.c | 7 kernel/workqueue.c | 2 mm/backing-dev.c | 5 mm/damon/core.c | 24 mm/damon/vaddr.c | 21 mm/hugetlb.c | 41 - mm/rmap.c | 23 mm/vma.c | 8 net/8021q/vlan_dev.c | 5 net/bluetooth/bnep/core.c | 17 net/bluetooth/bnep/netdev.c | 8 net/bluetooth/hci_conn.c | 14 net/bluetooth/hci_sock.c | 20 net/bluetooth/iso.c | 7 net/bluetooth/l2cap_core.c | 10 net/bluetooth/mgmt.c | 27 net/bluetooth/rfcomm/core.c | 3 net/bluetooth/rfcomm/sock.c | 6 net/bluetooth/smp.c | 17 net/bridge/br_mdb.c | 2 net/bridge/br_stp_bpdu.c | 5 net/core/dev.c | 2 net/core/filter.c | 46 - net/core/skbuff.c | 9 net/core/skmsg.c | 4 net/core/sock_map.c | 1 net/ipv4/arp.c | 1 net/ipv4/fib_semantics.c | 13 net/ipv4/fou_core.c | 4 net/ipv4/inet_connection_sock.c | 3 net/ipv4/ip_gre.c | 12 net/ipv4/ipconfig.c | 92 +- net/ipv4/tcp_output.c | 3 net/ipv4/udp.c | 42 - net/ipv6/exthdrs_core.c | 3 net/ipv6/ip6_fib.c | 2 net/ipv6/ip6_gre.c | 2 net/ipv6/netfilter/ip6t_rpfilter.c | 2 net/ipv6/netfilter/ip6t_rt.c | 11 net/ipv6/route.c | 12 net/ipv6/seg6.c | 4 net/llc/llc_c_ac.c | 2 net/llc/llc_s_ac.c | 4 net/llc/llc_sap.c | 8 net/mctp/route.c | 2 net/mptcp/protocol.c | 2 net/netfilter/ipvs/ip_vs_core.c | 6 net/netfilter/nf_conntrack_netlink.c | 3 net/netfilter/nf_flow_table_offload.c | 7 net/netfilter/nf_tables_api.c | 18 net/netfilter/nfnetlink_queue.c | 8 net/netfilter/nft_synproxy.c | 3 net/netlink/genetlink.c | 8 net/nfc/core.c | 15 net/nfc/digital_dep.c | 8 net/nfc/llcp.h | 1 net/nfc/llcp_commands.c | 2 net/nfc/llcp_core.c | 175 +++- net/nfc/llcp_sock.c | 65 + net/nfc/nci/core.c | 10 net/nfc/netlink.c | 7 net/nfc/nfc.h | 3 net/openvswitch/conntrack.c | 37 net/packet/af_packet.c | 104 +- net/rds/ib_frmr.c | 11 net/rose/rose_in.c | 13 net/rose/rose_link.c | 5 net/rose/rose_route.c | 81 +- net/sched/act_api.c | 2 net/sched/act_ct.c | 41 - net/sched/act_gate.c | 30 net/sched/cls_u32.c | 12 net/sched/em_text.c | 2 net/sched/sch_hfsc.c | 22 net/sched/sch_teql.c | 7 net/sctp/associola.c | 15 net/sctp/input.c | 7 net/sctp/sm_sideeffect.c | 37 net/sctp/sm_statefuns.c | 2 net/smc/smc_core.c | 2 net/smc/smc_ib.c | 10 net/tipc/group.c | 4 net/tipc/monitor.c | 3 net/tls/tls_sw.c | 6 net/xdp/xskmap.c | 2 rust/kernel/net/phy.rs | 38 security/ipe/eval.c | 12 security/ipe/eval.h | 2 security/ipe/fs.c | 8 security/ipe/hooks.c | 22 security/ipe/policy_fs.c | 3 sound/hda/codecs/realtek/alc269.c | 9 tools/lib/bpf/libbpf.c | 7 tools/lib/bpf/relo_core.c | 58 - tools/testing/selftests/bpf/prog_tests/linked_list.c | 4 tools/testing/selftests/cgroup/test_cpuset_prs.sh | 2 tools/testing/selftests/cgroup/test_memcontrol.c | 2 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc | 2 tools/testing/selftests/nci/nci_dev.c | 45 - virt/kvm/kvm_main.c | 30 382 files changed, 4951 insertions(+), 2271 deletions(-)
Aamir Ahmed (2):
net: usb: catc: bound the RX packet length in catc_rx_done()
nfc: llcp: drop truncated I/RR/RNR PDUs in nfc_llcp_recv_hdlc()
Abhishek Ojha (1):
net: phy: micrel: Advance register data pointer in write loop
Aldo Ariel Panzardo (8):
nfc: llcp: Fix list corruption / refcount desync in nfc_llcp_recv_dm()
Bluetooth: hci_conn: fix CIS hold ownership on reuse
Bluetooth: hci_sock: validate event length before filtering
Bluetooth: hci_sock: reject out-of-range OCF values
Bluetooth: ISO: balance the parent hold in hci_bind_bis()
Bluetooth: ISO: release unused CIS holds after channel attach
Bluetooth: L2CAP: validate frame length before control and FCS access
Bluetooth: mgmt: fix race in read_unconf_index_list()
Aleksei Sviridkin (3):
net: dsa: mt7530: fix NULL dereference on unbind of MT7531 and MT7621
net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq
net: phylink: record the PHY only once bringup cannot fail
Alexander Duyck (3):
eth: fbnic: reset num_napi when the napi vectors are freed
eth: fbnic: Set AW_FLUSH_MODE alongside AW_FLUSH when flushing the mailbox
eth: fbnic: Handle FW mailbox completions flagged with an error
Andre Przywara (1):
pinctrl: sunxi: A523: fix voltage withstand encoding
Andrea Parri (2):
bpf: fs/xattr: don't assume the inode is locked in path_unlink/path_rmdir net/mlx5e: fix swapped IPv6 IPsec policy masks
Angel J (1):
PCI: of_property: Omit bus properties without a subordinate bus
Ankit Garg (6):
gve: Consolidate and persist ethtool ring changes
gve: Use extack to log xdp config verification errors
gve: Allow ethtool to configure rx_buf_len
gve: Advertise NETIF_F_GRO_HW instead of NETIF_F_LRO
gve: Enable hw-gro by default if device supported
gve: add support for UDP GSO for DQO format
Ankit Nautiyal (1):
drm/i915/quirks: Limit eDP rate to HBR2 on HP Pavilion Plus 14-ew1
Anthony Krowiak (1):
s390/vfio-ap: fix KVM GISC and page leak when queue removed from host config
Aohan Mei (2):
sctp: discard the rest of the packet on a stale-cookie error
netfilter: nf_tables: skip expired catchall elements on insert and delete
Bart Van Assche (1):
scsi: megaraid_sas: Protect megasas_get_ctrl_info() in megasas_resume()
Bartosz Golaszewski (1):
gpio: cdev: fix kernel stack leak to user-space in error path
Bastien Nocera (1):
HID: hid-alps: Use pm_ptr instead of #ifdef CONFIG_PM
Benjamin Leggett (1):
drm/virtio: sync shmem backing on guest-bound transfers
Benjamin Tissoires (1):
HID: bpf: fix __hid_bpf_hw_check_params report length
Bernard Ladenthin (1):
net/sched: fix potential stack infoleak in em_text_dump()
Bernard Pidoux (4):
rose: keep the route needed for routing loop detection
rose: guard rose_transmit_link() against a NULL neighbour
rose: use timer_shutdown_sync() for t0timer teardown
rose: don't warn on stray CALL_ACCEPTED/CLEAR_CONFIRMATION in state 3
Bernardo Soares (2):
net/mlx5: Bridge, don't fail switchdev events of sibling eswitch ports net/mlx5: Bridge, don't fail unlink of untracked/unsupported peer ports
Björn Töpel (3):
eth: fbnic: Fix payload page pool error cleanup
eth: fbnic: Handle maximum standalone channels
eth: fbnic: Avoid rounding zero ring sizes
Borislav Petkov (AMD) (3):
x86/sev: Move the internal header
x86/sev: Add internal header guards
x86/sev: Carve out the SVSM code into a separate compilation unit
Brajesh Gupta (2):
drm/imagination: Propagate map failures correctly from pvr_mmu_map_sgl() drm/imagination: Fix page count for page table for map() interface
Chaithanya Lagisetty (1):
selftests: nci: Fix uninitialized family ID on missing attribute
Chen Changcheng (2):
HID: alps: fix use-after-free on input2 registration failure
HID: alps: unregister DualPoint Stick input device on remove
Chris Gellermann (2):
selftests/nci: Fix out-of-bounds store on thread join
nfc: virtual_ncidev: Add missing ioctl compat handler
Christian Brauner (2):
fs/ntfs3: use d_instantiate_new() in ntfs_create_inode() and murder syzbot's "WARNING in do_new_mount" saga
super: make iterate_supers_type() deletion-safe
Christian König (1):
drm/i915: fix incorrect RCU teardown order
Christiano Amora (1):
Bluetooth: SMP: reject Security Request over BR/EDR
Chunfeng Song (1):
rust: net: phy: fix off-by-one bit positions in device status accessors
Claudio Imbrenda (1):
KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
Coia Prant (2):
net: pcs: xpcs: fix clock reference leak on xpcs_init_clks failure
net: ethernet: stmmac: dwmac-rk: fix bulk clock leak when the PHY clock fails
Cong Nguyen (1):
nfc: llcp: fix sdreq TLV list leak on parse/alloc/send failure
Dairui Zhang (1):
af_packet: fix integer overflow in prb_calc_retire_blk_tmo()
Dan Carpenter (1):
drm/nouveau/clk: fix list cursor use after loop in nvkm_clk_ustate_update
Daniel Borkmann (1):
bpf: Fix bpf_skb_change_tail wrt csum partial skbs
Dapeng Mi (4):
perf/x86/intel: Update event constraints and cache_extra_regsfor ADL perf/x86/intel: Fix GRT PEBS load/store direction for latency events, to fix sample classification perf/x86/intel: Update event constraints and cache_extra_regsfor LNL perf/x86/intel: Remove incorrect LionCove PEBS data-source constraints
Darrick J. Wong (15):
xfs: don't stash removename operations with unknown ftype
xfs: don't assert when XFS_SCRUB_TYPE_HEALTHY scans return corruption
xfs: fix attr fork block count checks in xrep_inode_blockcounts
xfs: release orphanage dir inode if chown fails
xfs: use correct jiffies comparison function in xchk_maybe_relax
xfs: check padding field in xfs_ioc_commit_range
xfs: don't call xfs_exchange_range_finish for a dry run
xfs: use the correct reservations for rtrmap/refcount recovery
xfs: check di_forkoff correctly in scrub
xfs: fix rtgroup repair estimations
xfs: fix wild memcpy access when formatting ondisk rtrefcount btree roots
xfs: call xfs_dquot_set_prealloc_limits if we installed default rtb limits
xfs: don't let hidden_space go negative in xfs_metafile_resv_init
xfs: fix blockgc group quota scanning when usrquota isn't enforced
xfs: fix cursor and pointer handling when recovering iunlink buckets
David Ballesteros (1):
KVM: Ensure memory attributes xarray nodes are accounted to the caller's memcg
David Carlier (1):
arm64: errata: match the target implementation CPU's own MIDR
David Dai (1):
bonding: crypto offload enabled, non-offload slave failover, rekey failed
Deepanshu Kartikey (1):
nfc: pn533: fix OOB read in pn533_acr122_is_rx_frame_valid()
Dmitry Osipenko (1):
Revert "drm/virtio: Allow importing prime buffers when 3D is enabled"
Donggeun Yoo (1):
bpf, arm64: set up the frame pointer for the exception callback
Dongliang Qin (1):
rds: ib: Clear the sg list when mapping an MR fails
Doruk Tan Ozturk (1):
nfc: port100: reject frames whose declared length exceeds the received data
Eddie Phillips (1):
gve: fix TX drop when GSO MSS is too small for hw
Emil Tsalapatis (2):
bpf: Fix bounds check for skb-backed dynptrs
bpf: Fix bpf_sock context code generation
Eric Dumazet (7):
gve: DQO: fix header length used by gve_can_send_tso() for UDP GSO
gve: DQO: reject TSO packets with an out of range MSS
llc: fix skb UAF and leaks on llc_mac_hdr_init() failure
bridge: check llc_mac_hdr_init() return value in br_send_bpdu() net/sched: sch_teql: fix shadowed err in __teql_resolve()
vlan: ensure sufficient headroom in vlan_dev_hard_header()
tipc: reject invalid and unexpected GRP_ACK_MSG to prevent bc_ackers underflow
Eva Kurchatova (1):
selftests: cgroup: give the O_TMPFILE open in get_temp_fd() a mode
Fan Wu (2):
ipe: fix use-after-free when auditing a newly loaded policy
ipe: protect the dm-verity root hash with RCU
Florian Fainelli (5):
net: bcmgenet: fix 64-bit RTNL stats reading in ethtool on 32-bit systems
net: bcmgenet: initialize u64 stats seq counter for all queues
net: bcmgenet: do not skip WoL power up on GENET V1
net: bcmgenet: validate Ethernet address in bcmgenet_set_mac_addr
net: bcmgenet: mask DMA_TIMEOUT_MASK when reading DMA_RING0_TIMEOUT
Florian Westphal (1):
netfilter: nfnetlink_queue: hold nfnl mutex in event notifier
Fourie Zhang (1):
net: bridge: mdb: restart port group walk after deletion
Francesco Magazzu (1):
drm/nouveau/clk: don't clobber reclock status when restoring volt/fan
Fuad Tabba (9):
KVM: arm64: vgic-its: Free the caches when GITS_BASER changes
KVM: arm64: vgic-its: Skip unreachable devices instead of failing the save
KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve()
KVM: arm64: Do not clear VM-wide SVE feature on vCPU init failure
KVM: arm64: Fix MTE flag initialization for protected VMs
KVM: arm64: Include VM type when checking VM capabilities in pKVM
KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2 arm64/boot: Disable trapping of PMZR_EL0 writes to EL2
KVM: arm64: Transfer the hyp stack pages out of the host stage-2
Gajdos Tamás (3):
net: atl1: fix soft lockup on out-of-range cmb_tpd_next_to_clean read
net: atl1c: fix soft lockup on out-of-range tpd_cons read
net: atl1e: fix soft lockup on out-of-range hw_next_to_clean read
Geliang Tang (1):
bpf, sockmap: Fix self-redirect copied_seq double-counting
Ginger Li (1):
tipc: Fix a data race on mon->peer_cnt in mon_timeout()
Giuseppe Ranieri (1):
drm/nouveau/disp: don't reject HDMI config on cards without SCDC
Greg Kroah-Hartman (2):
Revert "rust: net: phy: fix off-by-one bit positions in device status accessors" Linux 6.18.55
Guangshuo Li (3):
drm/nouveau: fix autosuspend cleanup during teardown
net: ena: fix PHC cleanup on probe failure
net: ena: fix MMIO read buffer leak on probe failure
Guopeng Zhang (1):
cgroup/pids: Restore pids.events notifications in local mode
Haseeb Malik (1):
macsec: initialize SecY before registering the netdevice
Helge Deller (1):
parisc: Increase kernel stack size to 32kb
Heyang Tan (1):
octeontx2-af: use seq_file for rsrc_alloc debugfs
Holger Dengler (1):
crypto: s390/hmac - Generate intermediate CV for API partial block handling
Hui Peng (8):
Bluetooth: bnep: fix out-of-bounds reads on short RX/TX frames and control fallthrough
Bluetooth: RFCOMM: Reject short EA=0 frames in rfcomm_recv_frame()
autofs: fix sbi->pipe file reference leak in autofs_kill_sb()
fou: reject omitted FOU_ATTR_IPPROTO on FOU_ENCAP_DIRECT
ipv6: sr: enforce exact attribute length for SEG6_ATTR_DST
mctp: route: iterate socket tag list in mctp_lookup_prealloc_tag()
Bluetooth: RFCOMM: fix NULL dereference of dlc->session in RFCOMM_CONNINFO cgroup/cpuset: Return PERR_NOCPUS in remote_partition_enable() on subpartitions_cpus conflict
Ido Schimmel (1):
vrf: Stop corrupting skb->csum when capturing CHECKSUM_COMPLETE packets
Ilya Maximets (5):
net: openvswitch: conntrack: avoid modifying shared unconfirmed ct entry
net: openvswitch: conntrack: remove 'add_helper' dead code
net: openvswitch: conntrack: fix helper UAF due to extensions realloc net/sched: act_ct: fix helper UAF due to extensions realloc net/sched: act_ct: avoid modifying shared unconfirmed ct entry
Ilya Titov (1):
pinctrl: sunxi: keep a shadow copy of the data register output latches
Imre Deak (2):
drm/i915/dp_mst: Fix configuring FEC for a disconnected stream drm/i915/dp_mst: Fix configuring TUs for a disconnected stream
Ivan Delalande (1):
tg3: use random MAC address when tg3_get_device_address fails
Ivan Lipski (1):
drm/amd/display: Bump frame warning limit for clang builds of dml
Ivan Vecera (1):
dpll: use exact lookup for reference sync pin id
Jaewook You (1):
mm/hugetlb: preserve mremap address delta when skipping page tables
Jakub Kicinski (3):
genetlink: report the real command id for dump-only ops in policy dumps
veth: manage XDP program pointers during channel resize
net: tls: fix silent data drop under pipe back-pressure
Jamal Hadi Salim (2):
net/sched: cls_u32: fix manual hash table handle IDR aliasing net/sched: sch_hfsc: bound the classify inner-filter walk with a drift budget
Jiakai Xu (1):
RISC-V: KVM: Fix null pointer dereference in kvm_riscv_aia_imsic_rw_attr()
Jiayuan Chen (5):
bpf: Fix divide-by-zero in btf_struct_walk()
bpf: Fix out-of-bounds read of sk_protocol in bpf_sock_destroy()
tcp: Skip cond_resched() in inet_csk_listen_stop() under BPF context
bpf: Fix out-of-bounds read of rtt_min in sock_ops
bpf: Reject key-less BTF for hash maps
Jim Mattson (1):
KVM: x86/pmu: Move Intel PMU global MSRs to intel_is_valid_msr()
Jinjiang Tu (1):
mm/rmap: fix missing barrier between anon_vma init and vma->anon_vma publish
Johan Almbladh (2):
bpf: Fix immediate JMP JEQ/JNE on MIPS32
bpf: Fix BSWAP 32 and 16 on MIPS64
Jonghyuk Kim(MalHyuk) (1):
drm/nouveau: RCU-free the scheduler-containing nouveau_sched
Jose Fernandez (Anthropic) (1):
bpf: Avoid soft lockup in __htab_map_lookup_and_delete_batch()
Josef Bacik (1):
writeback: report a Tasks-RCU quiescent state per cgwb drain pass
Joseph Qi (1):
ocfs2: make ocfs2_calc_xattr_init() return void
Jouni Högander (3):
drm/i915/psr: Disable Panel Replay on Dell XPS 14 DA14260 as a quirk drm/i915/psr: Fixes for Dell XPS DA14260 quirk drm/i915/psr: Disable PSR2 on Xiaomi Book Pro 14 2026 as a quirk
Julian Anastasov (1):
ipvs: revalidate ihl before icmp_send
Julian Sun (1):
fs: avoid repeated scans in evict_inodes()
Junjie Cao (1):
HID: quirks: add ALWAYS_POLL quirk for SDINNOVATION gaming keyboard
Junrui Luo (4):
drm/virtio: fix object leak when drm_gem_handle_create() fails drm/virtio: fix object leak in virtio_gpu_resource_create_ioctl() drm/virtio: fix object leaks in virtio_gpu_resource_create_blob_ioctl() drm/virtio: release the GEM object on virtio_gpu_vram_create() errors
Jérémy Jean (2):
netfilter: flowtable: publish HW_DEAD after worker is done
net: gue: reject invalid REMCSUM offsets
Karl Mehltretter (7):
KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0 s390/pci/docs: Fix sriov_numvfs attribute name
netfilter: nft_synproxy: use the family-aware checksum helper
gpio: tps65219: Fix GPIO input value reads
gpio: tps65219: Use the variant-specific direction callback
gpio: tps65219: Fix TPS65214 GPIO direction programming
KVM: arm64: Fix AArch32 DBGBXVR<n> handling
Kumar Kartikeya Dwivedi (4):
bpf: Register dtor for freeing special fields
bpf: Restrict CO-RE poisoning to relocatable instructions
libbpf: Reject truncated ldimm64 CO-RE relocations
bpf: Bound ownership depth through local kptrs and graph roots
Kuniyuki Iwashima (3):
ip6_gre: Call ip6erspan_tunnel_unlink_md() in ip6erspan_changelink().
ipv6: Prevent rt6_insert_exception() for dying fib6_info.
ipv6: Fix dst leak for uncached routes.
Kyle Hendry (1):
net: pcs: rzn1-miic: Fix config array initialization
Lee Jones (2):
Bluetooth: mgmt: Dequeue pending mesh_send_sync entries on cancel
nfc: llcp: Fix race condition in accept_queue lifecycle
Lei Zhu (1):
selftests: nci: Correct pthread_create return value check
Leo Li (1):
drm/amd/display: Atomize IRQ register read/modify/write ops
Li Youhong (1):
drm/bridge: samsung-dsim: fix TE GPIO lifetime for host attach
Liew Rui Yan (1):
mm/damon/core: fix unconditionally skip last region
Linkui Xiao (1):
ipv4: fib: fix data-race and stale genid check around nh->nh_saddr
Liz Fong-Jones (1):
PCI: Fix BAR resize for devices on a root bus
Longlong Xia (1):
mm/hugetlb: do not dissolve gigantic pages without runtime support
Lorenzo Bianconi (2):
net: ethernet: mtk_eth_soc: unregister net_devices in case of probe failure
net: stmmac: clear stale buf->page after recycling on skb build failure
Lorenzo Stoakes (1):
mm/rmap: allocate anon_vma_chain objects unlocked when possible
Lorenzo Stoakes (ARM) (2):
KVM: arm64: Fix spurious warning for benign stage 2 teardown race
KVM: arm64: nv: Fix null ptr deref on nested wp/unmap, teardown race
Lovekesh Solanki (1):
HID: multitouch: Add report ID mismatch quirk for ASUS ROG Z13 Folio
Luxiao Xu (2):
netfilter: ip6t_rt: fix zero-address non-strict match out-of-bounds read
nfc: fix use-after-free in nfc_get_local_general_bytes
Manaf Meethalavalappu Pallikunhi (1):
thermal: gov_step_wise: Fix stale mitigation vote with non-zero lower bounds
Marc Zyngier (1):
KVM: arm64: vgic-v3: Fix GICv3 trapping in protected mode
Mario Limonciello (1):
x86/PCI: Disable enhanced atomics on AMD NBIO 7.7 and 7.11
Mark Amirkan (1):
mptcp: return sk_wait_data() errors from recvmsg()
Mark Brown (1):
KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP
Masami Hiramatsu (Google) (1):
x86/mce: Fix hardware debug register corruption on task migration
Matthew Auld (1):
drm/xe/vm: nuke PTs only after unlinking contested VMAs
Matthew Brost (1):
drm/xe: Keep walking on SVM eviction failure
Matthias Goergens (1):
ata: libata-scsi: bound the ATA passthru sense descriptor writes
Maxime Chevallier (5):
net: stmmac: selftests: Support running selftests on DSA conduits
net: stmmac: selftests: Check the dev->features for S-TAG offload testing
net: stmmac: selftests: Capture all packets for vlan checks
net: stmmac: dwmac4: Use the correct bufzise when the len is exactly 8K
net: stmmac: selftests: Account for alignment shift on dwmac1000 for Jumbo test
Melody Wang (1):
x86/sev: Make vTPM SVSM calls preemption-safe
Mike Marciniszyn (Meta) (1):
eth fbnic: Add debugfs hooks for firmware mailbox
Mikhail Zaslonko (2):
s390/debug: Do not register views for failed static debug areas s390/debug: Fix NULL pointer dereference in debug_info_copy()
Ming Wang (1):
net: usb: cdc_mbim: add MeiG Smart SRM821 to ZLP whitelist
Mohsin Bashir (1):
eth: fbnic: Reuse RX mailbox pages
Mostafa Saleh (1):
remoteproc: qcom_q6v5_adsp: Fix iommu_unmap() usage
Muhammad Bilal (1):
net: spacemit: clear TX descriptor on fragment mapping failure
Myeonghun Pak (6):
tg3: clean up PHYLIB resources on probe failure
bna: prevent IOC timer rearm during teardown
net: airoha: npu: cancel wdt_work after releasing the WDT IRQ
nfc: trf7970a: power down on startup RX gain failure
pinctrl: single: free the IRQ on domain creation failure
RISC-V: KVM: Synchronize hrtimer callback during teardown
Naman Gulati (1):
netfilter: ctnetlink: fix suspicious RCU usage in expect_iter_name
Namhyung Kim (1):
perf/core: Fix a refcount leak in attach_perf_ctx_data()
Nemesa Garg (1):
drm/i915/psr: Clear stale sel fetch enable bits on sel fetch disable
Nguyen Ngoc Thang (1):
net/sched: act_ct: don't WARN on benign flow_offload_alloc() failure
Nicolai Buchwitz (1):
net: bcmgenet: stop Tx NAPI before disabling the queues
Niklas Schnelle (5):
docs: s390/pci: Improve and update PCI documentation s390/pci: Fix leak of struct pci_dev reference in zpci_report_status() s390/pci: Fix missing device lock in zpci_report_status() s390/pci: Report SCLP status on error events when no pdev is associated s390/pci: Don't report recovery success on skipped recovery
Nikunj A Dadhania (1):
x86/sev: Remove redundant ghcbs_initialized checks around __sev_{get,put}_ghcb()
Norbert Szetei (2):
net: xps: reject an out of range traffic class
ipv6: do not let ipv6_find_hdr() return an offset past the packet end
Oscar Priego Verdugo (1):
HID: elecom: fix bus type for M-XGL20DLBK
Pablo Neira Ayuso (2):
rculist: add list_splice_rcu() for private lists
netfilter: nf_tables: join hook list via splice_list_rcu() in commit phase
Patrick Lu (Anthropic) (1):
writeback: bound cleanup_offline_cgwb() rescans by rotating scanned inodes
Pavankumar Kondeti (1):
workqueue: Fix NULL current_pwq deref in flush dependency check
Peiyang He (5):
drm/nouveau/uvmm: fix UAF in nouveau_uvmm_sm when BO is in TTM_PL_SYSTEM drm/nouveau: fix double-free in nvif_vmm_dtor
drm/nouveau: don't bump pin count on failed re-pin in nouveau_bo_pin_locked() drm/virtio: fix memory leak of fence event on execbuffer failure drm/virtio: fix NULL pointer dereference on fence allocation failure
Pengpeng Hou (5):
net: usb: sr9700: include receive overhead in the length check
nfc: nfcmrvl: validate helper command length before pull
nfc: st21nfca: validate received frame size
nfc: st21nfca: validate ISO15693 inventory length drm/imagination: clamp freelist reconstruction requests
Peter Oberparleiter (1):
s390/cmf: Fix virtual vs physical address confusion
Pu Lehui (1):
bpf: Fix UAF due to concurrent consumption of ttrace lists in alloc_bulk
Puranjay Mohan (2):
perf/core: Fix NULL pmu_ctx passed to pmu->sched_task() perf/core: Run sched_task() for PMUs with only CPU-wide events
Ralf Lici (11):
ovpn: preserve IPv6 scope id for netlink peer endpoints
ovpn: skip UDP source validation for unspecified addresses
ovpn: track UDP socket route key for peer dst cache
ovpn: validate peer state before caching UDP dst
ovpn: replace bind when learning local endpoint
ovpn: replace bind when clearing stale local source
ovpn: always unhash old VPN addresses before rehashing
ovpn: reject duplicate peer VPN addresses
ovpn: reject multipeer peers without VPN addresses
ovpn: reject invalid peer VPN addresses net/mlx5e: advertise MACsec offload only when supported
Ran Hongyun (1):
squashfs: Add dictionary size range check to prevent shift-out-of-bounds
Ratheesh Kannoth (1):
octeontx2-af: Fix memory scaling limitation in SR-IOV mode
Ravindra (1):
Bluetooth: btintel_pcie: validate device-supplied DMA indices
Ridham Khurana (1):
gpio: zynq: fix runtime PM leak on request error path
SJ Park (1):
mm/damon/vaddr: avoid hw-driven pte updates during damon_hugetlb_mkold()
Sang-Hoon Choi (1):
nfp: hold IPsec RX state under the XArray lock
Sanghyun Park (1):
vxlan: use one headroom snapshot for neighbour replies
Sean Anderson (1):
pinctrl: meson: Fix typo in s4 group name
Sean Christopherson (6):
perf/x86/intel: Ensure KVM guest PEBS path doesn't set unwanted PERF_GLOBAL_CTRL bits perf/x86/intel: Don't write PEBS_ENABLED on host<=>guest xfers if CPU has PEBS isolation, to fix stuck PEBS_ENABLED perf/x86/intel: Don't pointlessly context switch DS_AREA (and PEBS config) if PEBS is unused perf/x86/intel: Make @data a mandatory param for intel_guest_get_msrs()
KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV
KVM: SEV: Do cache maintenance on the source VM during intra-host migration
Sean Rhodes (2):
ALSA: hda/realtek: Limit Star Labs internal mic boost
ALSA: hda/realtek: Add StarFighter HDA SSID
SeungJu Cheon (3):
RISC-V: KVM: Preserve firmware counter value across stop/start
RISC-V: KVM: Report snapshot write failure to the guest
RISC-V: KVM: Fix perf-backed counter accounting across stop and read
Shardul Bankar (3):
udp: relocate a connected socket in the 4-tuple hash table on re-connect
udp: remove a disconnected socket from the 4-tuple hash table
hfsplus: avoid double unload_nls() on mount failure
Shay Drory (1):
net/mlx5: devcom, Base component size on linked devices
Shihuang Liu (1):
net: skbuff: fix pull-bound underflow in skb_checksum_setup_ipv6()
Sidraya Jayagond (1):
net/smc: fix UAF on lgr list traversal in smcr_port_err()
Slawomir Stepien (1):
HID: amd_sfh: Validate PCI BAR size before mapping
Steffen Eiden (2):
s390/uv: Fix loop condition in uv_find_secrets s390/uv: Prevent potential out-of-bounds read
Sven Schnelle (1):
selftests/ftrace: Fix unique symbol check in kprobe_non_uniq_symbol.tc
Szymon Acedański (1):
drm/xe: Limit sg segment size to PAGE_SIZE on Xen PV
Tan Chi (1):
RISC-V: KVM: Fix HSM hart status error propagation
Tangudu Tilak Tirumalesh (1):
drm/xe: harden adjust_idledly() against divide-by-zero and overflow
Tejun Heo (1):
sched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags
Thomas Zimmermann (2):
drm/client: Remove holds_console_lock parameter from suspend/resume drm/client: Pass force parameter to client restore
Thorsten Blum (1):
net: ipconfig: Remove outdated comment and indent code block
Théo Lebrun (1):
net: macb: fix dma_alloc_coherent() leak on macb_alloc() error paths
Usama Arif (1):
mm/hugetlb: create hstate_is_gigantic_no_runtime helper
Victor Nogueira (1):
net/sched: act_gate: budget the per-entry list in get_fill_size
Viken Dadhaniya (1):
i2c: qcom-geni: Fix hardcoded clock index in SE_GENI_CLK_SEL
Vineeth Vijayan (4):
s390/cio: Fix cio_update_schib() to not cache invalid schib s390/cio: Check pmcw.dnv before pmcw.ena in I/O entry points s390/cio: Guard PMCW field accesses with dnv check s390/cio: Fix NULL pointer dereference in ccw_device_get_util_str()
Waiman Long (2):
cgroup/cpuset: Move up prstate_housekeeping_conflict() helper cgroup/cpuset: Ensure domain isolated CPUs stay in root or isolated partition
Wei Jie LAW (1):
HID: wacom: fix OOB read in wacom_wac_pen_serial_enforce()
Weiming Shi (5):
bpf: Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
bpf: Skip unsettled links in link iterator
bpf: Reject dev-bound-only programs on other devices net/sched: reject IDR error pointers when deleting actions
netfilter: ip6t_rpfilter: reject routes without inet6_dev
Wentao Liang (13):
fsl/fman: Fix clk reference leak in read_dts_node()
gpio: arizona: Fix runtime PM leak in arizona_gpio_direction_out() drm/amd/display: Fix dc stream excess put in dm_update_crtc_state() drm/amdgpu: Fix last_update fence leak in amdgpu_vm_init() drm/amdgpu: Fix runtime PM leak in amdgpu_debugfs_test_ib_show() drm/amdgpu: Fix vmid_wait fence leak in amdgpu_ring_init() drm/nouveau: Fix bridge reference leak in nv1a_ram_new() drm/nouveau: Fix gem reference leak in validate_init() drm/nouveau: Fix runtime PM leak in nouveau_connector_detect() net/mlx5: Fix rev_entry reference leak in mlx5_tc_ct_shared_counter_get()
net: hisilicon: hns_dsaf_mac: fix mdio device leak in hns_mac_register_phy()
net: usb: lan78xx: Fix URB reference leak in lan78xx_submit_deferred_urbs() drm/amdgpu: Fix acpi device leak in amdgpu_acpi_enumerate_xcc()
Wenwu Hou (1):
erofs: fix large folio race in erofs_fscache_req_complete
Willem de Bruijn (3):
virtio_net: copy zerocopy frags in start_xmit without NAPI
tcp: prevent collapsing skbs across boundary in rtx queue
packet: use ubuf_info completion for TX_RING packets
Xiang Mei (1):
vlan: require the MAC header to be present in __vlan_insert_inner_tag()
Xie Bo (2):
RISC-V: KVM: Propagate interrupted G-stage faults
RISC-V: KVM: Serialize IMSIC attributes with vCPU migration
Xin Long (1):
sctp: hold asoc or transport before mod_timer() in timer handlers
Xuanqiang Luo (1):
ip_gre: Reject enabling collect metadata through changelink
Yehyeong Lee (1):
scsi: libiscsi_tcp: Check the data direction of a Data-In PDU
Yilin Zhang (1):
tcp: fix use-after-free of retransmit_skb_hint in tcp_send_synack()
Yiqi Sun (1):
sctp: avoid livelock while updating retransmit path
Yuqi Xu (2):
bpf: Check params size before reading reserved fields
net: ipconfig: bound DHCP option construction
ZHOU Jiaxiang (1):
scsi: sd_zbc: Reject disks with too many zones
Zeng Chi (1):
KVM: Don't treat reserved xarray entries as having memory attributes
Zeng Heng (1):
arm64: io: Reject non-user protection in ioremap_prot()
Zhan Xusheng (1):
sched/core: Account PSI IRQ time to the execution context, not the scheduling context
Zhang Yunfei (1):
net: txgbe: fix FDIR filter restore for VF rules
Zhao Gongyi (1):
bpf, sockmap: Reject max_entries > INT_MAX in sock_map_alloc
Zhiling Zou (1):
xsk: Use a 32-bit compare in xsk_map_gen_lookup
Zihan Xi (4):
smb: client: fix create context out-of-bounds reads
smb: client: clean up failed cached directory opens
smb: client: preserve create-context parsing errors
smb: client: validate POSIX create context length
Zijie Huang (1):
net: arp: terminate device name before lookup
Zijun Hu (1):
Bluetooth: btnxpuart: Fix skb leak in nxp_process_fw_dump()
Zixuan Chai (1):
llc: reserve device headroom for allocated frames
Zongmin Zhou (1):
KVM: riscv: Fix NACL hfence entry update order
bui duc phuc (1):
net: ethernet: ti: netcp: fix pm_runtime usage counter leak on error
shechenglong (1):
drm/client: fix restore of partially initialized client
Ömer Mete Kaya (3):
nfc: llcp: fix -ENOMEM on connect with zero-length service name
nfc: llcp: fix WKS SAP hijacking via prefix match in nfc_llcp_wks_sap()
nfc: llcp: fix slab-out-of-bounds reads when logging service names
Greg Kroah-Hartman
maintainerDocumentation/arch/arm64/booting.rst +1 -0
@@ -465,6 +465,7 @@ Before jumping into the kernel, the following conditions must be met: - HDFGWTR2_EL2.nPMICNTR_EL0 (bit 2) must be initialised to 0b1. - HDFGWTR2_EL2.nPMICFILTR_EL0 (bit 3) must be initialised to 0b1. - HDFGWTR2_EL2.nPMUACR_EL1 (bit 4) must be initialised to 0b1. + - HDFGWTR2_EL2.nPMZR_EL0 (bit 21) must be initialised to 0b1. For CPUs with SPE data source filtering (FEAT_SPE_FDS):
Documentation/arch/s390/pci.rst +101 -51
208 lines not on this page · raw message
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 18 -SUBLEVEL = 54 +SUBLEVEL = 55 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm64/include/asm/el2_setup.h +8 -1
@@ -409,6 +409,7 @@ b.lt .Lskip_fgt2_\@mov x0, xzr + mov x2, xzr mrs x1, id_aa64dfr0_el1 ubfx x1, x1, #ID_AA64DFR0_EL1_PMUVer_SHIFT, #4 cmp x1, #ID_AA64DFR0_EL1_PMUVer_V3P9
@@ -417,6 +418,11 @@ orr x0, x0, #HDFGRTR2_EL2_nPMICNTR_EL0 orr x0, x0, #HDFGRTR2_EL2_nPMICFILTR_EL0 orr x0, x0, #HDFGRTR2_EL2_nPMUACR_EL1 + orr x2, x2, #HDFGWTR2_EL2_nPMICNTR_EL0 + orr x2, x2, #HDFGWTR2_EL2_nPMICFILTR_EL0 + orr x2, x2, #HDFGWTR2_EL2_nPMUACR_EL1 +/* PMZR_EL0 is write-only, so it has no read trap to disable */ + orr x2, x2, #HDFGWTR2_EL2_nPMZR_EL0 .Lskip_pmuv3p9_\@:/* If SPE is implemented, */ __spe_vers_imp .Lskip_spefds_\@, ID_AA64DFR0_EL1_PMSVer_IMP, x1
@@ -427,10 +433,11 @@ cbz x1, .Lskip_spefds_\@/* disable traps of PMSDSFR to EL2. */ orr x0, x0, #HDFGRTR2_EL2_nPMSDSFR_EL1 + orr x2, x2, #HDFGWTR2_EL2_nPMSDSFR_EL1 .Lskip_spefds_\@: msr_s SYS_HDFGRTR2_EL2, x0 - msr_s SYS_HDFGWTR2_EL2, x0 + msr_s SYS_HDFGWTR2_EL2, x2 msr_s SYS_HFGRTR2_EL2, xzr msr_s SYS_HFGWTR2_EL2, xzr msr_s SYS_HFGITR2_EL2, xzr
arch/arm64/include/asm/io.h +2 -1
@@ -272,7 +272,8 @@ static inline void __iomem *ioremap_prot(phys_addr_t phys, size_t size,pgprot_t prot;ptdesc_t user_prot_val =pgprot_val (user_prot); -if (WARN_ON_ONCE (!(user_prot_val &PTE_USER ))) +/* Reject PROT_NONE and exec-only */ +if (!(user_prot_val &PTE_USER ))return NULL ; prot = __pgprot_modify(PAGE_KERNEL, PTE_ATTRINDX_MASK,
arch/arm64/include/asm/kvm_pkvm.h +6 -4
@@ -23,10 +23,12 @@ void pkvm_destroy_hyp_vm(struct kvm *kvm);int pkvm_create_hyp_vcpu (struct kvm_vcpu *vcpu);/* -* This functions as an allow-list of protected VM capabilities. -* Features not explicitly allowed by this function are denied. +* Check whether the specific capability is allowed in pKVM. +* +* Certain features are allowed only for non-protected VMs in pKVM, which is why +* this takes the VM (kvm) as a parameter. */ -static inline bool kvm_pvm_ext_allowed (long ext) +static inline bool kvm_pkvm_ext_allowed (struct kvm *kvm,long ext) {switch (ext) {case KVM_CAP_IRQCHIP :
@@ -43,7 +45,7 @@ static inline bool kvm_pvm_ext_allowed(long ext)case KVM_CAP_ARM_PTRAUTH_GENERIC :return true;default : -return false; +return !kvm || !kvm_vm_is_protected (kvm); } }
arch/arm64/kernel/cpu_errata.c +9 -6
@@ -28,18 +28,21 @@ bool cpu_errata_set_target_impl(u64 num, void *impl_cpus)return true; } +static inline bool __is_midr_in_range (u32 midr,struct midr_range const *range) +{ +return midr_is_cpu_model_range (midr, range->model, + range->rv_min, range->rv_max); +} +static inline bool is_midr_in_range (struct midr_range const *range) {int i;if (!target_impl_cpu_num) -return midr_is_cpu_model_range (read_cpuid_id (), range->model, - range->rv_min, range->rv_max); +return __is_midr_in_range (read_cpuid_id (), range);for (i =0 ; i < target_impl_cpu_num; i++) { -if (midr_is_cpu_model_range (target_impl_cpus[i].midr, - range->model, - range->rv_min, range->rv_max)) +if (__is_midr_in_range (target_impl_cpus[i].midr, range))return true; }return false;
@@ -59,7 +62,7 @@ __is_affected_midr_range(const struct arm64_cpu_capabilities *entry, u32 midr, u32 revidr) {const struct arm64_midr_revidr *fix; -if (!is_midr_in_range (&entry->midr_range)) +if (!__is_midr_in_range (midr, &entry->midr_range))return false; midr &=MIDR_REVISION_MASK |MIDR_VARIANT_MASK ;
arch/arm64/kvm/arm.c +2 -2
@@ -87,7 +87,7 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm,if (cap->flags)return -EINVAL ; -if (kvm_vm_is_protected (kvm) && !kvm_pvm_ext_allowed (cap->cap)) +if (is_protected_kvm_enabled () && !kvm_pkvm_ext_allowed (kvm, cap->cap))return -EINVAL ;switch (cap->cap) {
@@ -312,7 +312,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) {int r; -if (kvm &&kvm_vm_is_protected (kvm) && !kvm_pvm_ext_allowed (ext)) +if (is_protected_kvm_enabled () && !kvm_pkvm_ext_allowed (kvm, ext))return 0 ;switch (ext) {
arch/arm64/kvm/emulate-nested.c +1 -1
@@ -1423,7 +1423,7 @@ static const struct encoding_to_trap_config encoding_to_fgt[] __initconst = {SR_FGT (OP_AT_S1E1A ,HFGITR ,ATS1E1A ,1 ),SR_FGT (OP_COSP_RCTX ,HFGITR ,COSPRCTX ,1 ),SR_FGT (OP_GCSPUSHX ,HFGITR , nGCSEPP,0 ), -SR_FGT (OP_GCSPOPX ,HFGITR , nGCSEPP,0 ), +SR_FGT (OP_GCSPOPCX ,HFGITR , nGCSEPP,0 ),SR_FGT (OP_GCSPUSHM ,HFGITR , nGCSPUSHM_EL1,0 ),SR_FGT (OP_BRB_IALL ,HFGITR , nBRBIALL,0 ), SR_FGT(OP_BRB_INJ, HFGITR, nBRBINJ, 0),
arch/arm64/kvm/hyp/nvhe/pkvm.c +19 -19
@@ -338,8 +338,8 @@ static void pkvm_init_features_from_host(struct pkvm_hyp_vm *hyp_vm, const struc/* CTR_EL0 is always under host control, even for protected VMs. */ hyp_vm->kvm.arch.ctr_el0 = host_kvm->arch.ctr_el0; -if (test_bit (KVM_ARCH_FLAG_MTE_ENABLED , &host_kvm->arch.flags)) -set_bit (KVM_ARCH_FLAG_MTE_ENABLED , &kvm->arch.flags); +/* Preserve the vgic model so that GICv3 emulation works */ + hyp_vm->kvm.arch.vgic.vgic_model = host_kvm->arch.vgic.vgic_model;/* No restrictions for non-protected VMs. */ if (!kvm_vm_is_protected (kvm)) {
@@ -353,29 +353,33 @@ static void pkvm_init_features_from_host(struct pkvm_hyp_vm *hyp_vm, const strucif (test_bit (KVM_ARCH_FLAG_WRITABLE_IMP_ID_REGS , &host_arch_flags)) hyp_vm->kvm.arch.midr_el1 = host_kvm->arch.midr_el1; -return ; + goto out; } +if (kvm_pkvm_ext_allowed (kvm,KVM_CAP_ARM_MTE )) + kvm->arch.flags |= host_arch_flags &BIT (KVM_ARCH_FLAG_MTE_ENABLED ); +bitmap_zero (allowed_features,KVM_VCPU_MAX_FEATURES );set_bit (KVM_ARM_VCPU_PSCI_0_2 , allowed_features); -if (kvm_pvm_ext_allowed (KVM_CAP_ARM_PMU_V3 )) +if (kvm_pkvm_ext_allowed (kvm,KVM_CAP_ARM_PMU_V3 ))set_bit (KVM_ARM_VCPU_PMU_V3 , allowed_features); -if (kvm_pvm_ext_allowed (KVM_CAP_ARM_PTRAUTH_ADDRESS )) +if (kvm_pkvm_ext_allowed (kvm,KVM_CAP_ARM_PTRAUTH_ADDRESS ))set_bit (KVM_ARM_VCPU_PTRAUTH_ADDRESS , allowed_features); -if (kvm_pvm_ext_allowed (KVM_CAP_ARM_PTRAUTH_GENERIC )) +if (kvm_pkvm_ext_allowed (kvm,KVM_CAP_ARM_PTRAUTH_GENERIC ))set_bit (KVM_ARM_VCPU_PTRAUTH_GENERIC , allowed_features); -if (kvm_pvm_ext_allowed (KVM_CAP_ARM_SVE )) { +if (kvm_pkvm_ext_allowed (kvm,KVM_CAP_ARM_SVE ))set_bit (KVM_ARM_VCPU_SVE , allowed_features); - kvm->arch.flags |= host_arch_flags &BIT (KVM_ARCH_FLAG_GUEST_HAS_SVE ); - }bitmap_and (kvm->arch.vcpu_features, host_kvm->arch.vcpu_features, allowed_features,KVM_VCPU_MAX_FEATURES ); +out: +__assign_bit (KVM_ARCH_FLAG_GUEST_HAS_SVE , &kvm->arch.flags, +kvm_vcpu_has_feature (kvm,KVM_ARM_VCPU_SVE )); }static void unpin_host_vcpu (struct kvm_vcpu *host_vcpu)
@@ -441,7 +445,7 @@ static int pkvm_vcpu_init_sve(struct pkvm_hyp_vcpu *hyp_vcpu, struct kvm_vcpu *hunsigned int sve_max_vl;size_t sve_state_size;void *sve_state; -int ret =0 ; +int ret;if (!vcpu_has_feature (vcpu,KVM_ARM_VCPU_SVE )) {vcpu_clear_flag (vcpu,VCPU_SVE_FINALIZED );
@@ -450,25 +454,21 @@ static int pkvm_vcpu_init_sve(struct pkvm_hyp_vcpu *hyp_vcpu, struct kvm_vcpu *h/* Limit guest vector length to the maximum supported by the host. */ sve_max_vl =min (READ_ONCE (host_vcpu->arch.sve_max_vl), kvm_host_sve_max_vl); - sve_state_size =sve_state_size_from_vl (sve_max_vl); sve_state =kern_hyp_va (READ_ONCE (host_vcpu->arch.sve_state)); -if (!sve_state || !sve_state_size) { - ret = -EINVAL ; - goto err; - } +if (!sve_vl_valid (sve_max_vl) || !sve_state) +return -EINVAL ; + + sve_state_size =sve_state_size_from_vl (sve_max_vl); ret =hyp_pin_shared_mem (sve_state, sve_state + sve_state_size);if (ret) - goto err; +return ret; vcpu->arch.sve_state = sve_state; vcpu->arch.sve_max_vl = sve_max_vl;return 0 ; -err: -clear_bit (KVM_ARM_VCPU_SVE , vcpu->kvm->arch.vcpu_features); -return ret; }static int vm_copy_id_regs (struct pkvm_hyp_vcpu *hyp_vcpu)
arch/arm64/kvm/hyp/nvhe/setup.c +10 -0
@@ -269,6 +269,16 @@ static int fix_host_ownership(void)return ret; } +/* The stacks sit in the private VA range, not the linear map. */ +for (i =0 ; i < hyp_nr_cpus; i++) { +struct kvm_nvhe_init_params *params =per_cpu_ptr (&kvm_init_params, i); +u64 start = params->stack_hyp_va -NVHE_STACK_SIZE ; + + ret =kvm_pgtable_walk (&pkvm_pgtable, start,NVHE_STACK_SIZE , &walker); +if (ret) +return ret; + } +return 0 ; }
arch/arm64/kvm/hyp/nvhe/sys_regs.c +5 -0
@@ -444,6 +444,8 @@ static const struct sys_reg_desc pvm_sys_reg_descs[] = {/* Scalable Vector Registers are restricted. */ +HOST_HANDLED (SYS_ICC_PMR_EL1 ), +RAZ_WI (SYS_ERRIDR_EL1 ),RAZ_WI (SYS_ERRSELR_EL1 ), RAZ_WI(SYS_ERXFR_EL1),
@@ -457,9 +459,12 @@ static const struct sys_reg_desc pvm_sys_reg_descs[] = {/* Limited Ordering Regions Registers are restricted. */ +HOST_HANDLED (SYS_ICC_DIR_EL1 ), +HOST_HANDLED (SYS_ICC_RPR_EL1 ),HOST_HANDLED (SYS_ICC_SGI1R_EL1 ),HOST_HANDLED (SYS_ICC_ASGI1R_EL1 ),HOST_HANDLED (SYS_ICC_SGI0R_EL1 ), +HOST_HANDLED (SYS_ICC_CTLR_EL1 ), { SYS_DESC(SYS_ICC_SRE_EL1), .access = pvm_gic_read_sre, }, HOST_HANDLED(SYS_CCSIDR_EL1),
arch/arm64/kvm/hypercalls.c +2 -1
@@ -185,7 +185,8 @@ static int kvm_smccc_set_filter(struct kvm *kvm, struct kvm_smccc_filter __user start = filter.base; end = start + filter.nr_functions -1 ; -if (end < start || filter.action >=NR_SMCCC_FILTER_ACTIONS ) +if (!filter.nr_functions || end < start || + filter.action >=NR_SMCCC_FILTER_ACTIONS )return -EINVAL ;mutex_lock (&kvm->arch.config_lock);
arch/arm64/kvm/mmu.c +12 -3
@@ -59,27 +59,36 @@ static phys_addr_t stage2_range_addr_end(phys_addr_t addr, phys_addr_t end)* long will also starve other vCPUs. We have to also make sure that the page * tables are not freed while we released the lock. */ -static int stage2_apply_range (struct kvm_s2_mmu *mmu,phys_addr_t addr, +static int stage2_apply_range (struct kvm_s2_mmu *mmu,phys_addr_t start,phys_addr_t end,int (*fn)(struct kvm_pgtable *,u64 ,u64 ),bool resched) {struct kvm *kvm =kvm_s2_mmu_to_kvm (mmu); +bool lock_dropped = false; +phys_addr_t addr = start;int ret;u64 next;do {struct kvm_pgtable *pgt = mmu->pgt; +/* +* We may be raced on PGT teardown when we release the +* kvm->mmu_lock. That's fine as the PGT is legitimately no +* longer present. +*/ if (!pgt) -return -EINVAL ; +return lock_dropped ?0 : -EINVAL ; next =stage2_range_addr_end (addr, end); ret =fn (pgt, addr, next - addr);if (ret)break ; -if (resched && next != end) +if (resched && next != end) {cond_resched_rwlock_write (&kvm->mmu_lock); + lock_dropped = true; + } }while (addr = next, addr != end);return ret;
arch/arm64/kvm/nested.c +13 -2
@@ -1129,6 +1129,17 @@ void kvm_handle_s1e2_tlbi(struct kvm_vcpu *vcpu, u32 inst, u64 val)invalidate_vncr_va (vcpu->kvm, &scope); } +static void kvm_invalidate_vncr_ipa_all (struct kvm *kvm) +{ +struct kvm_pgtable *pgt = kvm->arch.mmu.pgt; + +lockdep_assert_held_write (&kvm->mmu_lock); + +/* if the mmu lock was dropped, pgt teardown may have raced. */ +if (pgt) +kvm_invalidate_vncr_ipa (kvm,0 ,BIT (pgt->ia_bits)); +} +void kvm_nested_s2_wp (struct kvm *kvm) {int i;
@@ -1142,7 +1153,7 @@ void kvm_nested_s2_wp(struct kvm *kvm)kvm_stage2_wp_range (mmu,0 ,kvm_phys_size (mmu)); } -kvm_invalidate_vncr_ipa (kvm,0 ,BIT (kvm->arch.mmu.pgt->ia_bits)); +kvm_invalidate_vncr_ipa_all (kvm); }void kvm_nested_s2_unmap (struct kvm *kvm,bool may_block)
@@ -1158,7 +1169,7 @@ void kvm_nested_s2_unmap(struct kvm *kvm, bool may_block)kvm_stage2_unmap_range (mmu,0 ,kvm_phys_size (mmu), may_block); } -kvm_invalidate_vncr_ipa (kvm,0 ,BIT (kvm->arch.mmu.pgt->ia_bits)); +kvm_invalidate_vncr_ipa_all (kvm); }void kvm_nested_s2_flush (struct kvm *kvm)
arch/arm64/kvm/sys_regs.c +1 -0
@@ -792,6 +792,7 @@ static u64 *demux_wb_reg(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd)struct kvm_guest_debug_arch *dbg = &vcpu->arch.vcpu_debug_state;switch (rd->Op2) { +case 0b001 :case 0b100 :return &dbg->dbg_bvr[rd->CRm];case 0b101 :
arch/arm64/kvm/vgic/vgic-its.c +27 -16
104 lines not on this page · raw message
arch/arm64/net/bpf_jit_comp.c +2 -0
@@ -592,6 +592,8 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf)* 12 registers are on the stack */ emit (A64_SUB_I (1 ,A64_SP ,A64_FP ,96 ), ctx); +/* The callback may use its own BPF stack, set up fp for it. */ + ctx->fp_used = true; }/* Stack must be multiples of 16B */
arch/mips/net/bpf_jit_comp32.c +1 -1
@@ -1111,7 +1111,7 @@ static void emit_jmp_i64(struct jit_context *ctx,emit (ctx, xor, tmp,lo (dst), tmp); }if (imm <0 ) {/* Compare sign extension */ -emit (ctx, addu,MIPS_R_T9 ,hi (dst),1 ); +emit (ctx, addiu,MIPS_R_T9 ,hi (dst),1 );emit (ctx, or, tmp, tmp,MIPS_R_T9 ); }else {/* Compare zero extension */ emit (ctx, or, tmp, tmp,hi (dst));
arch/mips/net/bpf_jit_comp64.c +1 -2
@@ -305,8 +305,7 @@ static void emit_bswap_r64(struct jit_context *ctx, u8 dst, u32 width)case 16 :emit_sext (ctx, dst, dst);emit_bswap_r (ctx, dst, width); -if (cpu_has_mips64r2 || cpu_has_mips64r6) -emit_zext (ctx, dst); +emit_zext (ctx, dst);break ; }clobber_reg (ctx, dst);
arch/parisc/include/asm/thread_info.h +1 -1
@@ -24,7 +24,7 @@ struct thread_info {/* thread information allocation */ -#ifdef CONFIG_IRQSTACKS +#if defined(CONFIG_IRQSTACKS ) && !defined(CONFIG_64BIT )#define THREAD_SIZE_ORDER 2/* PA-RISC requires at least 16k stack */ #else #define THREAD_SIZE_ORDER 3/* PA-RISC requires at least 32k stack */
arch/riscv/kvm/aia_imsic.c +10 -1
@@ -952,8 +952,15 @@ int kvm_riscv_aia_imsic_rw_attr(struct kvm *kvm, unsigned long type,if (!vcpu)return -ENODEV ; - isel =KVM_DEV_RISCV_AIA_IMSIC_GET_ISEL (type); +if (mutex_lock_killable (&vcpu->mutex)) +return -EINTR ; + imsic = vcpu->arch.aia_context.imsic_state; +if (!imsic) { + rc = -ENODEV ; + goto out_unlock; + } + isel =KVM_DEV_RISCV_AIA_IMSIC_GET_ISEL (type);read_lock_irqsave (&imsic->vsfile_lock, flags);
@@ -976,6 +983,8 @@ int kvm_riscv_aia_imsic_rw_attr(struct kvm *kvm, unsigned long type, rc =imsic_vsfile_rw (vsfile_hgei, vsfile_cpu, imsic->nr_eix, isel, write, val); +out_unlock: +mutex_unlock (&vcpu->mutex);return rc; }
arch/riscv/kvm/mmu.c +2 -0
@@ -380,6 +380,8 @@ int kvm_riscv_mmu_map(struct kvm_vcpu *vcpu, struct kvm_memory_slot *memslot, vma_pageshift, current);return 0 ; } +if (is_sigpending_pfn (hfn)) +return -EINTR ;if (is_error_noslot_pfn (hfn))return -EFAULT ;
arch/riscv/kvm/nacl.c +16 -4
@@ -42,12 +42,24 @@ void __kvm_riscv_nacl_hfence(void *shmem, } } - entp = shmem +SBI_NACL_SHMEM_HFENCE_ENTRY_CONFIG (i); - *entp =cpu_to_lelong (control); +/* +* Per SBI v3.0 section 15.1.2, the Page_Number and Page_Count +* words must be updated before the Config word with its Pending +* bit set. WRITE_ONCE() stops the compiler from reordering the +* stores and smp_wmb() makes the parameter words globally +* visible to the SBI implementation (or NACL hardware) before +* the Pending bit is set. +*/ entp = shmem +SBI_NACL_SHMEM_HFENCE_ENTRY_PNUM (i); - *entp =cpu_to_lelong (page_num); +WRITE_ONCE (*entp,cpu_to_lelong (page_num)); entp = shmem +SBI_NACL_SHMEM_HFENCE_ENTRY_PCOUNT (i); - *entp =cpu_to_lelong (page_count); +WRITE_ONCE (*entp,cpu_to_lelong (page_count)); + +/* Ensure the parameter words are visible before the Pending bit */ +smp_wmb (); + + entp = shmem +SBI_NACL_SHMEM_HFENCE_ENTRY_CONFIG (i); +WRITE_ONCE (*entp,cpu_to_lelong (control)); }int kvm_riscv_nacl_enable (void )
arch/riscv/kvm/vcpu_exit.c +1 -1
@@ -248,7 +248,7 @@ int kvm_riscv_vcpu_exit(struct kvm_vcpu *vcpu, struct kvm_run *run, }/* Print details in-case of error */ -if (ret <0 ) { +if (ret <0 && ret != -EINTR ) {kvm_err ("VCPU exit error %d\n" , ret); kvm_err("SEPC=0x%lx SSTATUS=0x%lx HSTATUS=0x%lx\n", vcpu->arch.guest_context.sepc,
arch/riscv/kvm/vcpu_pmu.c +17 -16
@@ -249,12 +249,13 @@ static int pmu_ctr_read(struct kvm_vcpu *vcpu, unsigned long cidx,if (pmc->cinfo.type ==SBI_PMU_CTR_TYPE_FW ) { fevent_code =get_event_code (pmc->event_idx); pmc->counter_val = kvpmu->fw_event[fevent_code].value; + *out_val = pmc->counter_val; }else if (pmc->perf_event) { - pmc->counter_val +=perf_event_read_value (pmc->perf_event, &enabled, &running); + *out_val = pmc->counter_val + +perf_event_read_value (pmc->perf_event, &enabled, &running); }else {return -EINVAL ; } - *out_val = pmc->counter_val;return 0 ; }
@@ -619,7 +620,6 @@ int kvm_riscv_vcpu_pmu_ctr_stop(struct kvm_vcpu *vcpu, unsigned long ctr_base, {struct kvm_pmu *kvpmu =vcpu_to_pmu (vcpu);int i, pmc_index, sbiret =0 ; -u64 enabled, running;struct kvm_pmc *pmc;int fevent_code;bool snap_flag_set = flags &SBI_PMU_STOP_FLAG_TAKE_SNAPSHOT ;
@@ -648,14 +648,19 @@ int kvm_riscv_vcpu_pmu_ctr_stop(struct kvm_vcpu *vcpu, unsigned long ctr_base, goto out; } -if (!kvpmu->fw_event[fevent_code].started) +if (!kvpmu->fw_event[fevent_code].started) { sbiret =SBI_ERR_ALREADY_STOPPED ; - - kvpmu->fw_event[fevent_code].started = false; + }else { + kvpmu->fw_event[fevent_code].started = false; + pmc->counter_val = kvpmu->fw_event[fevent_code].value; + } }else if (pmc->perf_event) {if (pmc->started) { -/* Stop counting the counter */ -perf_event_disable (pmc->perf_event); +/* +* Stop the counter and fold the live count into counter_val. +* Reset the event value to avoid redundant accumulation. +*/ + pmc->counter_val +=perf_event_pause (pmc->perf_event, true); pmc->started = false; }else { sbiret =SBI_ERR_ALREADY_STOPPED ;
@@ -669,11 +674,6 @@ int kvm_riscv_vcpu_pmu_ctr_stop(struct kvm_vcpu *vcpu, unsigned long ctr_base, }if (snap_flag_set && !sbiret) { -if (pmc->cinfo.type ==SBI_PMU_CTR_TYPE_FW ) - pmc->counter_val = kvpmu->fw_event[fevent_code].value; -else if (pmc->perf_event) - pmc->counter_val +=perf_event_read_value (pmc->perf_event, - &enabled, &running);/* * The counter and overflow indicies in the snapshot region are w.r.to * cbase. Modify the set bit in the counter mask instead of the pmc_index
@@ -700,9 +700,10 @@ int kvm_riscv_vcpu_pmu_ctr_stop(struct kvm_vcpu *vcpu, unsigned long ctr_base, } } -if (shmem_needs_update) -kvm_vcpu_write_guest (vcpu, kvpmu->snapshot_addr, kvpmu->sdata, -sizeof (struct riscv_pmu_snapshot_data )); +if (shmem_needs_update && +kvm_vcpu_write_guest (vcpu, kvpmu->snapshot_addr, kvpmu->sdata, +sizeof (struct riscv_pmu_snapshot_data ))) + sbiret =SBI_ERR_FAILURE ; out: retdata->err_val = sbiret;
arch/riscv/kvm/vcpu_sbi_hsm.c +2 -2
@@ -95,9 +95,9 @@ static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, ret =kvm_sbi_hsm_vcpu_get_status (vcpu);if (ret >=0 ) { retdata->out_val = ret; - retdata->err_val =0 ; + ret =0 ; } -return 0 ; +break ;case SBI_EXT_HSM_HART_SUSPEND :switch (lower_32_bits (cp->a0)) {case SBI_HSM_SUSPEND_RET_DEFAULT :
arch/riscv/kvm/vcpu_timer.c +4 -1
@@ -60,10 +60,13 @@ static enum hrtimer_restart kvm_riscv_vcpu_hrtimer_expired(struct hrtimer *h)static int kvm_riscv_vcpu_timer_cancel (struct kvm_vcpu_timer *t) { -if (!t->init_done || !t->next_set) +if (!t->init_done)return -EINVAL ;hrtimer_cancel (&t->hrt); + +if (!t->next_set) +return -EINVAL ; t->next_set = false;return 0 ;
arch/s390/crypto/hmac_s390.c +4 -1
@@ -151,7 +151,10 @@ static int hash_data(const u8 *in, unsigned int inlen,#undef PARAM_INIT -cpacf_klmd (func, ¶m, in, inlen); +if (final) +cpacf_klmd (func, ¶m, in, inlen); +else +cpacf_kimd (func, ¶m, in, inlen);memcpy (digest, ¶m, digestsize);
arch/s390/include/asm/debug.h +6 -2
@@ -460,7 +460,11 @@ static int VNAME(var, active_entries)[EARLY_AREAS] __initdata#define __REGISTER_STATIC_DEBUG_INFO (var, name, pages, areas, view) \ static int __init VNAME(var, reg)(void) \ { \ - debug_register_static(&var, (pages), (areas)); \ + int rc; \ + \ + rc = debug_register_static(&var, (pages), (areas)); \ + if (rc) \ + return rc; \ debug_register_view(&var, (view)); \ return 0; \ } \
@@ -492,7 +496,7 @@ static debug_info_t __refdata var = \__DEBUG_INFO_INIT (var, (name), (buf_size)); \ __REGISTER_STATIC_DEBUG_INFO(var, name, pages, nr_areas, view) -void debug_register_static (debug_info_t *id,int pages_per_area,int nr_areas); +int debug_register_static (debug_info_t *id,int pages_per_area,int nr_areas);#endif /* MODULE */
arch/s390/kernel/debug.c +11 -4
@@ -346,7 +346,8 @@ static debug_info_t *debug_info_copy(debug_info_t *in, int mode)debug_info_free (rc); }while (1 ); -if (mode ==NO_AREAS ) +/* debug_register_static() failure leaves areas NULL, bounds intact */ +if (mode ==NO_AREAS || !in->areas) goto out;for (i =0 ; i < in->nr_areas; i++) {
@@ -862,8 +863,12 @@ EXPORT_SYMBOL(debug_register);* * Note: This function is called automatically via an initcall generated by * DEFINE_STATIC_DEBUG_INFO. +* +* Return: +* - 0 on success +* - negative error code on failure */ -void debug_register_static (debug_info_t *id,int pages_per_area,int nr_areas) +int debug_register_static (debug_info_t *id,int pages_per_area,int nr_areas) {unsigned long flags;debug_info_t *copy;
@@ -871,7 +876,7 @@ void debug_register_static(debug_info_t *id, int pages_per_area, int nr_areas)if (!initialized) {pr_err ("Tried to register debug feature %s too early\n" , id->name); -return ; +return -EINVAL ; } copy = debug_info_alloc("", pages_per_area, nr_areas, id->buf_size,
@@ -886,7 +891,7 @@ void debug_register_static(debug_info_t *id, int pages_per_area, int nr_areas) id->active_entries =NULL ;spin_unlock_irqrestore (&id->lock, flags); -return ; +return -ENOMEM ; }/* Replace static trace area with dynamic copy. */
@@ -904,6 +909,8 @@ void debug_register_static(debug_info_t *id, int pages_per_area, int nr_areas)mutex_lock (&debug_mutex);_debug_register (id);mutex_unlock (&debug_mutex); + +return 0 ; }/* Remove debugfs entries. */
arch/s390/kernel/uv.c +5 -3
@@ -857,7 +857,7 @@ static int find_secret_in_page(const u8 secret_id[UV_SECRET_ID_LEN], {u16 i; -for (i =0 ; i < list->total_num_secrets; i++) { +for (i =0 ; i < list->num_secr_stored; i++) {if (memcmp (secret_id, list->secrets[i].id,UV_SECRET_ID_LEN ) ==0 ) { *secret = list->secrets[i].hdr;return 0 ;
@@ -878,11 +878,14 @@ int uv_find_secret(const u8 secret_id[UV_SECRET_ID_LEN],struct uv_secret_list *list, struct uv_secret_list_item_hdr *secret) { - u16 start_idx = 0; + u16 start_idx;u16 list_rc;int ret; + list->next_secret_idx =0 ; + do { + start_idx = list->next_secret_idx; uv_list_secrets(list, start_idx, &list_rc, NULL); if (list_rc != UVC_RC_EXECUTED && list_rc != UVC_RC_MORE_DATA) { if (list_rc == UVC_RC_INV_CMD)
@@ -893,7 +896,6 @@ int uv_find_secret(const u8 secret_id[UV_SECRET_ID_LEN], ret =find_secret_in_page (secret_id, list, secret);if (ret ==0 )return ret; - start_idx = list->next_secret_idx; }while (list_rc ==UVC_RC_MORE_DATA && start_idx < list->next_secret_idx);return -ENOENT ;
arch/s390/kvm/interrupt.c +38 -32
124 lines not on this page · raw message
arch/s390/pci/pci_event.c +5 -2
@@ -191,6 +191,7 @@ static pci_ers_result_t zpci_event_attempt_error_recovery(struct pci_dev *pdev)device_lock (&pdev->dev);if (pdev->error_state == pci_channel_io_perm_failure) { ers_res =PCI_ERS_RESULT_DISCONNECT ; + status_str ="skipped (permanent failure)" ; goto out_unlock; } pdev->error_state = pci_channel_io_frozen;
@@ -257,8 +258,8 @@ static pci_ers_result_t zpci_event_attempt_error_recovery(struct pci_dev *pdev) driver->err_handler->resume (pdev);pci_uevent_ers (pdev,PCI_ERS_RESULT_RECOVERED ); out_unlock: +zpci_report_status (zdev, pdev,"recovery" , status_str);device_unlock (&pdev->dev); -zpci_report_status (zdev,"recovery" , status_str);return ers_res; }
@@ -321,8 +322,10 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)pr_err ("%s: Event 0x%x reports an error for PCI function 0x%x\n" , pdev ?pci_name (pdev) :"n/a" , ccdf->pec, ccdf->fid); -if (!pdev) +if (!pdev) { +zpci_report_status (zdev,NULL ,"error event" ,"no pdev bound" ); goto no_pdev; + }switch (ccdf->pec) {case 0x002a :/* Error event concerns FMB */
arch/s390/pci/pci_report.c +20 -12
@@ -88,9 +88,23 @@ static struct debug_view debug_log_view = { NULL }; +static ssize_t zpci_report_pdev (struct pci_dev *pdev,char *buf,size_t size) +{ +struct pci_driver *driver; +const char *start = buf; +char *end = buf + size; + +device_lock_assert (&pdev->dev); + buf +=scnprintf (buf, end - buf,"state: %s\n" ,zpci_state_str (pdev->error_state)); + driver =to_pci_driver (pdev->dev.driver); + buf +=scnprintf (buf, end - buf,"driver: %s\n" , (driver) ? driver->name :"n/a" ); +return buf - start; +} +/** * zpci_report_status - Report the status of operations on a PCI device -* @zdev: The PCI device for which to report status +* @zdev: The zPCI device for which to report status +* @pdev: The PCI device associated with the zdev if any, NULL otherwise * @operation: A string representing the operation reported * @status: A string representing the status of the operation *
@@ -104,15 +118,14 @@ static struct debug_view debug_log_view = {* * Return: 0 on success an error code < 0 otherwise. */ -int zpci_report_status (struct zpci_dev *zdev,const char *operation,const char *status) +int zpci_report_status (struct zpci_dev *zdev,struct pci_dev *pdev, +const char *operation,const char *status) {struct zpci_report_error *report; -struct pci_driver *driver =NULL ; -struct pci_dev *pdev =NULL ;char *buf, *end;int ret; -if (!zdev || !zdev->zbus) +if (!zdev)return -ENODEV ;/* Protected virtualization hosts get nothing from us */
@@ -122,18 +135,13 @@ int zpci_report_status(struct zpci_dev *zdev, const char *operation, const char report = (void *)get_zeroed_page (GFP_KERNEL );if (!report)return -ENOMEM ; -if (zdev->zbus->bus) - pdev =pci_get_slot (zdev->zbus->bus, zdev->devfn); -if (pdev) - driver =to_pci_driver (pdev->dev.driver); buf = report->data.log_data; end = report->data.log_data +ZPCI_REPORT_DATA_SIZE ; buf +=scnprintf (buf, end - buf,"report: %s\n" , operation); buf +=scnprintf (buf, end - buf,"status: %s\n" , status); - buf +=scnprintf (buf, end - buf,"state: %s\n" , - (pdev) ?zpci_state_str (pdev->error_state) :"n/a" ); - buf +=scnprintf (buf, end - buf,"driver: %s\n" , (driver) ? driver->name :"n/a" ); +if (pdev) + buf +=zpci_report_pdev (pdev, buf, end - buf); ret =debug_dump (pci_debug_msg_id, &debug_log_view, buf, end - buf, true);if (ret <0 )pr_err ("Reading PCI debug messages failed with code %d\n" , ret);
arch/s390/pci/pci_report.h +3 -1
@@ -8,9 +8,11 @@*/ #ifndef __S390_PCI_REPORT_H#define __S390_PCI_REPORT_H +#include <linux/pci.h> struct zpci_dev ; -int zpci_report_status (struct zpci_dev *zdev,const char *operation,const char *status); +int zpci_report_status (struct zpci_dev *zdev,struct pci_dev *pdev, +const char *operation,const char *status);#endif /* __S390_PCI_REPORT_H */
arch/x86/boot/startup/sev-startup.c +2 -1
@@ -27,7 +27,6 @@#include <asm/cpu_entry_area.h> #include <asm/stacktrace.h> #include <asm/sev.h> -#include <asm/sev-internal.h> #include <asm/insn-eval.h> #include <asm/fpu/xcr.h> #include <asm/processor.h>
@@ -41,6 +40,8 @@#include <asm/cpuid/api.h> #include <asm/cmdline.h> +#include "../../coco/sev/internal.h" +/* Include code shared with pre-decompression boot stage */ #include "sev-shared.c"
arch/x86/coco/sev/Makefile +1 -1
@@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 -obj-y += core.o noinstr.o vc-handle.o +obj-y += core.o noinstr.o vc-handle.o svsm.o # Clang 14 and older may fail to respect __no_sanitize_undefined when inlining UBSAN_SANITIZE_noinstr.o := n
arch/x86/coco/sev/core.c +4 -384
441 lines not on this page · raw message
arch/x86/coco/sev/internal.h new file +119 -0
119 lines not on this page · raw message
arch/x86/coco/sev/noinstr.c +5 -2
@@ -16,7 +16,8 @@#include <asm/msr.h> #include <asm/ptrace.h> #include <asm/sev.h> -#include <asm/sev-internal.h> + +#include "internal.h" static __always_inline bool on_vc_stack(struct pt_regs *regs) {
@@ -120,8 +121,10 @@ noinstr struct ghcb *__sev_get_ghcb(struct ghcb_state *state)WARN_ON (!irqs_disabled ()); -if (!sev_cfg.ghcbs_initialized) +if (!sev_cfg.ghcbs_initialized) { + state->ghcb =NULL ;return boot_ghcb; + } data =this_cpu_read (runtime_data); ghcb = &data->ghcb_page;
arch/x86/coco/sev/svsm.c new file +362 -0
362 lines not on this page · raw message
arch/x86/coco/sev/vc-handle.c +2 -1
@@ -23,7 +23,6 @@#include <asm/init.h> #include <asm/stacktrace.h> #include <asm/sev.h> -#include <asm/sev-internal.h> #include <asm/insn-eval.h> #include <asm/fpu/xcr.h> #include <asm/processor.h>
@@ -35,6 +34,8 @@#include <asm/apic.h> #include <asm/cpuid/api.h> +#include "internal.h" +static enum es_result vc_slow_virt_to_phys (struct ghcb *ghcb,struct es_em_ctxt *ctxt,unsigned long vaddr,phys_addr_t *paddr) {
arch/x86/events/intel/core.c +55 -24
119 lines not on this page · raw message
arch/x86/events/intel/ds.c +21 -15
@@ -315,6 +315,7 @@ static inline void pebs_set_tlb_lock(u64 *val, bool tlb, bool lock)static u64 __grt_latency_data (struct perf_event *event,u64 status,u8 dse,bool tlb,bool lock,bool blk) { +union perf_mem_data_src src;u64 val; WARN_ON_ONCE(is_hybrid() &&
@@ -330,7 +331,16 @@ static u64 __grt_latency_data(struct perf_event *event, u64 status,else val |=P (BLK ,NA ); -return val; + src.val = val; + +if (event->hw.flags & + (PERF_X86_EVENT_PEBS_LDLAT |PERF_X86_EVENT_PEBS_LD_HSW )) + src.mem_op =P (OP ,LOAD ); +if (event->hw.flags & + (PERF_X86_EVENT_PEBS_STLAT |PERF_X86_EVENT_PEBS_ST_HSW )) + src.mem_op =P (OP ,STORE ); + +return src.val; }u64 grt_latency_data (struct perf_event *event,u64 status)
@@ -385,7 +395,11 @@ static u64 lnc_latency_data(struct perf_event *event, u64 status) val |=P (BLK ,NA ); src.val = val; -if (event->hw.flags &PERF_X86_EVENT_PEBS_ST_HSW ) +if (event->hw.flags & + (PERF_X86_EVENT_PEBS_LDLAT |PERF_X86_EVENT_PEBS_LD_HSW )) + src.mem_op =P (OP ,LOAD ); +if (event->hw.flags & + (PERF_X86_EVENT_PEBS_STLAT |PERF_X86_EVENT_PEBS_ST_HSW )) src.mem_op =P (OP ,STORE );return src.val;
@@ -1010,8 +1024,8 @@ struct event_constraint intel_glm_pebs_event_constraints[] = {struct event_constraint intel_grt_pebs_event_constraints[] = {/* Allow all events as PEBS with no flags */ -INTEL_HYBRID_LAT_CONSTRAINT (0x5d0 ,0x3 ), -INTEL_HYBRID_LAT_CONSTRAINT (0x6d0 ,0xf ), +INTEL_HYBRID_LDLAT_CONSTRAINT (0x5d0 ,0x3 ), +INTEL_HYBRID_STLAT_CONSTRAINT (0x6d0 ,0x3f ),EVENT_CONSTRAINT_END };
@@ -1208,19 +1222,11 @@ struct event_constraint intel_lnc_pebs_event_constraints[] = {INTEL_FLAGS_UEVENT_CONSTRAINT (0x100 ,0x100000000ULL ),/* INST_RETIRED.PREC_DIST */ INTEL_FLAGS_UEVENT_CONSTRAINT (0x0400 ,0x800000000ULL ), +INTEL_FLAGS_UEVENT_CONSTRAINT (0x012a ,0x1 ),/* OCR.* events */ +INTEL_FLAGS_UEVENT_CONSTRAINT (0x012b ,0x1 ),/* OCR.* events */ +INTEL_HYBRID_LDLAT_CONSTRAINT (0x1cd ,0x3fc ),INTEL_HYBRID_STLAT_CONSTRAINT (0x2cd ,0x3 ), -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD (0x11d0 ,0xf ),/* MEM_INST_RETIRED.STLB_MISS_LOADS */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST (0x12d0 ,0xf ),/* MEM_INST_RETIRED.STLB_MISS_STORES */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD (0x21d0 ,0xf ),/* MEM_INST_RETIRED.LOCK_LOADS */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD (0x41d0 ,0xf ),/* MEM_INST_RETIRED.SPLIT_LOADS */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST (0x42d0 ,0xf ),/* MEM_INST_RETIRED.SPLIT_STORES */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD (0x81d0 ,0xf ),/* MEM_INST_RETIRED.ALL_LOADS */ -INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST (0x82d0 ,0xf ),/* MEM_INST_RETIRED.ALL_STORES */ - -INTEL_FLAGS_EVENT_CONSTRAINT_DATALA_LD_RANGE (0xd1 ,0xd4 ,0xf ), - -INTEL_FLAGS_EVENT_CONSTRAINT (0xd0 ,0xf ),/* * Everything else is handled by PMU_FL_PEBS_ALL, because we
arch/x86/include/asm/sev-internal.h deleted +0 -87
87 lines not on this page · raw message
arch/x86/kernel/cpu/mce/core.c +10 -17
@@ -2078,6 +2078,9 @@ bool filter_mce(struct mce *m) static __always_inline void exc_machine_check_kernel(struct pt_regs *regs) {irqentry_state_t irq_state; +unsigned long dr7; + + dr7 =local_db_save ();WARN_ON_ONCE (user_mode (regs));
@@ -2086,20 +2089,26 @@ static __always_inline void exc_machine_check_kernel(struct pt_regs *regs)* mce_check_crashing_cpu() for details. */ if (mca_cfg.initialized &&mce_check_crashing_cpu ()) -return ; + goto out; irq_state =irqentry_nmi_enter (regs);do_machine_check (regs);irqentry_nmi_exit (regs, irq_state); +out: +local_db_restore (dr7); } static __always_inline void exc_machine_check_user(struct pt_regs *regs) { +unsigned long dr7; +irqentry_enter_from_user_mode (regs); + dr7 =local_db_save ();do_machine_check (regs); +local_db_restore (dr7);irqentry_exit_to_user_mode (regs); }
@@ -2108,21 +2117,13 @@ static __always_inline void exc_machine_check_user(struct pt_regs *regs)/* MCE hit kernel mode */ DEFINE_IDTENTRY_MCE (exc_machine_check) { -unsigned long dr7; - - dr7 =local_db_save ();exc_machine_check_kernel (regs); -local_db_restore (dr7); }/* The user mode variant. */ DEFINE_IDTENTRY_MCE_USER (exc_machine_check) { -unsigned long dr7; - - dr7 =local_db_save ();exc_machine_check_user (regs); -local_db_restore (dr7); }#ifdef CONFIG_X86_FRED
@@ -2139,28 +2140,20 @@ DEFINE_IDTENTRY_MCE_USER(exc_machine_check)*/ DEFINE_FREDENTRY_MCE (exc_machine_check) { -unsigned long dr7; - - dr7 =local_db_save ();if (user_mode (regs))exc_machine_check_user (regs);else exc_machine_check_kernel (regs); -local_db_restore (dr7); }#endif #else /* 32bit unified entry point */ DEFINE_IDTENTRY_RAW (exc_machine_check) { -unsigned long dr7; - - dr7 =local_db_save ();if (user_mode (regs))exc_machine_check_user (regs);else exc_machine_check_kernel (regs); -local_db_restore (dr7); }#endif
arch/x86/kvm/pmu.c +0 -8
@@ -710,14 +710,6 @@ void kvm_pmu_deliver_pmi(struct kvm_vcpu *vcpu)bool kvm_pmu_is_valid_msr (struct kvm_vcpu *vcpu,u32 msr) { -switch (msr) { -case MSR_CORE_PERF_GLOBAL_STATUS : -case MSR_CORE_PERF_GLOBAL_CTRL : -case MSR_CORE_PERF_GLOBAL_OVF_CTRL : -return kvm_pmu_has_perf_global_ctrl (vcpu_to_pmu (vcpu)); -default : -break ; - }return kvm_pmu_call (msr_idx_to_pmc)(vcpu, msr) ||kvm_pmu_call (is_valid_msr)(vcpu, msr); }
arch/x86/kvm/svm/sev.c +16 -2
@@ -1986,6 +1986,12 @@ static void sev_migrate_from(struct kvm *dst_kvm, struct kvm *src_kvm) src->pages_locked =0 ; src->es_active = false; +/* +* Do cache maintenance on the source VM as it is no longer an SEV VM, +* i.e. memory reclaim flows won't trigger cache maintenance on the VM. +*/ +sev_writeback_caches (src_kvm); +list_cut_before (&dst->regions_list, &src->regions_list, &src->regions_list);mutex_lock (&sev_mirror_lock);
@@ -2125,6 +2131,10 @@ int sev_vm_move_enc_context_from(struct kvm *kvm, unsigned int source_fd)* the set of CPUs from the source. If a CPU was used to run a vCPU in * the source VM but is never used for the destination VM, then the CPU * can only have cached memory that was accessible to the source VM. +* Furthermore, KVM *must* perform cache maintenance on the source VM, +* as the source VM may have access to memory that the destination VM +* does not, i.e. KVM could skip flushes if memory is reclaimed from +* the old VM but not the new VM. */ if (!zalloc_cpumask_var (&dst_sev->have_run_cpus,GFP_KERNEL_ACCOUNT )) { ret = -ENOMEM ;
@@ -2920,13 +2930,17 @@ void sev_vm_destroy(struct kvm *kvm)struct list_head *head = &sev->regions_list;struct list_head *pos, *q; +/* +* Free the mask even if the VM is not *currently* an SEV VM, as it may +* have been an SEV VM prior to intra-host migration. +*/ +free_cpumask_var (sev->have_run_cpus); +if (!sev_guest (kvm))return ;WARN_ON (!list_empty (&sev->mirror_vms)); -free_cpumask_var (sev->have_run_cpus); -/* * If this is a mirror VM, remove it from the owner's list of a mirrors * and skip ASID cleanup (the ASID is tied to the lifetime of the owner).
arch/x86/kvm/vmx/pmu_intel.c +3 -0
@@ -190,6 +190,9 @@ static bool intel_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)int ret;switch (msr) { +case MSR_CORE_PERF_GLOBAL_STATUS : +case MSR_CORE_PERF_GLOBAL_CTRL : +case MSR_CORE_PERF_GLOBAL_OVF_CTRL :case MSR_CORE_PERF_FIXED_CTR_CTRL :return kvm_pmu_has_perf_global_ctrl (pmu);case MSR_IA32_PEBS_ENABLE :
arch/x86/pci/fixup.c +99 -0
105 lines not on this page · raw message
drivers/ata/libata-scsi.c +8 -2
@@ -261,12 +261,18 @@ static void ata_scsi_set_passthru_sense_fields(struct ata_queued_cmd *qc)/* descriptor format */ len = sb[7 ]; - desc = (char *)scsi_sense_desc_find (sb, len +8 ,9 ); + desc = (char *)scsi_sense_desc_find (sb,SCSI_SENSE_BUFFERSIZE ,9 );if (!desc) { -if (SCSI_SENSE_BUFFERSIZE < len +14 ) +/* +* The descriptor is written at sb[8 + len] and is 14 +* bytes long, so it needs len + 22 bytes of buffer. +*/ +if (len +22 >SCSI_SENSE_BUFFERSIZE )return ; sb[7 ] = len +14 ; desc = sb +8 + len; + }else if (desc - sb >SCSI_SENSE_BUFFERSIZE -14 ) { +return ; } desc[0 ] =9 ; desc[1 ] =12 ;
drivers/bluetooth/btintel_pcie.c +16 -0
@@ -1018,6 +1018,11 @@ static void btintel_pcie_msix_tx_handle(struct btintel_pcie_data *data) txq = &data->txq; +if (cr_hia >= txq->count) { +bt_dev_err (data->hdev,"TXQ: invalid cr_hia %u" , cr_hia); +return ; + } +while (cr_tia != cr_hia) { data->tx_wait_done = true;wake_up (&data->tx_wait_q);
@@ -1416,6 +1421,11 @@ static void btintel_pcie_msix_rx_handle(struct btintel_pcie_data *data) rxq = &data->rxq; +if (cr_hia >= rxq->count) { +bt_dev_err (hdev,"RXQ: invalid cr_hia %u" , cr_hia); +return ; + } +/* The firmware sends multiple CD in a single MSI-X and it needs to * process all received CDs in this interrupt. */
@@ -1423,6 +1433,12 @@ static void btintel_pcie_msix_rx_handle(struct btintel_pcie_data *data) urbd1 = &rxq->urbd1s[cr_tia];ipc_print_urbd1 (data->hdev, urbd1, cr_tia); +if (urbd1->frbd_tag >= rxq->count) { +bt_dev_err (hdev,"RXQ: invalid frbd_tag %u" , + urbd1->frbd_tag); +return ; + } + buf = &rxq->bufs[urbd1->frbd_tag];if (!buf) { bt_dev_err(hdev, "RXQ: failed to get the DMA buffer for %d",
drivers/bluetooth/btnxpuart.c +5 -3
@@ -1397,9 +1397,11 @@ static int nxp_process_fw_dump(struct hci_dev *hdev, struct sk_buff *skb) msecs_to_jiffies(20000)); } - err =hci_devcd_append (hdev,skb_clone (skb,GFP_ATOMIC )); -if (err <0 ) - goto free_skb; +if (IS_ENABLED (CONFIG_DEV_COREDUMP )) { + err =hci_devcd_append (hdev,skb_clone (skb,GFP_ATOMIC )); +if (err <0 ) + goto free_skb; + }if (buf_len ==0 ) {bt_dev_warn (hdev,"==== FW dump complete ===" );
drivers/dpll/dpll_netlink.c +1 -2
@@ -1059,8 +1059,7 @@ dpll_pin_ref_sync_state_set(struct dpll_pin *pin,unsigned long i;int ret; - ref_sync_pin =xa_find (&pin->ref_sync_pins, &ref_sync_pin_idx, -ULONG_MAX ,XA_PRESENT ); + ref_sync_pin =xa_load (&pin->ref_sync_pins, ref_sync_pin_idx);if (!ref_sync_pin) {NL_SET_ERR_MSG (extack,"reference sync pin not found" );return -EINVAL ;
drivers/gpio/gpio-arizona.c +6 -2
@@ -115,8 +115,12 @@ static int arizona_gpio_direction_out(struct gpio_chip *chip,if (value) value =ARIZONA_GPN_LVL ; -return regmap_update_bits (arizona->regmap,ARIZONA_GPIO1_CTRL + offset, -ARIZONA_GPN_DIR |ARIZONA_GPN_LVL , value); + ret =regmap_update_bits (arizona->regmap,ARIZONA_GPIO1_CTRL + offset, +ARIZONA_GPN_DIR |ARIZONA_GPN_LVL , value); +if (ret <0 && (val &ARIZONA_GPN_DIR ) && persistent) +pm_runtime_put_autosuspend (chip->parent); + +return ret; } static int arizona_gpio_set(struct gpio_chip *chip, unsigned int offset,
drivers/gpio/gpio-tps65219.c +7 -5
@@ -79,7 +79,7 @@ static int tps65219_gpio_get(struct gpio_chip *gc, unsigned int offset)if (ret)return ret; - ret = !!(val &BIT (TPS65219_MFP_GPIO_STATUS_MASK )); + ret = !!(val &TPS65219_MFP_GPIO_STATUS_MASK );dev_warn (dev,"GPIO%d = %d, MULTI_DEVICE_ENABLE, not a standard GPIO\n" , offset, ret);/*
@@ -87,7 +87,7 @@ static int tps65219_gpio_get(struct gpio_chip *gc, unsigned int offset)* status bit. */ -if (tps65219_gpio_get_direction (gc, offset) ==GPIO_LINE_DIRECTION_OUT ) +if (gc->get_direction (gc, offset) ==GPIO_LINE_DIRECTION_OUT )return -ENOTSUPP ;return ret;
@@ -158,8 +158,10 @@ static int tps65214_gpio_change_direction(struct gpio_chip *gc, unsigned int offif (ret)dev_err (dev,"GPIO%d configured as VSEL, not GPIO\n" , offset); + val = direction ==GPIO_LINE_DIRECTION_OUT ? +TPS65214_GPIO0_DIR_MASK :0 ; ret =regmap_update_bits (gpio->tps->regmap,TPS65219_REG_GENERAL_CONFIG , -TPS65214_GPIO0_DIR_MASK , direction); +TPS65214_GPIO0_DIR_MASK , val);if (ret)dev_err (dev,"Fail to change direction to %u for GPIO%d.\n" , direction, offset);
@@ -176,7 +178,7 @@ static int tps65219_gpio_direction_input(struct gpio_chip *gc, unsigned int offsreturn -ENOTSUPP ; } -if (tps65219_gpio_get_direction (gc, offset) ==GPIO_LINE_DIRECTION_IN ) +if (gc->get_direction (gc, offset) ==GPIO_LINE_DIRECTION_IN )return 0 ;return gpio->change_dir (gc, offset,GPIO_LINE_DIRECTION_IN );
@@ -190,7 +192,7 @@ static int tps65219_gpio_direction_output(struct gpio_chip *gc, unsigned int offif (offset !=TPS6521X_GPIO0_IDX )return 0 ; -if (tps65219_gpio_get_direction (gc, offset) ==GPIO_LINE_DIRECTION_OUT ) +if (gc->get_direction (gc, offset) ==GPIO_LINE_DIRECTION_OUT )return 0 ;return gpio->change_dir (gc, offset,GPIO_LINE_DIRECTION_OUT );
drivers/gpio/gpio-zynq.c +1 -9
@@ -797,15 +797,7 @@ static int __maybe_unused zynq_gpio_runtime_resume(struct device *dev)static int zynq_gpio_request (struct gpio_chip *chip,unsigned int offset) { -int ret; - - ret =pm_runtime_get_sync (chip->parent); - -/* -* If the device is already active pm_runtime_get() will return 1 on -* success, but gpio_request still needs to return 0. -*/ -return ret <0 ? ret :0 ; +return pm_runtime_resume_and_get (chip->parent); }static void zynq_gpio_free (struct gpio_chip *chip,unsigned int offset)
drivers/gpio/gpiolib-cdev.c +25 -7
@@ -2245,18 +2245,19 @@ static void gpio_v2_line_info_changed_to_v1(#endif /* CONFIG_GPIO_CDEV_V1 */ -static void gpio_desc_to_lineinfo (struct gpio_desc *desc, -struct gpio_v2_line_info *info,bool atomic) +static int gpio_desc_to_lineinfo (struct gpio_desc *desc, +struct gpio_v2_line_info *info,bool atomic) {u32 debounce_period_us;unsigned long dflags;const char *label; +memset (info,0 ,sizeof (*info)); +CLASS (gpio_chip_guard, guard)(desc);if (!guard.gc) -return ; +return -ENODEV ; -memset (info,0 ,sizeof (*info)); info->offset =gpiod_hwgpio (desc);if (desc->name)
@@ -2331,6 +2332,8 @@ static void gpio_desc_to_lineinfo(struct gpio_desc *desc, debounce_period_us; info->num_attrs++; } + +return 0 ; }struct gpio_chardev_data {
@@ -2382,6 +2385,7 @@ static int lineinfo_get_v1(struct gpio_chardev_data *cdev, void __user *ip,struct gpio_desc *desc;struct gpioline_info lineinfo;struct gpio_v2_line_info lineinfo_v2; +int ret;if (copy_from_user (&lineinfo, ip,sizeof (lineinfo)))return -EFAULT ;
@@ -2399,7 +2403,10 @@ static int lineinfo_get_v1(struct gpio_chardev_data *cdev, void __user *ip,return -EBUSY ; } -gpio_desc_to_lineinfo (desc, &lineinfo_v2, false); + ret =gpio_desc_to_lineinfo (desc, &lineinfo_v2, false); +if (ret) +return ret; +gpio_v2_line_info_to_v1 (&lineinfo_v2, &lineinfo);if (copy_to_user (ip, &lineinfo,sizeof (lineinfo))) {
@@ -2417,6 +2424,7 @@ static int lineinfo_get(struct gpio_chardev_data *cdev, void __user *ip, {struct gpio_desc *desc;struct gpio_v2_line_info lineinfo; +int ret;if (copy_from_user (&lineinfo, ip,sizeof (lineinfo)))return -EFAULT ;
@@ -2436,7 +2444,10 @@ static int lineinfo_get(struct gpio_chardev_data *cdev, void __user *ip,if (test_and_set_bit (lineinfo.offset, cdev->watched_lines))return -EBUSY ; } -gpio_desc_to_lineinfo (desc, &lineinfo, false); + + ret =gpio_desc_to_lineinfo (desc, &lineinfo, false); +if (ret) +return ret;if (copy_to_user (ip, &lineinfo,sizeof (lineinfo))) {if (watch)
@@ -2562,6 +2573,7 @@ static int lineinfo_changed_notify(struct notifier_block *nb,struct lineinfo_changed_ctx *ctx;struct gpio_desc *desc = data;struct file *fp; +int ret;if (!test_bit (gpiod_hwgpio (desc), cdev->watched_lines))return NOTIFY_DONE ;
@@ -2592,7 +2604,13 @@ static int lineinfo_changed_notify(struct notifier_block *nb, ctx->chg.event_type = action; ctx->chg.timestamp_ns =ktime_get_ns (); -gpio_desc_to_lineinfo (desc, &ctx->chg.info, true); + + ret =gpio_desc_to_lineinfo (desc, &ctx->chg.info, true); +if (ret) { +fput (fp); +return NOTIFY_DONE ; + } +/* Keep the GPIO device alive until we emit the event. */ ctx->gdev =gpio_device_get (desc->gdev); ctx->cdev = cdev;
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +1 -0
@@ -1118,6 +1118,7 @@ static int amdgpu_acpi_enumerate_xcc(void) GFP_KERNEL);if (!xcc_info) {DRM_ERROR ("Failed to allocate memory for xcc info\n" ); +acpi_dev_put (acpi_dev);return -ENOMEM ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +3 -1
@@ -1671,8 +1671,10 @@ static int amdgpu_debugfs_test_ib_show(struct seq_file *m, void *unused)/* Avoid accidently unparking the sched thread during GPU reset */ r =down_write_killable (&adev->reset_domain->sem); -if (r) +if (r) { +pm_runtime_put_autosuspend (dev->dev);return r; + }/* hold on the scheduler */ for (i =0 ; i <AMDGPU_MAX_RINGS ; i++) {
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +4 -4
@@ -5315,7 +5315,7 @@ int amdgpu_device_suspend(struct drm_device *dev, bool notify_clients)dev_warn (adev->dev,"smart shift update failed\n" );if (notify_clients) -drm_client_dev_suspend (adev_to_drm (adev), false); +drm_client_dev_suspend (adev_to_drm (adev));cancel_delayed_work_sync (&adev->delayed_init_work);
@@ -5445,7 +5445,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool notify_clients)flush_delayed_work (&adev->delayed_init_work);if (notify_clients) -drm_client_dev_resume (adev_to_drm (adev), false); +drm_client_dev_resume (adev_to_drm (adev));amdgpu_ras_resume (adev);
@@ -6060,7 +6060,7 @@ int amdgpu_device_reinit_after_reset(struct amdgpu_reset_context *reset_context)if (r) goto out; -drm_client_dev_resume (adev_to_drm (tmp_adev), false); +drm_client_dev_resume (adev_to_drm (tmp_adev));/* * The GPU enters bad state once faulty pages
@@ -6395,7 +6395,7 @@ static void amdgpu_device_halt_activities(struct amdgpu_device *adev,*/ amdgpu_unregister_gpu_instance (tmp_adev); -drm_client_dev_suspend (adev_to_drm (tmp_adev), false); +drm_client_dev_suspend (adev_to_drm (tmp_adev));/* disable ras on ALL IPs */ if (!need_emergency_restart && !amdgpu_reset_in_dpc(adev) &&
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +1 -1
@@ -260,7 +260,6 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, ring->adev = adev; ring->num_hw_submission = sched_hw_submission; ring->sched_score = sched_score; - ring->vmid_wait =dma_fence_get_stub (); ring->idx = adev->num_rings++; adev->rings[ring->idx] = ring;
@@ -380,6 +379,7 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, ring->max_dw = max_dw; ring->hw_prio = hw_prio; + ring->vmid_wait =dma_fence_get_stub ();if (!ring->no_scheduler && ring->funcs->type <AMDGPU_HW_IP_NUM ) { hw_ip = ring->funcs->type;
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +1 -0
@@ -2673,6 +2673,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,amdgpu_bo_unref (&root_bo); error_free_delayed: +dma_fence_put (vm->last_update);
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +12 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +36 -26
62 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.h +28 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/Makefile +5 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/clients/drm_fbdev_client.c +16 -12
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_cursor.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_display_types.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp_mst.c +23 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp_mst.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_link_bw.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_psr.c +26 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_quirks.c +34 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_quirks.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/skl_universal_plane.c +4 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gem/i915_gem_object.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/imagination/pvr_free_list.c +12 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_connector.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_display.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_sched.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_sched.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_uvmm.c +11 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c +14 -9
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/virtio/virtgpu_ioctl.c +46 -3
49 lines not on this page · raw message
drivers/gpu/drm/virtio/virtgpu_submit.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/virtio/virtgpu_vq.c +46 -0
46 lines not on this page · raw message
drivers/gpu/drm/xe/display/xe_display.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/hid/amd-sfh-hid/amd_sfh_common.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/airoha/airoha_npu.c +6 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amazon/ena/ena_netdev.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atl1c/atl1c_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atl1e/atl1e_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atlx/atl1.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +21 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/brocade/bna/bnad.c +18 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_main.c +12 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fman/fman.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_adminq.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_desc_dqo.h +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_ethtool.c +55 -44
99 lines not on this page · raw message
drivers/net/ethernet/google/gve/gve_main.c +67 -26
93 lines not on this page · raw message
drivers/net/ethernet/google/gve/gve_tx_dqo.c +54 -17
71 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/common.h +39 -6
45 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +33 -71
104 lines not on this page · raw message
drivers/net/ethernet/mediatek/mtk_eth_soc.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +36 -9
45 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c +11 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/devcom.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/meta/fbnic/fbnic_csr.h +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c +48 -0
48 lines not on this page · raw message
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c +9 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/meta/fbnic/fbnic_fw.c +62 -12
74 lines not on this page · raw message
drivers/net/ethernet/meta/fbnic/fbnic_fw.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/meta/fbnic/fbnic_pci.c +14 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/crypto/ipsec.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/spacemit/k1_emac.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/hwif.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/ring_mode.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +86 -23
109 lines not on this page · raw message
drivers/net/ethernet/wangxun/txgbe/txgbe_fdir.c +11 -2
Lines of this file are not shown. View the raw message.
drivers/net/macsec.c +43 -41
84 lines not on this page · raw message
drivers/net/ovpn/netlink.c +94 -14
108 lines not on this page · raw message
drivers/net/ovpn/peer.c +94 -27
121 lines not on this page · raw message
drivers/net/ovpn/udp.c +159 -34
193 lines not on this page · raw message
drivers/pinctrl/meson/pinctrl-meson-s4.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/sunxi/pinctrl-sun55i-a523-r.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/sunxi/pinctrl-sun55i-a523.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/sunxi/pinctrl-sunxi.c +67 -15
82 lines not on this page · raw message
drivers/scsi/megaraid/megaraid_sas_base.c +3 -1
Lines of this file are not shown. View the raw message.
fs/smb/client/smb2pdu.c +39 -12
51 lines not on this page · raw message
fs/super.c +23 -20
43 lines not on this page · raw message
kernel/bpf/btf.c +87 -49
136 lines not on this page · raw message
kernel/bpf/hashtab.c +111 -3
114 lines not on this page · raw message
kernel/bpf/memalloc.c +74 -32
106 lines not on this page · raw message
kernel/cgroup/cpuset.c +28 -25
53 lines not on this page · raw message
mm/hugetlb.c +32 -9
41 lines not on this page · raw message
net/core/filter.c +21 -25
46 lines not on this page · raw message
net/ipv4/ipconfig.c +47 -45
92 lines not on this page · raw message
net/ipv4/udp.c +37 -5
42 lines not on this page · raw message
net/nfc/llcp_core.c +122 -53
175 lines not on this page · raw message
net/nfc/llcp_sock.c +47 -18
65 lines not on this page · raw message
net/packet/af_packet.c +65 -39
104 lines not on this page · raw message
net/rose/rose_route.c +64 -17
81 lines not on this page · raw message
net/sched/act_ct.c +30 -11
41 lines not on this page · raw message
tools/lib/bpf/relo_core.c +31 -27
58 lines not on this page · raw message
tools/testing/selftests/bpf/prog_tests/linked_list.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/cgroup/test_cpuset_prs.sh +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/cgroup/test_memcontrol.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/nci/nci_dev.c +28 -17
45 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.