Skip to contentSkip to conversation

Linux 6.10.7

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 29, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.10.7 kernel.

All users of the 6.10 kernel series must upgrade.

The updated 6.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.10.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/ABI/testing/sysfs-devices-system-cpu               |    3 
 Makefile                                                         |    4 
 arch/arm64/kernel/acpi_numa.c                                    |    2 
 arch/arm64/kernel/setup.c                                        |    3 
 arch/arm64/kernel/smp.c                                          |    2 
 arch/arm64/kvm/sys_regs.c                                        |    6 
 arch/arm64/kvm/vgic/vgic-debug.c                                 |    2 
 arch/arm64/kvm/vgic/vgic.h                                       |    7 
 arch/mips/kernel/cpu-probe.c                                     |    4 
 arch/powerpc/include/asm/topology.h                              |   13 
 arch/riscv/kernel/traps.c                                        |    4 
 arch/riscv/mm/init.c                                             |    4 
 arch/s390/boot/startup.c                                         |   55 +--
 arch/s390/boot/vmem.c                                            |   14 
 arch/s390/boot/vmlinux.lds.S                                     |    7 
 arch/s390/include/asm/page.h                                     |    3 
 arch/s390/include/asm/uv.h                                       |    5 
 arch/s390/kernel/vmlinux.lds.S                                   |    2 
 arch/s390/kvm/kvm-s390.h                                         |    7 
 arch/s390/tools/relocs.c                                         |    2 
 block/blk-mq-tag.c                                               |    5 
 drivers/acpi/acpica/acevents.h                                   |    6 
 drivers/acpi/acpica/evregion.c                                   |   12 
 drivers/acpi/acpica/evxfregn.c                                   |   64 ---
 drivers/acpi/ec.c                                                |   14 
 drivers/acpi/internal.h                                          |    1 
 drivers/acpi/scan.c                                              |    2 
 drivers/acpi/video_detect.c                                      |   22 +
 drivers/ata/pata_macio.c                                         |   23 -
 drivers/atm/idt77252.c                                           |    9 
 drivers/bluetooth/btintel.c                                      |   10 
 drivers/bluetooth/btintel_pcie.c                                 |    3 
 drivers/bluetooth/btmtksdio.c                                    |    3 
 drivers/bluetooth/btrtl.c                                        |    1 
 drivers/bluetooth/btusb.c                                        |    4 
 drivers/bluetooth/hci_qca.c                                      |    4 
 drivers/bluetooth/hci_vhci.c                                     |    2 
 drivers/char/xillybus/xillyusb.c                                 |   42 +-
 drivers/gpio/gpio-mlxbf3.c                                       |   14 
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c                           |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c                          |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c                       |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c                          |   53 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h                          |    1 
 drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c                           |    4 
 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c                         |   63 +++
 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.h                         |    7 
 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c                         |    1 
 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c                           |   18 -
 drivers/gpu/drm/amd/amdgpu/soc15d.h                              |    6 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                |   32 +
 drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c          |    4 
 drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c |    3 
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c                     |    4 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c                      |    4 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c                   |    4 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h                          |   14 
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c                        |   20 -
 drivers/gpu/drm/msm/dp/dp_ctrl.c                                 |    2 
 drivers/gpu/drm/msm/dp/dp_panel.c                                |   19 -
 drivers/gpu/drm/msm/msm_mdss.c                                   |    2 
 drivers/gpu/drm/nouveau/nvkm/core/firmware.c                     |    9 
 drivers/gpu/drm/nouveau/nvkm/falcon/fw.c                         |    6 
 drivers/gpu/drm/v3d/v3d_sched.c                                  |   14 
 drivers/gpu/drm/xe/display/xe_display.c                          |    6 
 drivers/gpu/drm/xe/xe_device.c                                   |    4 
 drivers/gpu/drm/xe/xe_exec_queue.c                               |   19 -
 drivers/gpu/drm/xe/xe_exec_queue_types.h                         |   10 
 drivers/gpu/drm/xe/xe_gt_pagefault.c                             |   18 -
 drivers/gpu/drm/xe/xe_guc_submit.c                               |    8 
 drivers/gpu/drm/xe/xe_hw_fence.c                                 |   59 ++-
 drivers/gpu/drm/xe/xe_hw_fence.h                                 |    7 
 drivers/gpu/drm/xe/xe_lrc.c                                      |   48 ++
 drivers/gpu/drm/xe/xe_lrc.h                                      |    3 
 drivers/gpu/drm/xe/xe_mmio.c                                     |   41 +-
 drivers/gpu/drm/xe/xe_mmio.h                                     |    2 
 drivers/gpu/drm/xe/xe_ring_ops.c                                 |   22 -
 drivers/gpu/drm/xe/xe_sched_job.c                                |  180 +++++-----
 drivers/gpu/drm/xe/xe_sched_job.h                                |    7 
 drivers/gpu/drm/xe/xe_sched_job_types.h                          |   20 +
 drivers/gpu/drm/xe/xe_trace.h                                    |   11 
 drivers/hid/wacom_wac.c                                          |    4 
 drivers/i2c/busses/i2c-qcom-geni.c                               |    4 
 drivers/i2c/busses/i2c-tegra.c                                   |    4 
 drivers/input/input-mt.c                                         |    3 
 drivers/input/serio/i8042-acpipnpio.h                            |   20 -
 drivers/input/serio/i8042.c                                      |   10 
 drivers/iommu/io-pgfault.c                                       |    1 
 drivers/iommu/iommufd/device.c                                   |    2 
 drivers/md/dm-ioctl.c                                            |   22 +
 drivers/md/dm.c                                                  |    4 
 drivers/md/persistent-data/dm-space-map-metadata.c               |    4 
 drivers/md/raid1.c                                               |   14 
 drivers/misc/fastrpc.c                                           |   22 -
 drivers/mmc/core/mmc_test.c                                      |    9 
 drivers/mmc/host/dw_mmc.c                                        |    8 
 drivers/mmc/host/mtk-sd.c                                        |    8 
 drivers/net/bonding/bond_main.c                                  |   21 -
 drivers/net/bonding/bond_options.c                               |    2 
 drivers/net/dsa/microchip/ksz_ptp.c                              |    5 
 drivers/net/dsa/mv88e6xxx/global1_atu.c                          |    3 
 drivers/net/dsa/ocelot/felix.c                                   |   11 
 drivers/net/dsa/vitesse-vsc73xx-core.c                           |   45 ++
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c                    |    5 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c                |    3 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c              |    7 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                  |    3 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c          |   28 +
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c          |    3 
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c        |    4 
 drivers/net/ethernet/intel/ice/devlink/devlink_port.c            |    4 
 drivers/net/ethernet/intel/ice/ice_base.c                        |   21 +
 drivers/net/ethernet/intel/ice/ice_txrx.c                        |   47 --
 drivers/net/ethernet/intel/igb/igb_main.c                        |    1 
 drivers/net/ethernet/intel/igc/igc_defines.h                     |    6 
 drivers/net/ethernet/intel/igc/igc_main.c                        |    8 
 drivers/net/ethernet/intel/igc/igc_tsn.c                         |   76 +++-
 drivers/net/ethernet/intel/igc/igc_tsn.h                         |    1 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c              |   23 -
 drivers/net/ethernet/mediatek/mtk_wed.c                          |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c         |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c          |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                |   13 
 drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c      |    6 
 drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c                 |   18 -
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h            |    8 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c       |   10 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h       |    2 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c         |   50 ++
 drivers/net/ethernet/microsoft/mana/mana_en.c                    |   30 +
 drivers/net/ethernet/mscc/ocelot.c                               |   91 ++++-
 drivers/net/ethernet/mscc/ocelot_fdma.c                          |    3 
 drivers/net/ethernet/mscc/ocelot_vsc7514.c                       |    4 
 drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c                    |    8 
 drivers/net/ethernet/xilinx/xilinx_axienet.h                     |   17 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c                |   25 -
 drivers/net/gtp.c                                                |    3 
 drivers/net/wireless/ath/ath12k/dp_tx.c                          |   72 ++++
 drivers/net/wireless/ath/ath12k/hw.c                             |    6 
 drivers/net/wireless/ath/ath12k/hw.h                             |    4 
 drivers/net/wireless/ath/ath12k/mac.c                            |    1 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c      |   13 
 drivers/nvme/host/core.c                                         |    2 
 drivers/platform/surface/aggregator/controller.c                 |    3 
 drivers/platform/x86/dell/Kconfig                                |    1 
 drivers/platform/x86/dell/dell-uart-backlight.c                  |    8 
 drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c      |    3 
 drivers/pmdomain/imx/imx93-pd.c                                  |    5 
 drivers/pmdomain/imx/scu-pd.c                                    |    5 
 drivers/s390/block/dasd.c                                        |   36 +-
 drivers/s390/block/dasd_3990_erp.c                               |   10 
 drivers/s390/block/dasd_eckd.c                                   |   55 +--
 drivers/s390/block/dasd_genhd.c                                  |    1 
 drivers/s390/block/dasd_int.h                                    |    2 
 drivers/s390/crypto/ap_bus.c                                     |    7 
 drivers/spi/spi-cadence-quadspi.c                                |   14 
 drivers/staging/media/atomisp/pci/ia_css_stream_public.h         |    8 
 drivers/staging/media/atomisp/pci/sh_css_internal.h              |   19 -
 drivers/thermal/gov_bang_bang.c                                  |   87 +++-
 drivers/thermal/thermal_core.c                                   |    3 
 drivers/thermal/thermal_debugfs.c                                |    6 
 drivers/thermal/thermal_of.c                                     |   23 -
 drivers/thunderbolt/switch.c                                     |    1 
 drivers/tty/serial/8250/8250_omap.c                              |   33 -
 drivers/tty/serial/atmel_serial.c                                |    2 
 drivers/tty/serial/fsl_lpuart.c                                  |    1 
 drivers/tty/vt/conmakehash.c                                     |   12 
 drivers/usb/host/xhci-mem.c                                      |    2 
 drivers/usb/host/xhci.c                                          |    8 
 drivers/usb/misc/usb-ljca.c                                      |    1 
 drivers/usb/typec/tcpm/tcpm.c                                    |    1 
 fs/btrfs/delayed-ref.c                                           |   67 +++
 fs/btrfs/delayed-ref.h                                           |    2 
 fs/btrfs/extent-tree.c                                           |   51 ++
 fs/btrfs/extent_io.c                                             |   14 
 fs/btrfs/extent_map.c                                            |   22 -
 fs/btrfs/free-space-cache.c                                      |   14 
 fs/btrfs/send.c                                                  |   52 ++
 fs/btrfs/super.c                                                 |   18 -
 fs/btrfs/tree-checker.c                                          |   74 ++++
 fs/ceph/addr.c                                                   |   19 +
 fs/file.c                                                        |   30 -
 fs/fuse/dev.c                                                    |    6 
 fs/inode.c                                                       |   39 ++
 fs/libfs.c                                                       |   35 +
 fs/locks.c                                                       |    2 
 fs/netfs/buffered_read.c                                         |    8 
 fs/netfs/buffered_write.c                                        |    2 
 fs/netfs/fscache_cookie.c                                        |    4 
 fs/netfs/io.c                                                    |  144 ++++++++
 fs/smb/client/cifsglob.h                                         |   17 
 fs/smb/client/file.c                                             |   55 ++-
 fs/smb/client/reparse.c                                          |   11 
 fs/smb/client/smb1ops.c                                          |    2 
 fs/smb/client/smb2ops.c                                          |   42 ++
 fs/smb/client/smb2pdu.c                                          |   40 ++
 fs/smb/client/trace.h                                            |   55 +++
 fs/smb/client/transport.c                                        |    8 
 fs/smb/server/connection.c                                       |   34 +
 fs/smb/server/connection.h                                       |    3 
 fs/smb/server/mgmt/user_session.c                                |    8 
 fs/smb/server/smb2pdu.c                                          |    5 
 include/acpi/acpixf.h                                            |    5 
 include/acpi/video.h                                             |    1 
 include/asm-generic/vmlinux.lds.h                                |   19 -
 include/linux/bitmap.h                                           |   12 
 include/linux/bpf_verifier.h                                     |    4 
 include/linux/dsa/ocelot.h                                       |   47 ++
 include/linux/fs.h                                               |    5 
 include/linux/hugetlb.h                                          |   33 +
 include/linux/io_uring_types.h                                   |    2 
 include/linux/mm.h                                               |   11 
 include/linux/panic.h                                            |    1 
 include/linux/pgalloc_tag.h                                      |   13 
 include/linux/thermal.h                                          |    1 
 include/net/af_vsock.h                                           |    4 
 include/net/bluetooth/hci.h                                      |   17 
 include/net/bluetooth/hci_core.h                                 |    2 
 include/net/kcm.h                                                |    1 
 include/net/mana/mana.h                                          |    1 
 include/scsi/scsi_cmnd.h                                         |    2 
 include/soc/mscc/ocelot.h                                        |   12 
 include/trace/events/netfs.h                                     |    1 
 include/uapi/misc/fastrpc.h                                      |    3 
 init/Kconfig                                                     |   25 -
 io_uring/io_uring.h                                              |    2 
 io_uring/kbuf.c                                                  |    9 
 io_uring/napi.c                                                  |   50 +-
 io_uring/napi.h                                                  |    2 
 kernel/bpf/verifier.c                                            |    5 
 kernel/cgroup/cpuset.c                                           |    5 
 kernel/cpu.c                                                     |   12 
 kernel/events/core.c                                             |    3 
 kernel/kallsyms.c                                                |   60 ---
 kernel/kallsyms_internal.h                                       |    6 
 kernel/kallsyms_selftest.c                                       |   22 -
 kernel/panic.c                                                   |    8 
 kernel/printk/printk.c                                           |    2 
 kernel/trace/trace.c                                             |    2 
 kernel/vmcore_info.c                                             |    4 
 kernel/workqueue.c                                               |   47 +-
 mm/huge_memory.c                                                 |   29 -
 mm/memcontrol.c                                                  |    7 
 mm/memory-failure.c                                              |   20 -
 mm/memory.c                                                      |   33 -
 mm/mm_init.c                                                     |   12 
 mm/mseal.c                                                       |   14 
 mm/page_alloc.c                                                  |   51 +-
 mm/vmalloc.c                                                     |   11 
 net/bluetooth/hci_core.c                                         |   19 -
 net/bluetooth/hci_event.c                                        |    2 
 net/bluetooth/mgmt.c                                             |    4 
 net/bluetooth/smp.c                                              |  144 ++++----
 net/bridge/br_netfilter_hooks.c                                  |    6 
 net/dsa/tag_ocelot.c                                             |   37 --
 net/ipv4/tcp_input.c                                             |   28 -
 net/ipv4/tcp_ipv4.c                                              |   14 
 net/ipv4/udp_offload.c                                           |    3 
 net/ipv6/ip6_output.c                                            |   10 
 net/ipv6/ip6_tunnel.c                                            |   12 
 net/ipv6/netfilter/nf_conntrack_reasm.c                          |    4 
 net/iucv/iucv.c                                                  |    4 
 net/kcm/kcmsock.c                                                |    4 
 net/mctp/test/route-test.c                                       |    2 
 net/mptcp/diag.c                                                 |    2 
 net/mptcp/pm.c                                                   |   13 
 net/mptcp/pm_netlink.c                                           |  142 +++++--
 net/mptcp/protocol.h                                             |    3 
 net/netfilter/nf_flow_table_inet.c                               |    3 
 net/netfilter/nf_flow_table_ip.c                                 |    3 
 net/netfilter/nf_flow_table_offload.c                            |    2 
 net/netfilter/nf_tables_api.c                                    |  147 +++++---
 net/netfilter/nfnetlink.c                                        |    5 
 net/netfilter/nfnetlink_queue.c                                  |   35 +
 net/netfilter/nft_counter.c                                      |    9 
 net/openvswitch/datapath.c                                       |    2 
 net/sched/sch_netem.c                                            |   47 +-
 net/vmw_vsock/af_vsock.c                                         |   50 +-
 net/vmw_vsock/vsock_bpf.c                                        |    4 
 scripts/kallsyms.c                                               |  111 +-----
 scripts/link-vmlinux.sh                                          |  106 +++--
 scripts/rust_is_available.sh                                     |    6 
 security/keys/trusted-keys/trusted_dcp.c                         |   35 +
 security/selinux/avc.c                                           |    8 
 security/selinux/hooks.c                                         |   12 
 sound/core/timer.c                                               |    2 
 sound/pci/hda/patch_realtek.c                                    |    1 
 sound/pci/hda/tas2781_hda_i2c.c                                  |   14 
 sound/usb/quirks-table.h                                         |    1 
 sound/usb/quirks.c                                               |    2 
 tools/perf/tests/vmlinux-kallsyms.c                              |    1 
 tools/testing/selftests/bpf/progs/iters.c                        |   54 +++
 tools/testing/selftests/core/close_range_test.c                  |   35 +
 tools/testing/selftests/drivers/net/mlxsw/ethtool_lanes.sh       |    3 
 tools/testing/selftests/mm/Makefile                              |    2 
 tools/testing/selftests/mm/run_vmtests.sh                        |    3 
 tools/testing/selftests/net/af_unix/msg_oob.c                    |    2 
 tools/testing/selftests/net/lib.sh                               |   11 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                  |   28 +
 tools/testing/selftests/net/udpgro.sh                            |   53 +-
 tools/testing/selftests/tc-testing/tdc.py                        |    1 
 tools/tracing/rtla/src/osnoise_top.c                             |   11 
 302 files changed, 3441 insertions(+), 1720 deletions(-)

Abhinav Jain (1):
selftest: af_unix: Fix kselftest compilation warnings

Abhinav Kumar (4):
drm/msm/dp: fix the max supported bpp logic
drm/msm/dpu: move dpu_encoder's connector assignment to atomic_enable() drm/msm/dp: reset the link phy params before link training drm/msm: fix the highest_bank_bit for sc7180

Al Viro (2):
fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE memcg_write_event_control(): fix a user-triggerable oops

Alex Deucher (3):
drm/amdgpu/jpeg2: properly set atomics vmid field drm/amdgpu/jpeg4: properly set atomics vmid field drm/amdgpu/sdma5.2: limit wptr workaround to sdma 5.2.1

Alexander Gordeev (2):
s390/boot: Avoid possible physmem_info segment corruption s390/boot: Fix KASLR base offset off by __START_KERNEL bytes

Alexander Stein (1):
pmdomain: imx: scu-pd: Remove duplicated clocks

Alexandra Winter (1):
s390/iucv: Fix vargs handling in iucv_alloc_device()

Alexandre Courbot (1):

      Makefile: add $(srctree) to dependency of compile_commands.json target

Andi Shyti (1):
i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume

Asmaa Mnebhi (1):
gpio: mlxbf3: Support shutdown() function

Baochen Qiang (1):
wifi: ath12k: use 128 bytes aligned iova in transmit path for WCN7850

Baojun Xu (1):
ALSA: hda/tas2781: fix wrong calibrated data order

Barak Biber (1):
iommu: Restore lost return in iommu_report_device_fault()

Bas Nieuwenhuizen (1):
drm/amdgpu: Actually check flags for all context ops.

Ben Whitten (1):
mmc: dw_mmc: allow biu and ciu clocks to defer

Bharat Bhushan (1):
octeontx2-af: Fix CPT AF register offset calculation

Boyuan Zhang (2):
drm/amdgpu/vcn: identify unified queue in sw init drm/amdgpu/vcn: not pause dpg for unified queue

Breno Leitao (1):
i2c: tegra: Do not mark ACPI devices as irq safe

Candice Li (1):
drm/amdgpu: Validate TA binary size

Carolina Jubran (1):
net/mlx5e: XPS, Fix oversight of Multi-PF Netdev changes

Celeste Liu (1):

      riscv: entry: always initialize regs->a0 to -ENOSYS

Chaotian Jing (1):
scsi: core: Fix the return value of scsi_logical_block_count()

Chen Ridong (1):
cgroup/cpuset: fix panic caused by partcmd_update

Christian Brauner (2):
pidfd: prevent creation of pidfds for kthreads Revert "pidfd: prevent creation of pidfds for kthreads"

Claudio Imbrenda (1):
s390/uv: Panic for set and remove shared access UVC errors

Cong Wang (1):

      vsock: fix recursive ->recvmsg calls

Cosmin Ratiu (1):
net/mlx5e: Correctly report errors for ethtool rx flows

Dan Carpenter (4):
rtla/osnoise: Prevent NULL dereference in error handling
atm: idt77252: prevent use after free in dequeue_rx()
dpaa2-switch: Fix error checking in dpaa2_switch_seed_bp()
mmc: mmc_test: Fix NULL dereference on allocation failure

Dave Airlie (1):
nouveau/firmware: use dma non-coherent allocator

David (Ming Qiang) Wu (1):
drm/amd/amdgpu: command submission parser for JPEG

David Gstir (2):
KEYS: trusted: fix DCP blob payload length assignment
KEYS: trusted: dcp: fix leak of blob encryption key

David Hildenbrand (1):
mm/hugetlb: fix hugetlb vs. core-mm PT locking

David Howells (2):
netfs, ceph: Revert "netfs: Remove deprecated use of PG_private_2 as a second writeback flag"
cifs: Add a tracepoint to track credits involved in R/W requests

David Thompson (1):
mlxbf_gige: disable RX filters until RX path initialized

Dmitry Baryshkov (5):
drm/msm/dpu: don't play tricks with debug macros drm/msm/dpu: cleanup FB if dpu_format_populate_layout fails drm/msm/dpu: limit QCM2290 to RGB formats only drm/msm/dpu: relax YUV requirements
drm/msm/dpu: take plane rotation into account for wide planes

Donald Hunter (2):
netfilter: nfnetlink: Initialise extack before use in ACKs
netfilter: flowtable: initialise extack before use

Dragos Tatulea (1):
net/mlx5e: Take state lock during tx timeout reporter

Eli Billauer (3):
char: xillybus: Don't destroy workqueue from work item running on it
char: xillybus: Refine workqueue handling
char: xillybus: Check USB endpoints when probing device

Eric Dumazet (4):
gtp: pull network headers in gtp_dev_xmit()
ipv6: prevent UAF in ip6_send_skb()
ipv6: fix possible UAF in ip6_finish_output2()
ipv6: prevent possible UAF in ip6_xmit()

Eric Farman (1):
s390/dasd: Remove DMA alignment

Eugene Syromiatnikov (1):
mptcp: correct MPTCP_SUBFLOW_ATTR_SSN_OFFSET reserved size

Faizal Rahim (4):
igc: Fix packet still tx after gate close by reducing i226 MAC retry buffer
igc: Fix qbv_config_change_errors logics
igc: Fix reset adapter logics when tx mode change
igc: Fix qbv tx latency by setting gtxoffset

Felix Fietkau (1):
udp: fix receiving fraglist GSO packets

Filipe Manana (2):
btrfs: send: allow cloning non-aligned extent if it ends at i_size
btrfs: only run the extent map shrinker from kswapd tasks

Florian Westphal (2):
netfilter: nf_queue: drop packets with cloned unconfirmed conntracks
tcp: prevent concurrent execution of tcp_sk_exit_batch

Greg Kroah-Hartman (1):

      Linux 6.10.7

Griffin Kroah-Hartman (3):
Revert "misc: fastrpc: Restrict untrusted app to attach to privileged PD" Revert "serial: 8250_omap: Set the console genpd always on if no console suspend"
Bluetooth: MGMT: Add error handling to pair_device()

Haibo Xu (1):
arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE

Hailong Liu (1):
mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0

Haiyang Zhang (1):
net: mana: Fix RX buf alloc_size alignment and atomic op panic

Hamza Mahfooz (1):
drm/amd/display: fix s2idle entry for DCN3.5+

Hangbin Liu (2):
selftests: udpgro: report error when receive failed
selftests: udpgro: no need to load xdp for gro

Hans de Goede (5):
usb: misc: ljca: Add Lunar Lake ljca GPIO HID to ljca_gpio_hids[]
media: atomisp: Fix streaming no longer working on BYT / ISP2400 devices
ACPI: video: Add Dell UART backlight controller detection
ACPI: video: Add backlight=native quirk for Dell OptiPlex 7760 AIO platform/x86: dell-uart-backlight: Use acpi_video_get_backlight_type()

Harald Freudenberger (1):
s390/ap: Refine AP bus bindings complete processing

Ido Schimmel (1):
selftests: mlxsw: ethtool_lanes: Source ethtool lib from correct path

Jann Horn (2):
fuse: Initialize beyond-EOF page contents before setting uptodate
kallsyms: get rid of code for absolute kallsyms

Janne Grunau (1):
wifi: brcmfmac: cfg80211: Handle SSID based pmksa deletion

Jason Gerecke (1):
HID: wacom: Defer calculation of resolution until resolution_code is known

Jens Axboe (1):
io_uring/kbuf: sanitize peek buffer setup

Jeremy Kerr (1):
net: mctp: test: Use correct skb for route input check

Jiaxun Yang (1):
MIPS: Loongson64: Set timer mode in cpu-probe

Jie Wang (2):
net: hns3: fix wrong use of semaphore up
net: hns3: fix a deadlock problem when config TC during resetting

Josef Bacik (1):
btrfs: check delayed refs when we're checking if a ref exists

Joseph Huang (1):
net: dsa: mv88e6xxx: Fix out-of-bound access

Juan José Arboleda (1):
ALSA: usb-audio: Support Yamaha P-125 quirk entry

Khazhismel Kumykov (1):
dm resume: don't return EINVAL when signalled

Kirill A. Shutemov (1):
mm: fix endless reclaim on machines with unaccepted memory

Krzysztof Kozlowski (3):
thermal: of: Fix OF node leak in thermal_of_trips_init() error path
thermal: of: Fix OF node leak in thermal_of_zone_register()
thermal: of: Fix OF node leak in of_thermal_zone_find() error paths

Kuniyuki Iwashima (1):
kcm: Serialise kcm_sendmsg() for the same socket.

Kyle Huey (1):
perf/bpf: Don't call bpf_overflow_handler() for tracing events

Leon Hwang (1):
bpf: Fix updating attached freplace prog in prog_array map

Li Lingfeng (1):
block: Fix lockdep warning in blk_mq_mark_tag_wait

Lianqin Hu (1):
ALSA: usb-audio: Add delay quirk for VIVO USB-C-XE710 HEADSET

Loan Chen (1):
drm/amd/display: Enable otg synchronization logic for DCN321

Long Li (1):
net: mana: Fix doorbell out of order violation and avoid unnecessary doorbell rings

Lucas De Marchi (1):
drm/xe: Fix opregion leak

Luiz Augusto von Dentz (3):
Bluetooth: HCI: Invert LE State quirk to be opt-out rather then opt-in
Bluetooth: hci_core: Fix LE quote calculation
Bluetooth: SMP: Fix assumption of Central always being Initiator

Maciej Fijalkowski (3):
ice: fix page reuse when PAGE_SIZE is over 8k
ice: fix ICE_LAST_OFFSET formula
ice: fix truesize operations for PAGE_SIZE >= 8192

Marc Zyngier (2):
usb: xhci: Check for xhci->interrupters being allocated in xhci_mem_clearup()
KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3

Mario Limonciello (1):
drm/amd/display: Don't register panel_power_savings on OLED panels

Martin Whitaker (1):
net: dsa: microchip: fix PTP config failure when using multiple ports

Masahiro Yamada (7):
tty: vt: conmakehash: remove non-portable code printing comment header
kbuild: refactor variables in scripts/link-vmlinux.sh
kbuild: remove PROVIDE() for kallsyms symbols
rust: suppress error messages from CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT
rust: fix the default format for CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT
kbuild: merge temporary vmlinux for BTF and kallsyms
kbuild: avoid scripts/kallsyms parsing /dev/null

Mathias Nyman (1):
xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration

Mathieu Othacehe (1):
tty: atmel_serial: use the correct RTS flag.

Matthew Auld (3):
drm/xe/display: stop calling domains_driver_remove twice drm/xe/mmio: move mmio_fini over to devm drm/xe: reset mmio mappings with devm

Matthew Brost (4):
drm/xe: Fix tile fini sequence
drm/xe: Decouple job seqno and lrc seqno
drm/xe: Free job before xe_exec_queue_put drm/xe: Do not dereference NULL job->fence in trace points

Matthew Wilcox (Oracle) (1):
netfs: Fault in smaller chunks for non-large folio mappings

Matthieu Baerts (NGI0) (14):
selftests: net: lib: ignore possible errors
selftests: net: lib: kill PIDs before del netns
mptcp: pm: re-using ID of unused removed ADD_ADDR
mptcp: pm: re-using ID of unused removed subflows
mptcp: pm: re-using ID of unused flushed subflows
mptcp: pm: remove mptcp_pm_remove_subflow()
mptcp: pm: only mark 'subflow' endp as available
mptcp: pm: only decrement add_addr_accepted for MPJ req
mptcp: pm: check add_addr_accept_max before accepting new ADD_ADDR
mptcp: pm: only in-kernel cannot have entries with ID 0
mptcp: pm: fullmesh: select the right ID later
mptcp: pm: avoid possible UaF when selecting endp
selftests: mptcp: join: validate fullmesh endp on 1st sf
selftests: mptcp: join: check re-using ID of closed subflow

Max Kellermann (1):
fs/netfs/fscache_cookie: add missing "n_accesses" check

Maximilian Luz (1):
platform/surface: aggregator: Fix warning when controller is destroyed in probe

Maíra Canal (1):
drm/v3d: Fix out-of-bounds read in v3d_csd_job_run()

Melissa Wen (1):
drm/amd/display: fix cursor offset on rotation 180

Menglong Dong (1):
net: ovs: fix ovs_drop_reasons error

Mengqi Zhang (1):
mmc: mtk-sd: receive cmd8 data when hs400 tuning fail

Mengyuan Lou (1):
net: ngbe: Fix phy mode set to external phy

Michael Ellerman (1):
ata: pata_macio: Fix DMA table overflow

Michael Mueller (1):
KVM: s390: fix validity interception issue when gisa is switched off

Michal Swiatkowski (1):
ice: use internal pf id instead of function number

Miguel Ojeda (1):
rust: work around bindgen 0.69.0 issue

Mika Westerberg (1):
thunderbolt: Mark XDomain as unplugged when router is removed

Mikulas Patocka (2):
dm persistent data: fix memory allocation failure dm suspend: return -ERESTARTSYS instead of -EINTR

Ming Lei (1):
nvme: move stopping keep-alive into nvme_uninit_ctrl()

Muhammad Usama Anjum (1):
selftests: memfd_secret: don't build memfd_secret test on unsupported arches

Nam Cao (1):
riscv: change XIP's kernel_map.size to be size of the entire kernel

Namjae Jeon (2):
ksmbd: the buffer of smb2 query dir response has at least 1 byte
ksmbd: fix race condition between destroy_previous_session() and smb2 operations()

Naohiro Aota (2):
btrfs: zoned: properly take lock to read/update block group's zoned variables
btrfs: fix invalid mapping of extent xarray state

Nicolin Chen (1):
iommufd/device: Fix hwpt at err_unresv in iommufd_device_do_replace()

Nikolay Aleksandrov (4):
bonding: fix bond_ipsec_offload_ok return type
bonding: fix null pointer deref in bond_ipsec_offload_ok
bonding: fix xfrm real_dev null pointer dereference
bonding: fix xfrm state handling when clearing active slave

Nikolay Kuratov (1):
cxgb4: add forgotten u64 ivlan cast before shift

Nysal Jan K.A (2):
cpu/SMT: Enable SMT only if a core is online powerpc/topology: Check if a core is online

Olivier Langlois (1):
io_uring/napi: check napi_enabled in io_napi_add() before proceeding

Omar Sandoval (1):
filelock: fix name of file_lease slab cache

Pablo Neira Ayuso (1):
netfilter: flowtable: validate vlan header

Paolo Abeni (1):
igb: cope with large MAX_SKB_FRAGS

Parsa Poorshikhian (1):
ALSA: hda/realtek: Fix noise from speakers on Lenovo IdeaPad 3 15IAU7

Patrisious Haddad (1):
net/mlx5: Fix IPsec RoCE MPV trace call

Paul Moore (1):
selinux: revert our use of vma_is_initial_heap()

Paulo Alcantara (1):
smb: client: ignore unhandled reparse tags

Pavel Begunkov (1):
io_uring/napi: use ktime in busy polling

Pawel Dembicki (3):
net: dsa: vsc73xx: fix port MAC configuration in full duplex mode
net: dsa: vsc73xx: pass value in phy_write operation
net: dsa: vsc73xx: check busy flag in MDIO operations

Pedro Falcato (1):
mseal: fix is_madv_discard()

Peiyang Wang (1):
net: hns3: use the user's cfg after reset

Peng Fan (2):
tty: serial: fsl_lpuart: mark last busy before uart_add_one_port
pmdomain: imx: wait SSAR when i.MX93 power domain on

Phil Sutter (3):
netfilter: nf_tables: Audit log dump reset after the fact
netfilter: nf_tables: Introduce nf_tables_getobj_single
netfilter: nf_tables: Add locking for NFT_MSG_GETOBJ_RESET requests

Qu Wenruo (3):
btrfs: tree-checker: reject BTRFS_FT_UNKNOWN dir type
btrfs: tree-checker: add dev extent item checks
btrfs: only enable extent map shrinker for DEBUG builds

Radhey Shyam Pandey (1):
net: axienet: Fix register defines comment description

Rafael J. Wysocki (8):
Revert "ACPI: EC: Evaluate orphan _REG under EC device"
thermal: gov_bang_bang: Call __thermal_cdev_update() directly
ACPICA: Add a depth argument to acpi_execute_reg_methods()
ACPI: EC: Evaluate _REG outside the EC scope more carefully
thermal: gov_bang_bang: Drop unnecessary cooling device target state checks
thermal: gov_bang_bang: Split bang_bang_control()
thermal: gov_bang_bang: Add .manage() callback
thermal: gov_bang_bang: Use governor_data to reduce overhead

Rodrigo Siqueira (1):
drm/amd/display: Adjust cursor position

Rodrigo Vivi (1):
drm/xe: Relax runtime pm protection during execution

Ryo Takakura (1):
printk/panic: Allow cpu backtraces to be written into ringbuffer during panic

Samuel Holland (1):
arm64: Fix KASAN random tag seed initialization

Sean Anderson (2):
net: xilinx: axienet: Always disable promiscuous mode
net: xilinx: axienet: Fix dangling multicast addresses

Sebastian Andrzej Siewior (2):
netfilter: nft_counter: Disable BH in nft_counter_offload_stats().
netfilter: nft_counter: Synchronize nft_counter_reset() against reader.

Simon Horman (1):
tc-testing: don't access non-existent variable on exception

Somnath Kotur (1):
bnxt_en: Fix double DMA unmapping for XDP_REDIRECT

Song Liu (2):
kallsyms: Do not cleanup .llvm.<hash> suffix before sorting symbols
kallsyms: Match symbols exactly with CONFIG_LTO_CLANG

Srinivas Pandruvada (1):
platform/x86: ISST: Fix return value on last invalid resource

Stefan Haberland (1):
s390/dasd: fix error recovery leading to data corruption on ESE devices

Stephen Hemminger (1):
netem: fix return value if duplicate enqueue fails

Steve French (2):
smb3: fix lock breakage for cached writes
smb3: fix broken cached reads when posix locks

Steven Rostedt (1):
tracing: Return from tracing_buffers_read() if the file has been closed

Stuart Summers (1):
drm/xe: Fix missing workqueue destroy in xe_gt_pagefault

Su Hui (1):
smb/client: avoid possible NULL dereference in cifs_free_subrequest()

Subash Abhinov Kasiviswanathan (1):
tcp: Update window clamping condition

Suraj Kandpal (1):
drm/i915/hdcp: Use correct cp_irq_count

Suren Baghdasaryan (2):
alloc_tag: mark pages reserved during CMA activation as not tagged
alloc_tag: introduce clear_page_tag_ref() helper function

Takashi Iwai (2):
ALSA: timer: Relax start tick time check for slave timer elements
ALSA: hda/tas2781: Use correct endian conversion

Tariq Toukan (1):
net/mlx5: SD, Do not query MPIR register if no sd_group

Tejun Heo (1):
workqueue: Fix spruious data race in __flush_work()

Tetsuo Handa (1):
Input: MT - limit max slots

Thomas Bogendoerfer (1):
ip6_tunnel: Fix broken GRO

Thomas Hellström (2):
drm/xe: Split lrc seqno fence creation up drm/xe: Don't initialize fences at xe_sched_job_create()

Thorsten Blum (1):
io_uring/napi: Remove unnecessary s64 cast

Tom Hughes (1):
netfilter: allow ipv6 fragments to arrive on different devices

Vignesh Raghavendra (1):
spi: spi-cadence-quadspi: Fix OSPI NOR failures during system resume

Vladimir Oltean (3):
net: mscc: ocelot: use ocelot_xmit_get_vlan_info() also for FDMA and register injection
net: mscc: ocelot: fix QoS class for injected packets with "ocelot-8021q"
net: mscc: ocelot: serialize access to the injection/extraction groups

Waiman Long (2):
mm/memory-failure: use raw_spinlock_t in struct memory_failure_cpu cgroup/cpuset: Clear effective_xcpus on cpus_allowed clearing only if cpus.exclusive not set

Werner Sembach (2):
Input: i8042 - add forcenorestore quirk to leave controller untouched even on s3
Input: i8042 - use new forcenorestore quirk to replace old buggy quirk combination

Will Deacon (1):
workqueue: Fix UBSAN 'subtraction overflow' error in shift_and_mask()

Xu Yang (1):
Revert "usb: typec: tcpm: clear pd_event queue in PORT_RESET"

Yang Ruibin (1):
thermal/debugfs: Fix the NULL vs IS_ERR() confusion in debugfs_create_dir()

Yonghong Song (2):
bpf: Fix a kernel verifier crash in stacksafe() selftests/bpf: Add a test to verify previous stacksafe() fix

Yu Kuai (1):
md/raid1: Fix data corruption for degraded array with slow disk

Zenghui Yu (1):
KVM: arm64: vgic-debug: Don't put unmarked LPIs

Zhen Lei (2):
selinux: fix potential counting error in avc_add_xperms_decision()
selinux: add the processing of the failure of avc_add_xperms_decision()

Zheng Zhang (1):
net: ethernet: mtk_wed: fix use-after-free panic in mtk_wed_setup_tc_block_cb()

Zhihao Cheng (1):
vfs: Don't evict inode under the inode lru traversing context

Zi Yan (2):
mm/numa: no task_numa_fault() call if PMD is changed mm/numa: no task_numa_fault() call if PTE is changed

yangerkun (1):
libfs: fix infinite directory reads for offset dir

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-devices-system-cpu +2 -1
index e7e160954e79..0579860b5529 100644
@@ -562,7 +562,8 @@ Description:	Control Symmetric Multi Threading (SMT)
 			 ================ =========================================
 
 			 If control status is "forceoff" or "notsupported" writes
-			 are rejected.
+			 are rejected. Note that enabling SMT on PowerPC skips
+			 offline cores.
 
 What:		/sys/devices/system/cpu/cpuX/power/energy_perf_bias
 Date:		March 2019
Makefile +2 -2
index 361a70264e1f..ab77d171e268 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 10
-SUBLEVEL = 6
+SUBLEVEL = 7
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -1986,7 +1986,7 @@ nsdeps: modules
 quiet_cmd_gen_compile_commands = GEN     $@
       cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
 
-$(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \
+$(extmod_prefix)compile_commands.json: $(srctree)/scripts/clang-tools/gen_compile_commands.py \
 	$(if $(KBUILD_EXTMOD),, vmlinux.a $(KBUILD_VMLINUX_LIBS)) \
 	$(if $(CONFIG_MODULES), $(MODORDER)) FORCE
 	$(call if_changed,gen_compile_commands)
arch/arm64/kernel/acpi_numa.c +1 -1
index e51535a5f939..ccbff21ce1fa 100644
@@ -27,7 +27,7 @@
 
 #include <asm/numa.h>
 
-static int acpi_early_node_map[NR_CPUS] __initdata = { NUMA_NO_NODE };
+static int acpi_early_node_map[NR_CPUS] __initdata = { [0 ... NR_CPUS - 1] = NUMA_NO_NODE };
 
 int __init acpi_numa_get_nid(unsigned int cpu)
 {
arch/arm64/kernel/setup.c +0 -3
index a096e2451044..b22d28ec8028 100644
@@ -355,9 +355,6 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
 	smp_init_cpus();
 	smp_build_mpidr_hash();
 
-	/* Init percpu seeds for random tags after cpus are set up. */
-	kasan_init_sw_tags();
-
 #ifdef CONFIG_ARM64_SW_TTBR0_PAN
 	/*
 	 * Make sure init_thread_info.ttbr0 always generates translation
arch/arm64/kernel/smp.c +2 -0
index 5de85dccc09c..05688f6a275f 100644
@@ -469,6 +469,8 @@ void __init smp_prepare_boot_cpu(void)
 		init_gic_priority_masking();
 
 	kasan_init_hw_tags();
+	/* Init percpu seeds for random tags after cpus are set up. */
+	kasan_init_sw_tags();
 }
 
 /*
arch/arm64/kvm/sys_regs.c +6 -0
index 22b45a15d068..33d866ca8f65 100644
@@ -33,6 +33,7 @@
 #include <trace/events/kvm.h>
 
 #include "sys_regs.h"
+#include "vgic/vgic.h"
 
 #include "trace.h"
 
@@ -428,6 +429,11 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
 {
 	bool g1;
 
+	if (!kvm_has_gicv3(vcpu->kvm)) {
+		kvm_inject_undefined(vcpu);
+		return false;
+	}
+
 	if (!p->is_write)
 		return read_from_write_only(vcpu, p, r);
 
arch/arm64/kvm/vgic/vgic-debug.c +1 -1
index bcbc8c986b1d..980fbe4fd82c 100644
@@ -84,7 +84,7 @@ static void iter_unmark_lpis(struct kvm *kvm)
 	struct vgic_irq *irq;
 	unsigned long intid;
 
-	xa_for_each(&dist->lpi_xa, intid, irq) {
+	xa_for_each_marked(&dist->lpi_xa, intid, irq, LPI_XA_MARK_DEBUG_ITER) {
 		xa_clear_mark(&dist->lpi_xa, intid, LPI_XA_MARK_DEBUG_ITER);
 		vgic_put_irq(kvm, irq);
 	}
arch/arm64/kvm/vgic/vgic.h +7 -0
index 03d356a12377..55e3b7108dc9 100644
@@ -346,4 +346,11 @@ void vgic_v4_configure_vsgis(struct kvm *kvm);
 void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);
 int vgic_v4_request_vpe_irq(struct kvm_vcpu *vcpu, int irq);
 
+static inline bool kvm_has_gicv3(struct kvm *kvm)
+{
+	return (static_branch_unlikely(&kvm_vgic_global_state.gicv3_cpuif) &&
+		irqchip_in_kernel(kvm) &&
+		kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3);
+}
+
 #endif
arch/mips/kernel/cpu-probe.c +4 -0
index bda7f193baab..af7412549e6e 100644
@@ -1724,12 +1724,16 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
 		c->ases |= (MIPS_ASE_LOONGSON_MMI | MIPS_ASE_LOONGSON_CAM |
 			MIPS_ASE_LOONGSON_EXT | MIPS_ASE_LOONGSON_EXT2);
 		c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */
+		change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
+				  LOONGSON_CONF6_INTIMER);
 		break;
 	case PRID_IMP_LOONGSON_64G:
 		__cpu_name[cpu] = "ICT Loongson-3";
 		set_elf_platform(cpu, "loongson3a");
 		set_isa(c, MIPS_CPU_ISA_M64R2);
 		decode_cpucfg(c);
+		change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
+				  LOONGSON_CONF6_INTIMER);
 		break;
 	default:
 		panic("Unknown Loongson Processor ID!");
arch/powerpc/include/asm/topology.h +13 -0
index f4e6f2dd04b7..16bacfe8c7a2 100644
@@ -145,6 +145,7 @@ static inline int cpu_to_coregroup_id(int cpu)
 
 #ifdef CONFIG_HOTPLUG_SMT
 #include <linux/cpu_smt.h>
+#include <linux/cpumask.h>
 #include <asm/cputhreads.h>
 
 static inline bool topology_is_primary_thread(unsigned int cpu)
@@ -156,6 +157,18 @@ static inline bool topology_smt_thread_allowed(unsigned int cpu)
 {
 	return cpu_thread_in_core(cpu) < cpu_smt_num_threads;
 }
+
+#define topology_is_core_online topology_is_core_online
+static inline bool topology_is_core_online(unsigned int cpu)
+{
+	int i, first_cpu = cpu_first_thread_sibling(cpu);
+
+	for (i = first_cpu; i < first_cpu + threads_per_core; ++i) {
+		if (cpu_online(i))
+			return true;
+	}
+	return false;
+}
 #endif
 
 #endif /* __KERNEL__ */
arch/riscv/kernel/traps.c +2 -2
index 05a16b1f0aee..51ebfd23e007 100644
@@ -319,6 +319,7 @@ void do_trap_ecall_u(struct pt_regs *regs)
 
 		regs->epc += 4;
 		regs->orig_a0 = regs->a0;
+		regs->a0 = -ENOSYS;
 
 		riscv_v_vstate_discard(regs);
 
@@ -328,8 +329,7 @@ void do_trap_ecall_u(struct pt_regs *regs)
 
 		if (syscall >= 0 && syscall < NR_syscalls)
 			syscall_handler(regs, syscall);
-		else if (syscall != -1)
-			regs->a0 = -ENOSYS;
+
 		/*
 		 * Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
 		 * so the maximum stack offset is 1k bytes (10 bits).
arch/riscv/mm/init.c +2 -2
index 7e25606f858a..c5c66f53971a 100644
@@ -931,7 +931,7 @@ static void __init create_kernel_page_table(pgd_t *pgdir,
 				   PMD_SIZE, PAGE_KERNEL_EXEC);
 
 	/* Map the data in RAM */
-	end_va = kernel_map.virt_addr + XIP_OFFSET + kernel_map.size;
+	end_va = kernel_map.virt_addr + kernel_map.size;
 	for (va = kernel_map.virt_addr + XIP_OFFSET; va < end_va; va += PMD_SIZE)
 		create_pgd_mapping(pgdir, va,
 				   kernel_map.phys_addr + (va - (kernel_map.virt_addr + XIP_OFFSET)),
@@ -1100,7 +1100,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
 
 	phys_ram_base = CONFIG_PHYS_RAM_BASE;
 	kernel_map.phys_addr = (uintptr_t)CONFIG_PHYS_RAM_BASE;
-	kernel_map.size = (uintptr_t)(&_end) - (uintptr_t)(&_sdata);
+	kernel_map.size = (uintptr_t)(&_end) - (uintptr_t)(&_start);
 
 	kernel_map.va_kernel_xip_pa_offset = kernel_map.virt_addr - kernel_map.xiprom;
 #else
arch/s390/boot/startup.c +30 -25

113 lines not on this page · raw message

arch/s390/boot/vmem.c +12 -2
index 40cfce2687c4..3d4dae9905cd 100644
@@ -89,7 +89,7 @@ static void kasan_populate_shadow(unsigned long kernel_start, unsigned long kern
 		}
 		memgap_start = end;
 	}
-	kasan_populate(kernel_start, kernel_end, POPULATE_KASAN_MAP_SHADOW);
+	kasan_populate(kernel_start + TEXT_OFFSET, kernel_end, POPULATE_KASAN_MAP_SHADOW);
 	kasan_populate(0, (unsigned long)__identity_va(0), POPULATE_KASAN_ZERO_SHADOW);
 	kasan_populate(AMODE31_START, AMODE31_END, POPULATE_KASAN_ZERO_SHADOW);
 	if (IS_ENABLED(CONFIG_KASAN_VMALLOC)) {
@@ -466,7 +466,17 @@ void setup_vmem(unsigned long kernel_start, unsigned long kernel_end, unsigned l
 				 (unsigned long)__identity_va(end),
 				 POPULATE_IDENTITY);
 	}
-	pgtable_populate(kernel_start, kernel_end, POPULATE_KERNEL);
+
+	/*
+	 * [kernel_start..kernel_start + TEXT_OFFSET] region is never
+	 * accessed as per the linker script:
+	 *
+	 *	. = TEXT_OFFSET;
+	 *
+	 * Therefore, skip mapping TEXT_OFFSET bytes to prevent access to
+	 * [__kaslr_offset_phys..__kaslr_offset_phys + TEXT_OFFSET] region.
+	 */
+	pgtable_populate(kernel_start + TEXT_OFFSET, kernel_end, POPULATE_KERNEL);
 	pgtable_populate(AMODE31_START, AMODE31_END, POPULATE_DIRECT);
 	pgtable_populate(__abs_lowcore, __abs_lowcore + sizeof(struct lowcore),
 			 POPULATE_ABS_LOWCORE);
arch/s390/boot/vmlinux.lds.S +6 -1
index a750711d44c8..66670212a361 100644
@@ -109,7 +109,12 @@ SECTIONS
 #ifdef CONFIG_KERNEL_UNCOMPRESSED
 	. = ALIGN(PAGE_SIZE);
 	. += AMODE31_SIZE;		/* .amode31 section */
-	. = ALIGN(1 << 20);		/* _SEGMENT_SIZE */
+
+	/*
+	 * Make sure the location counter is not less than TEXT_OFFSET.
+	 * _SEGMENT_SIZE is not available, use ALIGN(1 << 20) instead.
+	 */
+	. = MAX(TEXT_OFFSET, ALIGN(1 << 20));
 #else
 	. = ALIGN(8);
 #endif
arch/s390/include/asm/page.h +2 -1
index 224ff9d433ea..8cac1a737424 100644
@@ -276,8 +276,9 @@ static inline unsigned long virt_to_pfn(const void *kaddr)
 #define AMODE31_SIZE		(3 * PAGE_SIZE)
 
 #define KERNEL_IMAGE_SIZE	(512 * 1024 * 1024)
-#define __START_KERNEL		0x100000
 #define __NO_KASLR_START_KERNEL	CONFIG_KERNEL_IMAGE_BASE
 #define __NO_KASLR_END_KERNEL	(__NO_KASLR_START_KERNEL + KERNEL_IMAGE_SIZE)
 
+#define TEXT_OFFSET		0x100000
+
 #endif /* _S390_PAGE_H */
arch/s390/include/asm/uv.h +4 -1
index 0e7bd3873907..b2e2f9a4163c 100644
@@ -442,7 +442,10 @@ static inline int share(unsigned long addr, u16 cmd)
 
 	if (!uv_call(0, (u64)&uvcb))
 		return 0;
-	return -EINVAL;
+	pr_err("%s UVC failed (rc: 0x%x, rrc: 0x%x), possible hypervisor bug.\n",
+	       uvcb.header.cmd == UVC_CMD_SET_SHARED_ACCESS ? "Share" : "Unshare",
+	       uvcb.header.rc, uvcb.header.rrc);
+	panic("System security cannot be guaranteed unless the system panics now.\n");
 }
 
 /*
arch/s390/kernel/vmlinux.lds.S +1 -1
index a1ce3925ec71..52bd969b2828 100644
@@ -39,7 +39,7 @@ PHDRS {
 
 SECTIONS
 {
-	. = __START_KERNEL;
+	. = TEXT_OFFSET;
 	.text : {
 		_stext = .;		/* Start of text section */
 		_text = .;		/* Text and read-only data */
arch/s390/kvm/kvm-s390.h +6 -1
index bf8534218af3..e680c6bf0c9d 100644
@@ -267,7 +267,12 @@ static inline unsigned long kvm_s390_get_gfn_end(struct kvm_memslots *slots)
 
 static inline u32 kvm_s390_get_gisa_desc(struct kvm *kvm)
 {
-	u32 gd = virt_to_phys(kvm->arch.gisa_int.origin);
+	u32 gd;
+
+	if (!kvm->arch.gisa_int.origin)
+		return 0;
+
+	gd = virt_to_phys(kvm->arch.gisa_int.origin);
 
 	if (gd && sclp.has_gisaf)
 		gd |= GISA_FORMAT1;
arch/s390/tools/relocs.c +1 -1
index a74dbd5c9896..30a732c808f3 100644
@@ -280,7 +280,7 @@ static int do_reloc(struct section *sec, Elf_Rel *rel)
 	case R_390_GOTOFF64:
 		break;
 	case R_390_64:
-		add_reloc(&relocs64, offset - ehdr.e_entry);
+		add_reloc(&relocs64, offset);
 		break;
 	default:
 		die("Unsupported relocation type: %d\n", r_type);
block/blk-mq-tag.c +3 -2
index cc57e2dd9a0b..2cafcf11ee8b 100644
@@ -38,6 +38,7 @@ static void blk_mq_update_wake_batch(struct blk_mq_tags *tags,
 void __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx)
 {
 	unsigned int users;
+	unsigned long flags;
 	struct blk_mq_tags *tags = hctx->tags;
 
 	/*
@@ -56,11 +57,11 @@ void __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx)
 			return;
 	}
 
-	spin_lock_irq(&tags->lock);
+	spin_lock_irqsave(&tags->lock, flags);
 	users = tags->active_queues + 1;
 	WRITE_ONCE(tags->active_queues, users);
 	blk_mq_update_wake_batch(tags, users);
-	spin_unlock_irq(&tags->lock);
+	spin_unlock_irqrestore(&tags->lock, flags);
 }
 
 /*
drivers/acpi/acpica/acevents.h +1 -5
index 2133085deda7..1c5218b79fc2 100644
@@ -188,13 +188,9 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
 		      u8 acpi_ns_is_locked);
 
 void
-acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
+acpi_ev_execute_reg_methods(struct acpi_namespace_node *node, u32 max_depth,
 			    acpi_adr_space_type space_id, u32 function);
 
-void
-acpi_ev_execute_orphan_reg_method(struct acpi_namespace_node *node,
-				  acpi_adr_space_type space_id);
-
 acpi_status
 acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function);
 
drivers/acpi/acpica/evregion.c +9 -3
index dc6004daf624..cf53b9535f18 100644
@@ -20,6 +20,10 @@ extern u8 acpi_gbl_default_address_spaces[];
 
 /* Local prototypes */
 
+static void
+acpi_ev_execute_orphan_reg_method(struct acpi_namespace_node *device_node,
+				  acpi_adr_space_type space_id);
+
 static acpi_status
 acpi_ev_reg_run(acpi_handle obj_handle,
 		u32 level, void *context, void **return_value);
@@ -61,6 +65,7 @@ acpi_status acpi_ev_initialize_op_regions(void)
 						acpi_gbl_default_address_spaces
 						[i])) {
 			acpi_ev_execute_reg_methods(acpi_gbl_root_node,
+						    ACPI_UINT32_MAX,
 						    acpi_gbl_default_address_spaces
 						    [i], ACPI_REG_CONNECT);
 		}
@@ -668,6 +673,7 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
  * FUNCTION:    acpi_ev_execute_reg_methods
  *
  * PARAMETERS:  node            - Namespace node for the device
+ *              max_depth       - Depth to which search for _REG
  *              space_id        - The address space ID
  *              function        - Passed to _REG: On (1) or Off (0)
  *
@@ -679,7 +685,7 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
  ******************************************************************************/
 
 void
-acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
+acpi_ev_execute_reg_methods(struct acpi_namespace_node *node, u32 max_depth,
 			    acpi_adr_space_type space_id, u32 function)
 {
 	struct acpi_reg_walk_info info;
@@ -713,7 +719,7 @@ acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
 	 * regions and _REG methods. (i.e. handlers must be installed for all
 	 * regions of this Space ID before we can run any _REG methods)
 	 */
-	(void)acpi_ns_walk_namespace(ACPI_TYPE_ANY, node, ACPI_UINT32_MAX,
+	(void)acpi_ns_walk_namespace(ACPI_TYPE_ANY, node, max_depth,
 				     ACPI_NS_WALK_UNLOCK, acpi_ev_reg_run, NULL,
 				     &info, NULL);
 
@@ -814,7 +820,7 @@ acpi_ev_reg_run(acpi_handle obj_handle,
  *
  ******************************************************************************/
 
-void
+static void
 acpi_ev_execute_orphan_reg_method(struct acpi_namespace_node *device_node,
 				  acpi_adr_space_type space_id)
 {
drivers/acpi/acpica/evxfregn.c +7 -57

91 lines not on this page · raw message

drivers/acpi/ec.c +9 -5
index 299ec653388c..38d2f6e6b12b 100644
@@ -1487,12 +1487,13 @@ static bool install_gpio_irq_event_handler(struct acpi_ec *ec)
 static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device,
 			       bool call_reg)
 {
-	acpi_handle scope_handle = ec == first_ec ? ACPI_ROOT_OBJECT : ec->handle;
 	acpi_status status;
 
 	acpi_ec_start(ec, false);
 
 	if (!test_bit(EC_FLAGS_EC_HANDLER_INSTALLED, &ec->flags)) {
+		acpi_handle scope_handle = ec == first_ec ? ACPI_ROOT_OBJECT : ec->handle;
+
 		acpi_ec_enter_noirq(ec);
 		status = acpi_install_address_space_handler_no_reg(scope_handle,
 								   ACPI_ADR_SPACE_EC,
@@ -1506,10 +1507,7 @@ static int ec_install_handlers(struct acpi_ec *ec, struct acpi_device *device,
 	}
 
 	if (call_reg && !test_bit(EC_FLAGS_EC_REG_CALLED, &ec->flags)) {
-		acpi_execute_reg_methods(scope_handle, ACPI_ADR_SPACE_EC);
-		if (scope_handle != ec->handle)
-			acpi_execute_orphan_reg_method(ec->handle, ACPI_ADR_SPACE_EC);
-
+		acpi_execute_reg_methods(ec->handle, ACPI_UINT32_MAX, ACPI_ADR_SPACE_EC);
 		set_bit(EC_FLAGS_EC_REG_CALLED, &ec->flags);
 	}
 
@@ -1724,6 +1722,12 @@ static void acpi_ec_remove(struct acpi_device *device)
 	}
 }
 
+void acpi_ec_register_opregions(struct acpi_device *adev)
+{
+	if (first_ec && first_ec->handle != adev->handle)
+		acpi_execute_reg_methods(adev->handle, 1, ACPI_ADR_SPACE_EC);
+}
+
 static acpi_status
 ec_parse_io_ports(struct acpi_resource *resource, void *context)
 {
drivers/acpi/internal.h +1 -0
index 601b670356e5..aadd4c218b32 100644
@@ -223,6 +223,7 @@ int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
 			      acpi_handle handle, acpi_ec_query_func func,
 			      void *data);
 void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
+void acpi_ec_register_opregions(struct acpi_device *adev);
 
 #ifdef CONFIG_PM_SLEEP
 void acpi_ec_flush_work(void);
drivers/acpi/scan.c +2 -0
index 503773707e01..cdc5a74092c7 100644
@@ -2264,6 +2264,8 @@ static int acpi_bus_attach(struct acpi_device *device, void *first_pass)
 	if (device->handler)
 		goto ok;
 
+	acpi_ec_register_opregions(device);
+
 	if (!device->flags.initialized) {
 		device->flags.power_manageable =
 			device->power.states[ACPI_STATE_D0].flags.valid;
drivers/acpi/video_detect.c +22 -0
index 2cc3821b2b16..ff6f260433a1 100644
@@ -54,6 +54,8 @@ static void acpi_video_parse_cmdline(void)
 		acpi_backlight_cmdline = acpi_backlight_nvidia_wmi_ec;
 	if (!strcmp("apple_gmux", acpi_video_backlight_string))
 		acpi_backlight_cmdline = acpi_backlight_apple_gmux;
+	if (!strcmp("dell_uart", acpi_video_backlight_string))
+		acpi_backlight_cmdline = acpi_backlight_dell_uart;
 	if (!strcmp("none", acpi_video_backlight_string))
 		acpi_backlight_cmdline = acpi_backlight_none;
 }
@@ -805,6 +807,21 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		},
 	},
 
+	/*
+	 * Dell AIO (All in Ones) which advertise an UART attached backlight
+	 * controller board in their ACPI tables (and may even have one), but
+	 * which need native backlight control nevertheless.
+	 */
+	{
+	 /* https://bugzilla.redhat.com/show_bug.cgi?id=2303936 */
+	 .callback = video_detect_force_native,
+	 /* Dell OptiPlex 7760 AIO */
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 7760 AIO"),
+		},
+	},
+
 	/*
 	 * Models which have nvidia-ec-wmi support, but should not use it.
 	 * Note this indicates a likely firmware bug on these models and should
@@ -902,6 +919,7 @@ enum acpi_backlight_type __acpi_video_get_backlight_type(bool native, bool *auto
 	static DEFINE_MUTEX(init_mutex);
 	static bool nvidia_wmi_ec_present;
 	static bool apple_gmux_present;
+	static bool dell_uart_present;
 	static bool native_available;
 	static bool init_done;
 	static long video_caps;
@@ -916,6 +934,7 @@ enum acpi_backlight_type __acpi_video_get_backlight_type(bool native, bool *auto
 				    &video_caps, NULL);
 		nvidia_wmi_ec_present = nvidia_wmi_ec_supported();
 		apple_gmux_present = apple_gmux_detect(NULL, NULL);
+		dell_uart_present = acpi_dev_present("DELL0501", NULL, -1);
 		init_done = true;
 	}
 	if (native)
@@ -946,6 +965,9 @@ enum acpi_backlight_type __acpi_video_get_backlight_type(bool native, bool *auto
 	if (apple_gmux_present)
 		return acpi_backlight_apple_gmux;
 
+	if (dell_uart_present)
+		return acpi_backlight_dell_uart;
+
 	/* Use ACPI video if available, except when native should be preferred. */
 	if ((video_caps & ACPI_VIDEO_BACKLIGHT) &&
 	     !(native_available && prefer_native_over_acpi_video()))
drivers/ata/pata_macio.c +15 -8
index 3cb455a32d92..99fc5d9d95d7 100644
@@ -208,6 +208,19 @@ static const char* macio_ata_names[] = {
 /* Don't let a DMA segment go all the way to 64K */
 #define MAX_DBDMA_SEG		0xff00
 
+#ifdef CONFIG_PAGE_SIZE_64KB
+/*
+ * The SCSI core requires the segment size to cover at least a page, so
+ * for 64K page size kernels it must be at least 64K. However the
+ * hardware can't handle 64K, so pata_macio_qc_prep() will split large
+ * requests. To handle the split requests the tablesize must be halved.
+ */
+#define PATA_MACIO_MAX_SEGMENT_SIZE	SZ_64K
+#define PATA_MACIO_SG_TABLESIZE		(MAX_DCMDS / 2)
+#else
+#define PATA_MACIO_MAX_SEGMENT_SIZE	MAX_DBDMA_SEG
+#define PATA_MACIO_SG_TABLESIZE		MAX_DCMDS
+#endif
 
 /*
  * Wait 1s for disk to answer on IDE bus after a hard reset
@@ -912,16 +925,10 @@ static int pata_macio_do_resume(struct pata_macio_priv *priv)
 
 static const struct scsi_host_template pata_macio_sht = {
 	__ATA_BASE_SHT(DRV_NAME),
-	.sg_tablesize		= MAX_DCMDS,
+	.sg_tablesize		= PATA_MACIO_SG_TABLESIZE,
 	/* We may not need that strict one */
 	.dma_boundary		= ATA_DMA_BOUNDARY,
-	/*
-	 * The SCSI core requires the segment size to cover at least a page, so
-	 * for 64K page size kernels this must be at least 64K. However the
-	 * hardware can't handle 64K, so pata_macio_qc_prep() will split large
-	 * requests.
-	 */
-	.max_segment_size	= SZ_64K,
+	.max_segment_size	= PATA_MACIO_MAX_SEGMENT_SIZE,
 	.device_configure	= pata_macio_device_configure,
 	.sdev_groups		= ata_common_sdev_groups,
 	.can_queue		= ATA_DEF_QUEUE,
drivers/atm/idt77252.c +5 -4
index e7f713cd70d3..a876024d8a05 100644
@@ -1118,8 +1118,8 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
 	rpp->len += skb->len;
 
 	if (stat & SAR_RSQE_EPDU) {
+		unsigned int len, truesize;
 		unsigned char *l1l2;
-		unsigned int len;
 
 		l1l2 = (unsigned char *) ((unsigned long) skb->data + skb->len - 6);
 
@@ -1189,14 +1189,15 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
 		ATM_SKB(skb)->vcc = vcc;
 		__net_timestamp(skb);
 
+		truesize = skb->truesize;
 		vcc->push(vcc, skb);
 		atomic_inc(&vcc->stats->rx);
 
-		if (skb->truesize > SAR_FB_SIZE_3)
+		if (truesize > SAR_FB_SIZE_3)
 			add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
-		else if (skb->truesize > SAR_FB_SIZE_2)
+		else if (truesize > SAR_FB_SIZE_2)
 			add_rx_skb(card, 2, SAR_FB_SIZE_2, 1);
-		else if (skb->truesize > SAR_FB_SIZE_1)
+		else if (truesize > SAR_FB_SIZE_1)
 			add_rx_skb(card, 1, SAR_FB_SIZE_1, 1);
 		else
 			add_rx_skb(card, 0, SAR_FB_SIZE_0, 1);
drivers/bluetooth/btintel.c +0 -10
index 93900c37349c..c084dc88d3d9 100644
@@ -2876,9 +2876,6 @@ static int btintel_setup_combined(struct hci_dev *hdev)
 					       INTEL_ROM_LEGACY_NO_WBS_SUPPORT))
 				set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
 					&hdev->quirks);
-			if (ver.hw_variant == 0x08 && ver.fw_variant == 0x22)
-				set_bit(HCI_QUIRK_VALID_LE_STATES,
-					&hdev->quirks);
 
 			err = btintel_legacy_rom_setup(hdev, &ver);
 			break;
@@ -2887,7 +2884,6 @@ static int btintel_setup_combined(struct hci_dev *hdev)
 		case 0x12:      /* ThP */
 		case 0x13:      /* HrP */
 		case 0x14:      /* CcP */
-			set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
 			fallthrough;
 		case 0x0c:	/* WsP */
 			/* Apply the device specific HCI quirks
@@ -2979,9 +2975,6 @@ static int btintel_setup_combined(struct hci_dev *hdev)
 		/* These variants don't seem to support LE Coded PHY */
 		set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);
 
-		/* Set Valid LE States quirk */
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
-
 		/* Setup MSFT Extension support */
 		btintel_set_msft_opcode(hdev, ver.hw_variant);
 
@@ -3003,9 +2996,6 @@ static int btintel_setup_combined(struct hci_dev *hdev)
 		 */
 		set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
 
-		/* Apply LE States quirk from solar onwards */
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
-
 		/* Setup MSFT Extension support */
 		btintel_set_msft_opcode(hdev,
 					INTEL_HW_VARIANT(ver_tlv.cnvi_bt));
drivers/bluetooth/btintel_pcie.c +0 -3
index b8120b98a239..1fd3b7073ab9 100644
@@ -1182,9 +1182,6 @@ static int btintel_pcie_setup(struct hci_dev *hdev)
 		 */
 		set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
 
-		/* Apply LE States quirk from solar onwards */
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
-
 		/* Setup MSFT Extension support */
 		btintel_set_msft_opcode(hdev,
 					INTEL_HW_VARIANT(ver_tlv.cnvi_bt));
drivers/bluetooth/btmtksdio.c +0 -3
index 8ded9ef8089a..bc4700ed3b78 100644
@@ -1144,9 +1144,6 @@ static int btmtksdio_setup(struct hci_dev *hdev)
 			}
 		}
 
-		/* Valid LE States quirk for MediaTek 7921 */
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
-
 		break;
 	case 0x7663:
 	case 0x7668:
drivers/bluetooth/btrtl.c +0 -1
index 4f1e37b4f780..bfcb41a57655 100644
@@ -1287,7 +1287,6 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
 	case CHIP_ID_8852C:
 	case CHIP_ID_8851B:
 	case CHIP_ID_8852BT:
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
 		set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
 
 		/* RTL8852C needs to transmit mSBC data continuously without
drivers/bluetooth/btusb.c +2 -2
index 789c492df6fa..0927f51867c2 100644
@@ -4545,8 +4545,8 @@ static int btusb_probe(struct usb_interface *intf,
 	if (id->driver_info & BTUSB_WIDEBAND_SPEECH)
 		set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
 
-	if (id->driver_info & BTUSB_VALID_LE_STATES)
-		set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+	if (!(id->driver_info & BTUSB_VALID_LE_STATES))
+		set_bit(HCI_QUIRK_BROKEN_LE_STATES, &hdev->quirks);
 
 	if (id->driver_info & BTUSB_DIGIANSWER) {
 		data->cmdreq_type = USB_TYPE_VENDOR;
drivers/bluetooth/hci_qca.c +2 -2
index 9a0bc86f9aac..34c36f0f781e 100644
@@ -2408,8 +2408,8 @@ static int qca_serdev_probe(struct serdev_device *serdev)
 			set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
 				&hdev->quirks);
 
-		if (data->capabilities & QCA_CAP_VALID_LE_STATES)
-			set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+		if (!(data->capabilities & QCA_CAP_VALID_LE_STATES))
+			set_bit(HCI_QUIRK_BROKEN_LE_STATES, &hdev->quirks);
 	}
 
 	return 0;
drivers/bluetooth/hci_vhci.c +0 -2
index 28750a40f0ed..b652d68f0ee1 100644
@@ -425,8 +425,6 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
 	if (opcode & 0x80)
 		set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
 
-	set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
-
 	if (hci_register_dev(hdev) < 0) {
 		BT_ERR("Can't register HCI device");
 		hci_free_dev(hdev);
drivers/char/xillybus/xillyusb.c +34 -8

116 lines not on this page · raw message

drivers/gpio/gpio-mlxbf3.c +14 -0
index d5906d419b0a..10ea71273c89 100644
@@ -39,6 +39,8 @@
 #define MLXBF_GPIO_CAUSE_OR_EVTEN0        0x14
 #define MLXBF_GPIO_CAUSE_OR_CLRCAUSE      0x18
 
+#define MLXBF_GPIO_CLR_ALL_INTS           GENMASK(31, 0)
+
 struct mlxbf3_gpio_context {
 	struct gpio_chip gc;
 
@@ -82,6 +84,8 @@ static void mlxbf3_gpio_irq_disable(struct irq_data *irqd)
 	val = readl(gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0);
 	val &= ~BIT(offset);
 	writel(val, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0);
+
+	writel(BIT(offset), gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE);
 	raw_spin_unlock_irqrestore(&gs->gc.bgpio_lock, flags);
 
 	gpiochip_disable_irq(gc, offset);
@@ -253,6 +257,15 @@ static int mlxbf3_gpio_probe(struct platform_device *pdev)
 	return 0;
 }
 
+static void mlxbf3_gpio_shutdown(struct platform_device *pdev)
+{
+	struct mlxbf3_gpio_context *gs = platform_get_drvdata(pdev);
+
+	/* Disable and clear all interrupts */
+	writel(0, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_EVTEN0);
+	writel(MLXBF_GPIO_CLR_ALL_INTS, gs->gpio_cause_io + MLXBF_GPIO_CAUSE_OR_CLRCAUSE);
+}
+
 static const struct acpi_device_id mlxbf3_gpio_acpi_match[] = {
 	{ "MLNXBF33", 0 },
 	{}
@@ -265,6 +278,7 @@ static struct platform_driver mlxbf3_gpio_driver = {
 		.acpi_match_table = mlxbf3_gpio_acpi_match,
 	},
 	.probe    = mlxbf3_gpio_probe,
+	.shutdown = mlxbf3_gpio_shutdown,
 };
 module_platform_driver(mlxbf3_gpio_driver);
 
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +3 -0
index 13eb2bc69e34..936c98a13a24 100644
@@ -1057,6 +1057,9 @@ static int amdgpu_cs_patch_ibs(struct amdgpu_cs_parser *p,
 			r = amdgpu_ring_parse_cs(ring, p, job, ib);
 			if (r)
 				return r;
+
+			if (ib->sa_bo)
+				ib->gpu_addr =  amdgpu_sa_bo_gpu_addr(ib->sa_bo);
 		} else {
 			ib->ptr = (uint32_t *)kptr;
 			r = amdgpu_ring_patch_cs_in_place(ring, p, job, ib);
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +8 -0
index 5cb33ac99f70..c43d1b6e5d66 100644
@@ -685,16 +685,24 @@ int amdgpu_ctx_ioctl(struct drm_device *dev, void *data,
 
 	switch (args->in.op) {
 	case AMDGPU_CTX_OP_ALLOC_CTX:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_alloc(adev, fpriv, filp, priority, &id);
 		args->out.alloc.ctx_id = id;
 		break;
 	case AMDGPU_CTX_OP_FREE_CTX:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_free(fpriv, id);
 		break;
 	case AMDGPU_CTX_OP_QUERY_STATE:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_query(adev, fpriv, id, &args->out);
 		break;
 	case AMDGPU_CTX_OP_QUERY_STATE2:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_query2(adev, fpriv, id, &args->out);
 		break;
 	case AMDGPU_CTX_OP_GET_STABLE_PSTATE:
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c +3 -0
index 8e8afbd237bc..9aff579c6abf 100644
@@ -166,6 +166,9 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, size_t
 	if (ret)
 		return -EFAULT;
 
+	if (ta_bin_len > PSP_1_MEG)
+		return -EINVAL;
+
 	copy_pos += sizeof(uint32_t);
 
 	ta_bin = kzalloc(ta_bin_len, GFP_KERNEL);
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +26 -27

156 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h +1 -0
index 9f06def236fd..1a5439abd1a0 100644
@@ -329,6 +329,7 @@ struct amdgpu_vcn {
 
 	uint16_t inst_mask;
 	uint8_t	num_inst_per_aid;
+	bool using_unified_queue;
 };
 
 struct amdgpu_fw_shared_rb_ptrs_struct {
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c +2 -2
index ef3e42f6b841..63f84ef6dfcf 100644
@@ -543,11 +543,11 @@ void jpeg_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring,
 
 	amdgpu_ring_write(ring, PACKETJ(mmUVD_LMI_JRBC_IB_VMID_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
-	amdgpu_ring_write(ring, (vmid | (vmid << 4)));
+	amdgpu_ring_write(ring, (vmid | (vmid << 4) | (vmid << 8)));
 
 	amdgpu_ring_write(ring, PACKETJ(mmUVD_LMI_JPEG_VMID_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
-	amdgpu_ring_write(ring, (vmid | (vmid << 4)));
+	amdgpu_ring_write(ring, (vmid | (vmid << 4) | (vmid << 8)));
 
 	amdgpu_ring_write(ring,	PACKETJ(mmUVD_LMI_JRBC_IB_64BIT_BAR_LOW_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c +61 -2

87 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.h +6 -1
index 747a3e5f6856..71c54b294e15 100644
@@ -46,6 +46,9 @@
 
 #define JRBC_DEC_EXTERNAL_REG_WRITE_ADDR				0x18000
 
+#define JPEG_REG_RANGE_START						0x4000
+#define JPEG_REG_RANGE_END						0x41c2
+
 extern const struct amdgpu_ip_block_version jpeg_v4_0_3_ip_block;
 
 void jpeg_v4_0_3_dec_ring_emit_ib(struct amdgpu_ring *ring,
@@ -62,5 +65,7 @@ void jpeg_v4_0_3_dec_ring_insert_end(struct amdgpu_ring *ring);
 void jpeg_v4_0_3_dec_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val);
 void jpeg_v4_0_3_dec_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg,
 					uint32_t val, uint32_t mask);
-
+int jpeg_v4_0_3_dec_ring_parse_cs(struct amdgpu_cs_parser *parser,
+				  struct amdgpu_job *job,
+				  struct amdgpu_ib *ib);
 #endif /* __JPEG_V4_0_3_H__ */
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c +1 -0
index 64c856bfe0cb..90299f66a444 100644
@@ -523,6 +523,7 @@ static const struct amdgpu_ring_funcs jpeg_v5_0_0_dec_ring_vm_funcs = {
 	.get_rptr = jpeg_v5_0_0_dec_ring_get_rptr,
 	.get_wptr = jpeg_v5_0_0_dec_ring_get_wptr,
 	.set_wptr = jpeg_v5_0_0_dec_ring_set_wptr,
+	.parse_cs = jpeg_v4_0_3_dec_ring_parse_cs,
 	.emit_frame_size =
 		SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 +
 		SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 8 +
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c +10 -8
index af1e90159ce3..2e72d445415f 100644
@@ -176,14 +176,16 @@ static void sdma_v5_2_ring_set_wptr(struct amdgpu_ring *ring)
 		DRM_DEBUG("calling WDOORBELL64(0x%08x, 0x%016llx)\n",
 				ring->doorbell_index, ring->wptr << 2);
 		WDOORBELL64(ring->doorbell_index, ring->wptr << 2);
-		/* SDMA seems to miss doorbells sometimes when powergating kicks in.
-		 * Updating the wptr directly will wake it. This is only safe because
-		 * we disallow gfxoff in begin_use() and then allow it again in end_use().
-		 */
-		WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR),
-		       lower_32_bits(ring->wptr << 2));
-		WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI),
-		       upper_32_bits(ring->wptr << 2));
+		if (amdgpu_ip_version(adev, SDMA0_HWIP, 0) == IP_VERSION(5, 2, 1)) {
+			/* SDMA seems to miss doorbells sometimes when powergating kicks in.
+			 * Updating the wptr directly will wake it. This is only safe because
+			 * we disallow gfxoff in begin_use() and then allow it again in end_use().
+			 */
+			WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR),
+			       lower_32_bits(ring->wptr << 2));
+			WREG32(sdma_v5_2_get_reg_offset(adev, ring->me, mmSDMA0_GFX_RB_WPTR_HI),
+			       upper_32_bits(ring->wptr << 2));
+		}
 	} else {
 		DRM_DEBUG("Not using doorbell -- "
 				"mmSDMA%i_GFX_RB_WPTR == 0x%08x "
drivers/gpu/drm/amd/amdgpu/soc15d.h +6 -0
index 2357ff39323f..e74e1983da53 100644
@@ -76,6 +76,12 @@
 			 ((cond & 0xF) << 24) |				\
 			 ((type & 0xF) << 28))
 
+#define CP_PACKETJ_NOP		0x60000000
+#define CP_PACKETJ_GET_REG(x)  ((x) & 0x3FFFF)
+#define CP_PACKETJ_GET_RES(x)  (((x) >> 18) & 0x3F)
+#define CP_PACKETJ_GET_COND(x) (((x) >> 24) & 0xF)
+#define CP_PACKETJ_GET_TYPE(x) (((x) >> 28) & 0xF)
+
 /* Packet 3 types */
 #define	PACKET3_NOP					0x10
 #define	PACKET3_SET_BASE				0x11
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +28 -4
index 836bf9ba620d..8d4ad15b8e17 100644
@@ -2724,6 +2724,9 @@ static int dm_suspend(void *handle)
 
 	hpd_rx_irq_work_suspend(dm);
 
+	if (adev->dm.dc->caps.ips_support)
+		dc_allow_idle_optimizations(adev->dm.dc, true);
+
 	dc_set_power_state(dm->dc, DC_ACPI_CM_POWER_STATE_D3);
 	dc_dmub_srv_set_power_state(dm->dc->ctx->dmub_srv, DC_ACPI_CM_POWER_STATE_D3);
 
@@ -6559,12 +6562,34 @@ static const struct attribute_group amdgpu_group = {
 	.attrs = amdgpu_attrs
 };
 
+static bool
+amdgpu_dm_should_create_sysfs(struct amdgpu_dm_connector *amdgpu_dm_connector)
+{
+	if (amdgpu_dm_abm_level >= 0)
+		return false;
+
+	if (amdgpu_dm_connector->base.connector_type != DRM_MODE_CONNECTOR_eDP)
+		return false;
+
+	/* check for OLED panels */
+	if (amdgpu_dm_connector->bl_idx >= 0) {
+		struct drm_device *drm = amdgpu_dm_connector->base.dev;
+		struct amdgpu_display_manager *dm = &drm_to_adev(drm)->dm;
+		struct amdgpu_dm_backlight_caps *caps;
+
+		caps = &dm->backlight_caps[amdgpu_dm_connector->bl_idx];
+		if (caps->aux_support)
+			return false;
+	}
+
+	return true;
+}
+
 static void amdgpu_dm_connector_unregister(struct drm_connector *connector)
 {
 	struct amdgpu_dm_connector *amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
 
-	if (connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
-	    amdgpu_dm_abm_level < 0)
+	if (amdgpu_dm_should_create_sysfs(amdgpu_dm_connector))
 		sysfs_remove_group(&connector->kdev->kobj, &amdgpu_group);
 
 	drm_dp_aux_unregister(&amdgpu_dm_connector->dm_dp_aux.aux);
@@ -6671,8 +6696,7 @@ amdgpu_dm_connector_late_register(struct drm_connector *connector)
 		to_amdgpu_dm_connector(connector);
 	int r;
 
-	if (connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
-	    amdgpu_dm_abm_level < 0) {
+	if (amdgpu_dm_should_create_sysfs(amdgpu_dm_connector)) {
 		r = sysfs_create_group(&connector->kdev->kobj,
 				       &amdgpu_group);
 		if (r)
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c +2 -2
index 3306684e805a..872f994dd356 100644
@@ -3605,7 +3605,7 @@ void dcn10_set_cursor_position(struct pipe_ctx *pipe_ctx)
 						(int)hubp->curs_attr.width || pos_cpy.x
 						<= (int)hubp->curs_attr.width +
 						pipe_ctx->plane_state->src_rect.x) {
-						pos_cpy.x = temp_x + viewport_width;
+						pos_cpy.x = 2 * viewport_width - temp_x;
 					}
 				}
 			} else {
@@ -3698,7 +3698,7 @@ void dcn10_set_cursor_position(struct pipe_ctx *pipe_ctx)
 						(int)hubp->curs_attr.width || pos_cpy.x
 						<= (int)hubp->curs_attr.width +
 						pipe_ctx->plane_state->src_rect.x) {
-						pos_cpy.x = 2 * viewport_width - temp_x;
+						pos_cpy.x = temp_x + viewport_width;
 					}
 				}
 			} else {
drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c +3 -0
index 9a3cc0514a36..8e0588b1cf30 100644
@@ -1778,6 +1778,9 @@ static bool dcn321_resource_construct(
 	dc->caps.color.mpc.ogam_rom_caps.hlg = 0;
 	dc->caps.color.mpc.ocsc = 1;
 
+	/* Use pipe context based otg sync logic */
+	dc->config.use_pipe_ctx_sync_logic = true;
+
 	dc->config.dc_mode_clk_limit_support = true;
 	dc->config.enable_windowed_mpo_odm = true;
 	/* read VBIOS LTTPR caps */
drivers/gpu/drm/i915/display/intel_dp_hdcp.c +3 -1
index 92b03073acdd..555428606e12 100644
@@ -39,7 +39,9 @@ static u32 transcoder_to_stream_enc_status(enum transcoder cpu_transcoder)
 static void intel_dp_hdcp_wait_for_cp_irq(struct intel_connector *connector,
 					  int timeout)
 {
-	struct intel_hdcp *hdcp = &connector->hdcp;
+	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
+	struct intel_dp *dp = &dig_port->dp;
+	struct intel_hdcp *hdcp = &dp->attached_connector->hdcp;
 	long ret;
 
 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count))
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +2 -2
index 697ad4a64051..a6c5e3bc9bf1 100644
@@ -1179,8 +1179,6 @@ static void dpu_encoder_virt_atomic_mode_set(struct drm_encoder *drm_enc,
 
 	cstate->num_mixers = num_lm;
 
-	dpu_enc->connector = conn_state->connector;
-
 	for (i = 0; i < dpu_enc->num_phys_encs; i++) {
 		struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i];
 
@@ -1277,6 +1275,8 @@ static void dpu_encoder_virt_atomic_enable(struct drm_encoder *drm_enc,
 
 	dpu_enc->commit_done_timedout = false;
 
+	dpu_enc->connector = drm_atomic_get_new_connector_for_encoder(state, drm_enc);
+
 	cur_mode = &dpu_enc->base.crtc->state->adjusted_mode;
 
 	dpu_enc->wide_bus_en = dpu_encoder_is_widebus_enabled(drm_enc);
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c +2 -2
index 9b72977feafa..e61b5681f3bb 100644
@@ -308,8 +308,8 @@ static const u32 wb2_formats_rgb_yuv[] = {
 	{ \
 	.maxdwnscale = SSPP_UNITY_SCALE, \
 	.maxupscale = SSPP_UNITY_SCALE, \
-	.format_list = plane_formats_yuv, \
-	.num_formats = ARRAY_SIZE(plane_formats_yuv), \
+	.format_list = plane_formats, \
+	.num_formats = ARRAY_SIZE(plane_formats), \
 	.virt_format_list = plane_formats, \
 	.virt_num_formats = ARRAY_SIZE(plane_formats), \
 	}
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +2 -12
index e2adc937ea63..935ff6fd172c 100644
@@ -31,24 +31,14 @@
  * @fmt: Pointer to format string
  */
 #define DPU_DEBUG(fmt, ...)                                                \
-	do {                                                               \
-		if (drm_debug_enabled(DRM_UT_KMS))                         \
-			DRM_DEBUG(fmt, ##__VA_ARGS__); \
-		else                                                       \
-			pr_debug(fmt, ##__VA_ARGS__);                      \
-	} while (0)
+	DRM_DEBUG_DRIVER(fmt, ##__VA_ARGS__)
 
 /**
  * DPU_DEBUG_DRIVER - macro for hardware driver logging
  * @fmt: Pointer to format string
  */
 #define DPU_DEBUG_DRIVER(fmt, ...)                                         \
-	do {                                                               \
-		if (drm_debug_enabled(DRM_UT_DRIVER))                      \
-			DRM_ERROR(fmt, ##__VA_ARGS__); \
-		else                                                       \
-			pr_debug(fmt, ##__VA_ARGS__);                      \
-	} while (0)
+	DRM_DEBUG_DRIVER(fmt, ##__VA_ARGS__)
 
 #define DPU_ERROR(fmt, ...) pr_err("[dpu error]" fmt, ##__VA_ARGS__)
 #define DPU_ERROR_RATELIMITED(fmt, ...) pr_err_ratelimited("[dpu error]" fmt, ##__VA_ARGS__)
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +17 -3
index 1c3a2657450c..c31d283d1c6c 100644
@@ -680,6 +680,9 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
 			new_state->fb, &layout);
 	if (ret) {
 		DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret);
+		if (pstate->aspace)
+			msm_framebuffer_cleanup(new_state->fb, pstate->aspace,
+						pstate->needs_dirtyfb);
 		return ret;
 	}
 
@@ -743,10 +746,9 @@ static int dpu_plane_atomic_check_pipe(struct dpu_plane *pdpu,
 	min_src_size = MSM_FORMAT_IS_YUV(fmt) ? 2 : 1;
 
 	if (MSM_FORMAT_IS_YUV(fmt) &&
-	    (!pipe->sspp->cap->sblk->scaler_blk.len ||
-	     !pipe->sspp->cap->sblk->csc_blk.len)) {
+	    !pipe->sspp->cap->sblk->csc_blk.len) {
 		DPU_DEBUG_PLANE(pdpu,
-				"plane doesn't have scaler/csc for yuv\n");
+				"plane doesn't have csc for yuv\n");
 		return -EINVAL;
 	}
 
@@ -863,6 +865,10 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
 
 	max_linewidth = pdpu->catalog->caps->max_linewidth;
 
+	drm_rect_rotate(&pipe_cfg->src_rect,
+			new_plane_state->fb->width, new_plane_state->fb->height,
+			new_plane_state->rotation);
+
 	if ((drm_rect_width(&pipe_cfg->src_rect) > max_linewidth) ||
 	     _dpu_plane_calc_clk(&crtc_state->adjusted_mode, pipe_cfg) > max_mdp_clk_rate) {
 		/*
@@ -912,6 +918,14 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
 		r_pipe_cfg->dst_rect.x1 = pipe_cfg->dst_rect.x2;
 	}
 
+	drm_rect_rotate_inv(&pipe_cfg->src_rect,
+			    new_plane_state->fb->width, new_plane_state->fb->height,
+			    new_plane_state->rotation);
+	if (r_pipe->sspp)
+		drm_rect_rotate_inv(&r_pipe_cfg->src_rect,
+				    new_plane_state->fb->width, new_plane_state->fb->height,
+				    new_plane_state->rotation);
+
 	ret = dpu_plane_atomic_check_pipe(pdpu, pipe, pipe_cfg, fmt, &crtc_state->adjusted_mode);
 	if (ret)
 		return ret;
drivers/gpu/drm/msm/dp/dp_ctrl.c +2 -0
index 7bc8a9f0657a..f342fc5ae41e 100644
@@ -1286,6 +1286,8 @@ static int dp_ctrl_link_train(struct dp_ctrl_private *ctrl,
 	link_info.rate = ctrl->link->link_params.rate;
 	link_info.capabilities = DP_LINK_CAP_ENHANCED_FRAMING;
 
+	dp_link_reset_phy_params_vx_px(ctrl->link);
+
 	dp_aux_link_configure(ctrl->aux, &link_info);
 
 	if (drm_dp_max_downspread(dpcd))
drivers/gpu/drm/msm/dp/dp_panel.c +10 -9
index 07db8f37cd06..017fb8cc8ab6 100644
@@ -90,22 +90,22 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel)
 static u32 dp_panel_get_supported_bpp(struct dp_panel *dp_panel,
 		u32 mode_edid_bpp, u32 mode_pclk_khz)
 {
-	struct dp_link_info *link_info;
+	const struct dp_link_info *link_info;
 	const u32 max_supported_bpp = 30, min_supported_bpp = 18;
-	u32 bpp = 0, data_rate_khz = 0;
+	u32 bpp, data_rate_khz;
 
-	bpp = min_t(u32, mode_edid_bpp, max_supported_bpp);
+	bpp = min(mode_edid_bpp, max_supported_bpp);
 
 	link_info = &dp_panel->link_info;
 	data_rate_khz = link_info->num_lanes * link_info->rate * 8;
 
-	while (bpp > min_supported_bpp) {
+	do {
 		if (mode_pclk_khz * bpp <= data_rate_khz)
-			break;
+			return bpp;
 		bpp -= 6;
-	}
+	} while (bpp > min_supported_bpp);
 
-	return bpp;
+	return min_supported_bpp;
 }
 
 static int dp_panel_update_modes(struct drm_connector *connector,
@@ -442,8 +442,9 @@ int dp_panel_init_panel_info(struct dp_panel *dp_panel)
 				drm_mode->clock);
 	drm_dbg_dp(panel->drm_dev, "bpp = %d\n", dp_panel->dp_mode.bpp);
 
-	dp_panel->dp_mode.bpp = max_t(u32, 18,
-				min_t(u32, dp_panel->dp_mode.bpp, 30));
+	dp_panel->dp_mode.bpp = dp_panel_get_mode_bpp(dp_panel, dp_panel->dp_mode.bpp,
+						      dp_panel->dp_mode.drm_mode.clock);
+
 	drm_dbg_dp(panel->drm_dev, "updated bpp = %d\n",
 				dp_panel->dp_mode.bpp);
 
drivers/gpu/drm/msm/msm_mdss.c +1 -1
index fab6ad4e5107..ec7527417802 100644
@@ -577,7 +577,7 @@ static const struct msm_mdss_data sc7180_data = {
 	.ubwc_enc_version = UBWC_2_0,
 	.ubwc_dec_version = UBWC_2_0,
 	.ubwc_static = 0x1e,
-	.highest_bank_bit = 0x3,
+	.highest_bank_bit = 0x1,
 	.reg_bus_bw = 76800,
 };
 
drivers/gpu/drm/nouveau/nvkm/core/firmware.c +6 -3
index adc60b25f8e6..0af01a0ec601 100644
@@ -205,7 +205,8 @@ nvkm_firmware_dtor(struct nvkm_firmware *fw)
 		break;
 	case NVKM_FIRMWARE_IMG_DMA:
 		nvkm_memory_unref(&memory);
-		dma_free_coherent(fw->device->dev, sg_dma_len(&fw->mem.sgl), fw->img, fw->phys);
+		dma_free_noncoherent(fw->device->dev, sg_dma_len(&fw->mem.sgl),
+				     fw->img, fw->phys, DMA_TO_DEVICE);
 		break;
 	case NVKM_FIRMWARE_IMG_SGT:
 		nvkm_memory_unref(&memory);
@@ -236,10 +237,12 @@ nvkm_firmware_ctor(const struct nvkm_firmware_func *func, const char *name,
 		break;
 	case NVKM_FIRMWARE_IMG_DMA: {
 		dma_addr_t addr;
-
 		len = ALIGN(fw->len, PAGE_SIZE);
 
-		fw->img = dma_alloc_coherent(fw->device->dev, len, &addr, GFP_KERNEL);
+		fw->img = dma_alloc_noncoherent(fw->device->dev,
+						len, &addr,
+						DMA_TO_DEVICE,
+						GFP_KERNEL);
 		if (fw->img) {
 			memcpy(fw->img, src, fw->len);
 			fw->phys = addr;
drivers/gpu/drm/nouveau/nvkm/falcon/fw.c +6 -0
index 80a480b12174..a1c8545f1249 100644
@@ -89,6 +89,12 @@ nvkm_falcon_fw_boot(struct nvkm_falcon_fw *fw, struct nvkm_subdev *user,
 		nvkm_falcon_fw_dtor_sigs(fw);
 	}
 
+	/* after last write to the img, sync dma mappings */
+	dma_sync_single_for_device(fw->fw.device->dev,
+				   fw->fw.phys,
+				   sg_dma_len(&fw->fw.mem.sgl),
+				   DMA_TO_DEVICE);
+
 	FLCNFW_DBG(fw, "resetting");
 	fw->func->reset(fw);
 
drivers/gpu/drm/v3d/v3d_sched.c +11 -3
index 30d5366d6288..0132403b8159 100644
@@ -315,7 +315,7 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
 	struct v3d_dev *v3d = job->base.v3d;
 	struct drm_device *dev = &v3d->drm;
 	struct dma_fence *fence;
-	int i, csd_cfg0_reg, csd_cfg_reg_count;
+	int i, csd_cfg0_reg;
 
 	v3d->csd_job = job;
 
@@ -335,9 +335,17 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
 	v3d_switch_perfmon(v3d, &job->base);
 
 	csd_cfg0_reg = V3D_CSD_QUEUED_CFG0(v3d->ver);
-	csd_cfg_reg_count = v3d->ver < 71 ? 6 : 7;
-	for (i = 1; i <= csd_cfg_reg_count; i++)
+	for (i = 1; i <= 6; i++)
 		V3D_CORE_WRITE(0, csd_cfg0_reg + 4 * i, job->args.cfg[i]);
+
+	/* Although V3D 7.1 has an eighth configuration register, we are not
+	 * using it. Therefore, make sure it remains unused.
+	 *
+	 * XXX: Set the CFG7 register
+	 */
+	if (v3d->ver >= 71)
+		V3D_CORE_WRITE(0, V3D_V7_CSD_QUEUED_CFG7, 0);
+
 	/* CFG0 write kicks off the job. */
 	V3D_CORE_WRITE(0, csd_cfg0_reg, job->args.cfg[0]);
 
drivers/gpu/drm/xe/display/xe_display.c +4 -2
index 0de0566e5b39..7cdc03dc40ed 100644
@@ -134,7 +134,7 @@ static void xe_display_fini_noirq(struct drm_device *dev, void *dummy)
 		return;
 
 	intel_display_driver_remove_noirq(xe);
-	intel_power_domains_driver_remove(xe);
+	intel_opregion_cleanup(xe);
 }
 
 int xe_display_init_noirq(struct xe_device *xe)
@@ -160,8 +160,10 @@ int xe_display_init_noirq(struct xe_device *xe)
 	intel_display_device_info_runtime_init(xe);
 
 	err = intel_display_driver_probe_noirq(xe);
-	if (err)
+	if (err) {
+		intel_opregion_cleanup(xe);
 		return err;
+	}
 
 	return drmm_add_action_or_reset(&xe->drm, xe_display_fini_noirq, NULL);
 }
drivers/gpu/drm/xe/xe_device.c +3 -1
index 5ef9b50a20d0..a1cbdafbff75 100644
@@ -551,7 +551,9 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		return err;
 
-	xe_mmio_probe_tiles(xe);
+	err = xe_mmio_probe_tiles(xe);
+	if (err)
+		return err;
 
 	xe_ttm_sys_mgr_init(xe);
 
drivers/gpu/drm/xe/xe_exec_queue.c +0 -19
index 395de93579fa..2ae4420e2935 100644
@@ -96,17 +96,11 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
 		}
 	}
 
-	if (xe_exec_queue_is_parallel(q)) {
-		q->parallel.composite_fence_ctx = dma_fence_context_alloc(1);
-		q->parallel.composite_fence_seqno = XE_FENCE_INITIAL_SEQNO;
-	}
-
 	return q;
 }
 
 static int __xe_exec_queue_init(struct xe_exec_queue *q)
 {
-	struct xe_device *xe = gt_to_xe(q->gt);
 	int i, err;
 
 	for (i = 0; i < q->width; ++i) {
@@ -119,17 +113,6 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 	if (err)
 		goto err_lrc;
 
-	/*
-	 * Normally the user vm holds an rpm ref to keep the device
-	 * awake, and the context holds a ref for the vm, however for
-	 * some engines we use the kernels migrate vm underneath which offers no
-	 * such rpm ref, or we lack a vm. Make sure we keep a ref here, so we
-	 * can perform GuC CT actions when needed. Caller is expected to have
-	 * already grabbed the rpm ref outside any sensitive locks.
-	 */
-	if (!(q->flags & EXEC_QUEUE_FLAG_PERMANENT) && (q->flags & EXEC_QUEUE_FLAG_VM || !q->vm))
-		xe_pm_runtime_get_noresume(xe);
-
 	return 0;
 
 err_lrc:
@@ -216,8 +199,6 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
 
 	for (i = 0; i < q->width; ++i)
 		xe_lrc_finish(q->lrc + i);
-	if (!(q->flags & EXEC_QUEUE_FLAG_PERMANENT) && (q->flags & EXEC_QUEUE_FLAG_VM || !q->vm))
-		xe_pm_runtime_put(gt_to_xe(q->gt));
 	__xe_exec_queue_free(q);
 }
 
drivers/gpu/drm/xe/xe_exec_queue_types.h +0 -10
index ee78d497d838..f0c40e8ad80a 100644
@@ -103,16 +103,6 @@ struct xe_exec_queue {
 		struct xe_guc_exec_queue *guc;
 	};
 
-	/**
-	 * @parallel: parallel submission state
-	 */
-	struct {
-		/** @parallel.composite_fence_ctx: context composite fence */
-		u64 composite_fence_ctx;
-		/** @parallel.composite_fence_seqno: seqno for composite fence */
-		u32 composite_fence_seqno;
-	} parallel;
-
 	/** @sched_props: scheduling properties */
 	struct {
 		/** @sched_props.timeslice_us: timeslice period in micro-seconds */
drivers/gpu/drm/xe/xe_gt_pagefault.c +16 -2
index fa9e9853c53b..67e8efcaa93f 100644
@@ -402,6 +402,18 @@ static void pf_queue_work_func(struct work_struct *w)
 
 static void acc_queue_work_func(struct work_struct *w);
 
+static void pagefault_fini(void *arg)
+{
+	struct xe_gt *gt = arg;
+	struct xe_device *xe = gt_to_xe(gt);
+
+	if (!xe->info.has_usm)
+		return;
+
+	destroy_workqueue(gt->usm.acc_wq);
+	destroy_workqueue(gt->usm.pf_wq);
+}
+
 int xe_gt_pagefault_init(struct xe_gt *gt)
 {
 	struct xe_device *xe = gt_to_xe(gt);
@@ -429,10 +441,12 @@ int xe_gt_pagefault_init(struct xe_gt *gt)
 	gt->usm.acc_wq = alloc_workqueue("xe_gt_access_counter_work_queue",
 					 WQ_UNBOUND | WQ_HIGHPRI,
 					 NUM_ACC_QUEUE);
-	if (!gt->usm.acc_wq)
+	if (!gt->usm.acc_wq) {
+		destroy_workqueue(gt->usm.pf_wq);
 		return -ENOMEM;
+	}
 
-	return 0;
+	return devm_add_action_or_reset(xe->drm.dev, pagefault_fini, gt);
 }
 
 void xe_gt_pagefault_reset(struct xe_gt *gt)
drivers/gpu/drm/xe/xe_guc_submit.c +6 -2
index 0f42971ff0a8..e48285c81bf5 100644
@@ -35,6 +35,7 @@
 #include "xe_macros.h"
 #include "xe_map.h"
 #include "xe_mocs.h"
+#include "xe_pm.h"
 #include "xe_ring_ops_types.h"
 #include "xe_sched_job.h"
 #include "xe_trace.h"
@@ -916,8 +917,9 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
 		return DRM_GPU_SCHED_STAT_NOMINAL;
 	}
 
-	drm_notice(&xe->drm, "Timedout job: seqno=%u, guc_id=%d, flags=0x%lx",
-		   xe_sched_job_seqno(job), q->guc->id, q->flags);
+	drm_notice(&xe->drm, "Timedout job: seqno=%u, lrc_seqno=%u, guc_id=%d, flags=0x%lx",
+		   xe_sched_job_seqno(job), xe_sched_job_lrc_seqno(job),
+		   q->guc->id, q->flags);
 	xe_gt_WARN(q->gt, q->flags & EXEC_QUEUE_FLAG_KERNEL,
 		   "Kernel-submitted job timed out\n");
 	xe_gt_WARN(q->gt, q->flags & EXEC_QUEUE_FLAG_VM && !exec_queue_killed(q),
@@ -1011,6 +1013,7 @@ static void __guc_exec_queue_fini_async(struct work_struct *w)
 	struct xe_exec_queue *q = ge->q;
 	struct xe_guc *guc = exec_queue_to_guc(q);
 
+	xe_pm_runtime_get(guc_to_xe(guc));
 	trace_xe_exec_queue_destroy(q);
 
 	if (xe_exec_queue_is_lr(q))
@@ -1021,6 +1024,7 @@ static void __guc_exec_queue_fini_async(struct work_struct *w)
 
 	kfree(ge);
 	xe_exec_queue_fini(q);
+	xe_pm_runtime_put(guc_to_xe(guc));
 }
 
 static void guc_exec_queue_fini_async(struct xe_exec_queue *q)
drivers/gpu/drm/xe/xe_hw_fence.c +47 -12

70 lines not on this page · raw message

drivers/gpu/drm/xe/xe_hw_fence.h +5 -2
index cfe5fd603787..f13a1c4982c7 100644
@@ -24,7 +24,10 @@ void xe_hw_fence_ctx_init(struct xe_hw_fence_ctx *ctx, struct xe_gt *gt,
 			  struct xe_hw_fence_irq *irq, const char *name);
 void xe_hw_fence_ctx_finish(struct xe_hw_fence_ctx *ctx);
 
-struct xe_hw_fence *xe_hw_fence_create(struct xe_hw_fence_ctx *ctx,
-				       struct iosys_map seqno_map);
+struct dma_fence *xe_hw_fence_alloc(void);
 
+void xe_hw_fence_free(struct dma_fence *fence);
+
+void xe_hw_fence_init(struct dma_fence *fence, struct xe_hw_fence_ctx *ctx,
+		      struct iosys_map seqno_map);
 #endif
drivers/gpu/drm/xe/xe_lrc.c +46 -2

56 lines not on this page · raw message

drivers/gpu/drm/xe/xe_lrc.h +3 -0
index d32fa31faa2c..f57c5836dab8 100644
@@ -38,6 +38,9 @@ void xe_lrc_write_ctx_reg(struct xe_lrc *lrc, int reg_nr, u32 val);
 u64 xe_lrc_descriptor(struct xe_lrc *lrc);
 
 u32 xe_lrc_seqno_ggtt_addr(struct xe_lrc *lrc);
+struct dma_fence *xe_lrc_alloc_seqno_fence(void);
+void xe_lrc_free_seqno_fence(struct dma_fence *fence);
+void xe_lrc_init_seqno_fence(struct xe_lrc *lrc, struct dma_fence *fence);
 struct dma_fence *xe_lrc_create_seqno_fence(struct xe_lrc *lrc);
 s32 xe_lrc_seqno(struct xe_lrc *lrc);
 
drivers/gpu/drm/xe/xe_mmio.c +35 -6

73 lines not on this page · raw message

drivers/gpu/drm/xe/xe_mmio.h +1 -1
index a3cd7b3036c7..a929d090bb2f 100644
@@ -21,7 +21,7 @@ struct xe_device;
 #define LMEM_BAR		2
 
 int xe_mmio_init(struct xe_device *xe);
-void xe_mmio_probe_tiles(struct xe_device *xe);
+int xe_mmio_probe_tiles(struct xe_device *xe);
 
 u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg);
 u16 xe_mmio_read16(struct xe_gt *gt, struct xe_reg reg);
drivers/gpu/drm/xe/xe_ring_ops.c +11 -11
index aca7a9af6e84..c59c4373aefa 100644
@@ -380,7 +380,7 @@ static void emit_migration_job_gen12(struct xe_sched_job *job,
 
 	dw[i++] = MI_ARB_ON_OFF | MI_ARB_DISABLE; /* Enabled again below */
 
-	i = emit_bb_start(job->batch_addr[0], BIT(8), dw, i);
+	i = emit_bb_start(job->ptrs[0].batch_addr, BIT(8), dw, i);
 
 	if (!IS_SRIOV_VF(gt_to_xe(job->q->gt))) {
 		/* XXX: Do we need this? Leaving for now. */
@@ -389,7 +389,7 @@ static void emit_migration_job_gen12(struct xe_sched_job *job,
 		dw[i++] = preparser_disable(false);
 	}
 
-	i = emit_bb_start(job->batch_addr[1], BIT(8), dw, i);
+	i = emit_bb_start(job->ptrs[1].batch_addr, BIT(8), dw, i);
 
 	dw[i++] = MI_FLUSH_DW | MI_INVALIDATE_TLB | job->migrate_flush_flags |
 		MI_FLUSH_DW_OP_STOREDW | MI_FLUSH_IMM_DW;
@@ -411,8 +411,8 @@ static void emit_job_gen12_gsc(struct xe_sched_job *job)
 	xe_gt_assert(gt, job->q->width <= 1); /* no parallel submission for GSCCS */
 
 	__emit_job_gen12_simple(job, job->q->lrc,
-				job->batch_addr[0],
-				xe_sched_job_seqno(job));
+				job->ptrs[0].batch_addr,
+				xe_sched_job_lrc_seqno(job));
 }
 
 static void emit_job_gen12_copy(struct xe_sched_job *job)
@@ -421,14 +421,14 @@ static void emit_job_gen12_copy(struct xe_sched_job *job)
 
 	if (xe_sched_job_is_migration(job->q)) {
 		emit_migration_job_gen12(job, job->q->lrc,
-					 xe_sched_job_seqno(job));
+					 xe_sched_job_lrc_seqno(job));
 		return;
 	}
 
 	for (i = 0; i < job->q->width; ++i)
 		__emit_job_gen12_simple(job, job->q->lrc + i,
-				        job->batch_addr[i],
-				        xe_sched_job_seqno(job));
+					job->ptrs[i].batch_addr,
+					xe_sched_job_lrc_seqno(job));
 }
 
 static void emit_job_gen12_video(struct xe_sched_job *job)
@@ -438,8 +438,8 @@ static void emit_job_gen12_video(struct xe_sched_job *job)
 	/* FIXME: Not doing parallel handshake for now */
 	for (i = 0; i < job->q->width; ++i)
 		__emit_job_gen12_video(job, job->q->lrc + i,
-				       job->batch_addr[i],
-				       xe_sched_job_seqno(job));
+				       job->ptrs[i].batch_addr,
+				       xe_sched_job_lrc_seqno(job));
 }
 
 static void emit_job_gen12_render_compute(struct xe_sched_job *job)
@@ -448,8 +448,8 @@ static void emit_job_gen12_render_compute(struct xe_sched_job *job)
 
 	for (i = 0; i < job->q->width; ++i)
 		__emit_job_gen12_render_compute(job, job->q->lrc + i,
-						job->batch_addr[i],
-						xe_sched_job_seqno(job));
+						job->ptrs[i].batch_addr,
+						xe_sched_job_lrc_seqno(job));
 }
 
 static const struct xe_ring_ops ring_ops_gen12_gsc = {
drivers/gpu/drm/xe/xe_sched_job.c +100 -80

286 lines not on this page · raw message

drivers/gpu/drm/xe/xe_sched_job.h +6 -1
index c75018f4660d..f362e28455db 100644
@@ -70,7 +70,12 @@ to_xe_sched_job(struct drm_sched_job *drm)
 
 static inline u32 xe_sched_job_seqno(struct xe_sched_job *job)
 {
-	return job->fence->seqno;
+	return job->fence ? job->fence->seqno : 0;
+}
+
+static inline u32 xe_sched_job_lrc_seqno(struct xe_sched_job *job)
+{
+	return job->lrc_seqno;
 }
 
 static inline void
drivers/gpu/drm/xe/xe_sched_job_types.h +18 -2
index 5e12724219fd..0d3f76fb05ce 100644
@@ -11,6 +11,20 @@
 #include <drm/gpu_scheduler.h>
 
 struct xe_exec_queue;
+struct dma_fence;
+struct dma_fence_chain;
+
+/**
+ * struct xe_job_ptrs - Per hw engine instance data
+ */
+struct xe_job_ptrs {
+	/** @lrc_fence: Pre-allocated uinitialized lrc fence.*/
+	struct dma_fence *lrc_fence;
+	/** @chain_fence: Pre-allocated ninitialized fence chain node. */
+	struct dma_fence_chain *chain_fence;
+	/** @batch_addr: Batch buffer address. */
+	u64 batch_addr;
+};
 
 /**
  * struct xe_sched_job - XE schedule job (batch buffer tracking)
@@ -37,12 +51,14 @@ struct xe_sched_job {
 		/** @user_fence.value: write back value */
 		u64 value;
 	} user_fence;
+	/** @lrc_seqno: LRC seqno */
+	u32 lrc_seqno;
 	/** @migrate_flush_flags: Additional flush flags for migration jobs */
 	u32 migrate_flush_flags;
 	/** @ring_ops_flush_tlb: The ring ops need to flush TLB before payload. */
 	bool ring_ops_flush_tlb;
-	/** @batch_addr: batch buffer address of job */
-	u64 batch_addr[];
+	/** @ptrs: per instance pointers. */
+	struct xe_job_ptrs ptrs[];
 };
 
 struct xe_sched_job_snapshot {
drivers/gpu/drm/xe/xe_trace.h +7 -4
index 2d56cfc09e42..e4cba64474e6 100644
@@ -254,6 +254,7 @@ DECLARE_EVENT_CLASS(xe_sched_job,
 
 		    TP_STRUCT__entry(
 			     __field(u32, seqno)
+			     __field(u32, lrc_seqno)
 			     __field(u16, guc_id)
 			     __field(u32, guc_state)
 			     __field(u32, flags)
@@ -264,17 +265,19 @@ DECLARE_EVENT_CLASS(xe_sched_job,
 
 		    TP_fast_assign(
 			   __entry->seqno = xe_sched_job_seqno(job);
+			   __entry->lrc_seqno = xe_sched_job_lrc_seqno(job);
 			   __entry->guc_id = job->q->guc->id;
 			   __entry->guc_state =
 			   atomic_read(&job->q->guc->state);
 			   __entry->flags = job->q->flags;
-			   __entry->error = job->fence->error;
+			   __entry->error = job->fence ? job->fence->error : 0;
 			   __entry->fence = job->fence;
-			   __entry->batch_addr = (u64)job->batch_addr[0];
+			   __entry->batch_addr = (u64)job->ptrs[0].batch_addr;
 			   ),
 
-		    TP_printk("fence=%p, seqno=%u, guc_id=%d, batch_addr=0x%012llx, guc_state=0x%x, flags=0x%x, error=%d",
-			      __entry->fence, __entry->seqno, __entry->guc_id,
+		    TP_printk("fence=%p, seqno=%u, lrc_seqno=%u, guc_id=%d, batch_addr=0x%012llx, guc_state=0x%x, flags=0x%x, error=%d",
+			      __entry->fence, __entry->seqno,
+			      __entry->lrc_seqno, __entry->guc_id,
 			      __entry->batch_addr, __entry->guc_state,
 			      __entry->flags, __entry->error)
 );
drivers/hid/wacom_wac.c +3 -1
index 20de97ce0f5e..d84740be9642 100644
@@ -1924,12 +1924,14 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
 	int fmax = field->logical_maximum;
 	unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
 	int resolution_code = code;
-	int resolution = hidinput_calc_abs_res(field, resolution_code);
+	int resolution;
 
 	if (equivalent_usage == HID_DG_TWIST) {
 		resolution_code = ABS_RZ;
 	}
 
+	resolution = hidinput_calc_abs_res(field, resolution_code);
+
 	if (equivalent_usage == HID_GD_X) {
 		fmin += features->offset_left;
 		fmax -= features->offset_right;
drivers/i2c/busses/i2c-qcom-geni.c +3 -1
index 365e37bba0f3..06e836e3e877 100644
@@ -986,8 +986,10 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev)
 		return ret;
 
 	ret = clk_prepare_enable(gi2c->core_clk);
-	if (ret)
+	if (ret) {
+		geni_icc_disable(&gi2c->se);
 		return ret;
+	}
 
 	ret = geni_se_resources_on(&gi2c->se);
 	if (ret) {
drivers/i2c/busses/i2c-tegra.c +2 -2
index 85b31edc558d..1df5b4204142 100644
@@ -1802,9 +1802,9 @@ static int tegra_i2c_probe(struct platform_device *pdev)
 	 * domain.
 	 *
 	 * VI I2C device shouldn't be marked as IRQ-safe because VI I2C won't
-	 * be used for atomic transfers.
+	 * be used for atomic transfers. ACPI device is not IRQ safe also.
 	 */
-	if (!IS_VI(i2c_dev))
+	if (!IS_VI(i2c_dev) && !has_acpi_companion(i2c_dev->dev))
 		pm_runtime_irq_safe(i2c_dev->dev);
 
 	pm_runtime_enable(i2c_dev->dev);
drivers/input/input-mt.c +3 -0
index 14b53dac1253..6b04a674f832 100644
@@ -46,6 +46,9 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
 		return 0;
 	if (mt)
 		return mt->num_slots != num_slots ? -EINVAL : 0;
+	/* Arbitrary limit for avoiding too large memory allocation. */
+	if (num_slots > 1024)
+		return -EINVAL;
 
 	mt = kzalloc(struct_size(mt, slots, num_slots), GFP_KERNEL);
 	if (!mt)
drivers/input/serio/i8042-acpipnpio.h +8 -12
index 5b50475ec414..e9eb9554dd7b 100644
@@ -83,6 +83,7 @@ static inline void i8042_write_command(int val)
 #define SERIO_QUIRK_KBDRESET		BIT(12)
 #define SERIO_QUIRK_DRITEK		BIT(13)
 #define SERIO_QUIRK_NOPNP		BIT(14)
+#define SERIO_QUIRK_FORCENORESTORE	BIT(15)
 
 /* Quirk table for different mainboards. Options similar or identical to i8042
  * module parameters.
@@ -1149,18 +1150,10 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
 					SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
 	},
 	{
-		/*
-		 * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes
-		 * the keyboard very laggy for ~5 seconds after boot and
-		 * sometimes also after resume.
-		 * However both are required for the keyboard to not fail
-		 * completely sometimes after boot or resume.
-		 */
 		.matches = {
 			DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
 		},
-		.driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-					SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+		.driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
 	},
 	{
 		.matches = {
@@ -1685,6 +1678,8 @@ static void __init i8042_check_quirks(void)
 	if (quirks & SERIO_QUIRK_NOPNP)
 		i8042_nopnp = true;
 #endif
+	if (quirks & SERIO_QUIRK_FORCENORESTORE)
+		i8042_forcenorestore = true;
 }
 #else
 static inline void i8042_check_quirks(void) {}
@@ -1718,7 +1713,7 @@ static int __init i8042_platform_init(void)
 
 	i8042_check_quirks();
 
-	pr_debug("Active quirks (empty means none):%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
+	pr_debug("Active quirks (empty means none):%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
 		i8042_nokbd ? " nokbd" : "",
 		i8042_noaux ? " noaux" : "",
 		i8042_nomux ? " nomux" : "",
@@ -1738,10 +1733,11 @@ static int __init i8042_platform_init(void)
 		"",
 #endif
 #ifdef CONFIG_PNP
-		i8042_nopnp ? " nopnp" : "");
+		i8042_nopnp ? " nopnp" : "",
 #else
-		"");
+		"",
 #endif
+		i8042_forcenorestore ? " forcenorestore" : "");
 
 	retval = i8042_pnp_init();
 	if (retval)
drivers/input/serio/i8042.c +7 -3
index 9fbb8d31575a..2233d93f90e8 100644
@@ -115,6 +115,10 @@ module_param_named(nopnp, i8042_nopnp, bool, 0);
 MODULE_PARM_DESC(nopnp, "Do not use PNP to detect controller settings");
 #endif
 
+static bool i8042_forcenorestore;
+module_param_named(forcenorestore, i8042_forcenorestore, bool, 0);
+MODULE_PARM_DESC(forcenorestore, "Force no restore on s3 resume, copying s2idle behaviour");
+
 #define DEBUG
 #ifdef DEBUG
 static bool i8042_debug;
@@ -1232,7 +1236,7 @@ static int i8042_pm_suspend(struct device *dev)
 {
 	int i;
 
-	if (pm_suspend_via_firmware())
+	if (!i8042_forcenorestore && pm_suspend_via_firmware())
 		i8042_controller_reset(true);
 
 	/* Set up serio interrupts for system wakeup. */
@@ -1248,7 +1252,7 @@ static int i8042_pm_suspend(struct device *dev)
 
 static int i8042_pm_resume_noirq(struct device *dev)
 {
-	if (!pm_resume_via_firmware())
+	if (i8042_forcenorestore || !pm_resume_via_firmware())
 		i8042_interrupt(0, NULL);
 
 	return 0;
@@ -1271,7 +1275,7 @@ static int i8042_pm_resume(struct device *dev)
 	 * not restore the controller state to whatever it had been at boot
 	 * time, so we do not need to do anything.
 	 */
-	if (!pm_suspend_via_firmware())
+	if (i8042_forcenorestore || !pm_suspend_via_firmware())
 		return 0;
 
 	/*
drivers/iommu/io-pgfault.c +1 -0
index 06d78fcc79fd..f2c87c695a17 100644
@@ -192,6 +192,7 @@ void iommu_report_device_fault(struct device *dev, struct iopf_fault *evt)
 		report_partial_fault(iopf_param, fault);
 		iopf_put_dev_fault_param(iopf_param);
 		/* A request that is not the last does not need to be ack'd */
+		return;
 	}
 
 	/*
drivers/iommu/iommufd/device.c +1 -1
index 873630c111c1..e333793e88eb 100644
@@ -525,7 +525,7 @@ iommufd_device_do_replace(struct iommufd_device *idev,
 err_unresv:
 	if (hwpt_is_paging(hwpt))
 		iommufd_group_remove_reserved_iova(igroup,
-						   to_hwpt_paging(old_hwpt));
+						   to_hwpt_paging(hwpt));
 err_unlock:
 	mutex_unlock(&idev->igroup->lock);
 	return ERR_PTR(rc);
drivers/md/dm-ioctl.c +20 -2
index c2c07bfa6471..f299ff393a6a 100644
@@ -1181,8 +1181,26 @@ static int do_resume(struct dm_ioctl *param)
 			suspend_flags &= ~DM_SUSPEND_LOCKFS_FLAG;
 		if (param->flags & DM_NOFLUSH_FLAG)
 			suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;
-		if (!dm_suspended_md(md))
-			dm_suspend(md, suspend_flags);
+		if (!dm_suspended_md(md)) {
+			r = dm_suspend(md, suspend_flags);
+			if (r) {
+				down_write(&_hash_lock);
+				hc = dm_get_mdptr(md);
+				if (hc && !hc->new_map) {
+					hc->new_map = new_map;
+					new_map = NULL;
+				} else {
+					r = -ENXIO;
+				}
+				up_write(&_hash_lock);
+				if (new_map) {
+					dm_sync_table(md);
+					dm_table_destroy(new_map);
+				}
+				dm_put(md);
+				return r;
+			}
+		}
 
 		old_size = dm_get_size(md);
 		old_map = dm_swap_table(md, new_map);
drivers/md/dm.c +2 -2
index 13037d6a6f62..6e15ac4e0845 100644
@@ -2594,7 +2594,7 @@ static int dm_wait_for_bios_completion(struct mapped_device *md, unsigned int ta
 			break;
 
 		if (signal_pending_state(task_state, current)) {
-			r = -EINTR;
+			r = -ERESTARTSYS;
 			break;
 		}
 
@@ -2619,7 +2619,7 @@ static int dm_wait_for_completion(struct mapped_device *md, unsigned int task_st
 			break;
 
 		if (signal_pending_state(task_state, current)) {
-			r = -EINTR;
+			r = -ERESTARTSYS;
 			break;
 		}
 
drivers/md/persistent-data/dm-space-map-metadata.c +2 -2
index 04698fd03e60..d48c4fafc779 100644
@@ -277,7 +277,7 @@ static void sm_metadata_destroy(struct dm_space_map *sm)
 {
 	struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm);
 
-	kfree(smm);
+	kvfree(smm);
 }
 
 static int sm_metadata_get_nr_blocks(struct dm_space_map *sm, dm_block_t *count)
@@ -772,7 +772,7 @@ struct dm_space_map *dm_sm_metadata_init(void)
 {
 	struct sm_metadata *smm;
 
-	smm = kmalloc(sizeof(*smm), GFP_KERNEL);
+	smm = kvmalloc(sizeof(*smm), GFP_KERNEL);
 	if (!smm)
 		return ERR_PTR(-ENOMEM);
 
drivers/md/raid1.c +10 -4
index 5ea57b6748c5..687bd374cde8 100644
@@ -617,6 +617,12 @@ static int choose_first_rdev(struct r1conf *conf, struct r1bio *r1_bio,
 	return -1;
 }
 
+static bool rdev_in_recovery(struct md_rdev *rdev, struct r1bio *r1_bio)
+{
+	return !test_bit(In_sync, &rdev->flags) &&
+	       rdev->recovery_offset < r1_bio->sector + r1_bio->sectors;
+}
+
 static int choose_bb_rdev(struct r1conf *conf, struct r1bio *r1_bio,
 			  int *max_sectors)
 {
@@ -635,6 +641,7 @@ static int choose_bb_rdev(struct r1conf *conf, struct r1bio *r1_bio,
 
 		rdev = conf->mirrors[disk].rdev;
 		if (!rdev || test_bit(Faulty, &rdev->flags) ||
+		    rdev_in_recovery(rdev, r1_bio) ||
 		    test_bit(WriteMostly, &rdev->flags))
 			continue;
 
@@ -673,7 +680,8 @@ static int choose_slow_rdev(struct r1conf *conf, struct r1bio *r1_bio,
 
 		rdev = conf->mirrors[disk].rdev;
 		if (!rdev || test_bit(Faulty, &rdev->flags) ||
-		    !test_bit(WriteMostly, &rdev->flags))
+		    !test_bit(WriteMostly, &rdev->flags) ||
+		    rdev_in_recovery(rdev, r1_bio))
 			continue;
 
 		/* there are no bad blocks, we can use this disk */
@@ -733,9 +741,7 @@ static bool rdev_readable(struct md_rdev *rdev, struct r1bio *r1_bio)
 	if (!rdev || test_bit(Faulty, &rdev->flags))
 		return false;
 
-	/* still in recovery */
-	if (!test_bit(In_sync, &rdev->flags) &&
-	    rdev->recovery_offset < r1_bio->sector + r1_bio->sectors)
+	if (rdev_in_recovery(rdev, r1_bio))
 		return false;
 
 	/* don't read from slow disk unless have to */
drivers/misc/fastrpc.c +3 -19
index a7a2bcedb37e..5680856c0fb8 100644
@@ -2087,16 +2087,6 @@ static int fastrpc_req_mem_map(struct fastrpc_user *fl, char __user *argp)
 	return err;
 }
 
-static int is_attach_rejected(struct fastrpc_user *fl)
-{
-	/* Check if the device node is non-secure */
-	if (!fl->is_secure_dev) {
-		dev_dbg(&fl->cctx->rpdev->dev, "untrusted app trying to attach to privileged DSP PD\n");
-		return -EACCES;
-	}
-	return 0;
-}
-
 static long fastrpc_device_ioctl(struct file *file, unsigned int cmd,
 				 unsigned long arg)
 {
@@ -2109,19 +2099,13 @@ static long fastrpc_device_ioctl(struct file *file, unsigned int cmd,
 		err = fastrpc_invoke(fl, argp);
 		break;
 	case FASTRPC_IOCTL_INIT_ATTACH:
-		err = is_attach_rejected(fl);
-		if (!err)
-			err = fastrpc_init_attach(fl, ROOT_PD);
+		err = fastrpc_init_attach(fl, ROOT_PD);
 		break;
 	case FASTRPC_IOCTL_INIT_ATTACH_SNS:
-		err = is_attach_rejected(fl);
-		if (!err)
-			err = fastrpc_init_attach(fl, SENSORS_PD);
+		err = fastrpc_init_attach(fl, SENSORS_PD);
 		break;
 	case FASTRPC_IOCTL_INIT_CREATE_STATIC:
-		err = is_attach_rejected(fl);
-		if (!err)
-			err = fastrpc_init_create_static_process(fl, argp);
+		err = fastrpc_init_create_static_process(fl, argp);
 		break;
 	case FASTRPC_IOCTL_INIT_CREATE:
 		err = fastrpc_init_create_process(fl, argp);
drivers/mmc/core/mmc_test.c +5 -4
index 8f7f587a0025..b7f627a9fdea 100644
@@ -3125,13 +3125,13 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
 	test->buffer = kzalloc(BUFFER_SIZE, GFP_KERNEL);
 #ifdef CONFIG_HIGHMEM
 	test->highmem = alloc_pages(GFP_KERNEL | __GFP_HIGHMEM, BUFFER_ORDER);
+	if (!test->highmem) {
+		count = -ENOMEM;
+		goto free_test_buffer;
+	}
 #endif
 
-#ifdef CONFIG_HIGHMEM
-	if (test->buffer && test->highmem) {
-#else
 	if (test->buffer) {
-#endif
 		mutex_lock(&mmc_test_lock);
 		mmc_test_run(test, testcase);
 		mutex_unlock(&mmc_test_lock);
@@ -3139,6 +3139,7 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
 
 #ifdef CONFIG_HIGHMEM
 	__free_pages(test->highmem, BUFFER_ORDER);
+free_test_buffer:
 #endif
 	kfree(test->buffer);
 	kfree(test);
drivers/mmc/host/dw_mmc.c +8 -0
index 8e2d676b9239..a4f813ea177a 100644
@@ -3293,6 +3293,10 @@ int dw_mci_probe(struct dw_mci *host)
 	host->biu_clk = devm_clk_get(host->dev, "biu");
 	if (IS_ERR(host->biu_clk)) {
 		dev_dbg(host->dev, "biu clock not available\n");
+		ret = PTR_ERR(host->biu_clk);
+		if (ret == -EPROBE_DEFER)
+			return ret;
+
 	} else {
 		ret = clk_prepare_enable(host->biu_clk);
 		if (ret) {
@@ -3304,6 +3308,10 @@ int dw_mci_probe(struct dw_mci *host)
 	host->ciu_clk = devm_clk_get(host->dev, "ciu");
 	if (IS_ERR(host->ciu_clk)) {
 		dev_dbg(host->dev, "ciu clock not available\n");
+		ret = PTR_ERR(host->ciu_clk);
+		if (ret == -EPROBE_DEFER)
+			goto err_clk_biu;
+
 		host->bus_hz = host->pdata->bus_hz;
 	} else {
 		ret = clk_prepare_enable(host->ciu_clk);
drivers/mmc/host/mtk-sd.c +4 -4
index a94835b8ab93..e386f78e3267 100644
@@ -1230,7 +1230,7 @@ static bool msdc_cmd_done(struct msdc_host *host, int events,
 	}
 
 	if (!sbc_error && !(events & MSDC_INT_CMDRDY)) {
-		if (events & MSDC_INT_CMDTMO ||
+		if ((events & MSDC_INT_CMDTMO && !host->hs400_tuning) ||
 		    (!mmc_op_tuning(cmd->opcode) && !host->hs400_tuning))
 			/*
 			 * should not clear fifo/interrupt as the tune data
@@ -1323,9 +1323,9 @@ static void msdc_start_command(struct msdc_host *host,
 static void msdc_cmd_next(struct msdc_host *host,
 		struct mmc_request *mrq, struct mmc_command *cmd)
 {
-	if ((cmd->error &&
-	    !(cmd->error == -EILSEQ &&
-	      (mmc_op_tuning(cmd->opcode) || host->hs400_tuning))) ||
+	if ((cmd->error && !host->hs400_tuning &&
+	     !(cmd->error == -EILSEQ &&
+	     mmc_op_tuning(cmd->opcode))) ||
 	    (mrq->sbc && mrq->sbc->error))
 		msdc_request_done(host, mrq);
 	else if (cmd == mrq->sbc)
drivers/net/bonding/bond_main.c +8 -13
index 2ed0da068490..b257504a8534 100644
@@ -582,7 +582,6 @@ static void bond_ipsec_del_sa_all(struct bonding *bond)
 		} else {
 			slave->dev->xfrmdev_ops->xdo_dev_state_delete(ipsec->xs);
 		}
-		ipsec->xs->xso.real_dev = NULL;
 	}
 	spin_unlock_bh(&bond->ipsec_lock);
 	rcu_read_unlock();
@@ -599,34 +598,30 @@ static bool bond_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
 	struct net_device *real_dev;
 	struct slave *curr_active;
 	struct bonding *bond;
-	int err;
+	bool ok = false;
 
 	bond = netdev_priv(bond_dev);
 	rcu_read_lock();
 	curr_active = rcu_dereference(bond->curr_active_slave);
+	if (!curr_active)
+		goto out;
 	real_dev = curr_active->dev;
 
-	if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
-		err = false;
+	if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP)
 		goto out;
-	}
 
-	if (!xs->xso.real_dev) {
-		err = false;
+	if (!xs->xso.real_dev)
 		goto out;
-	}
 
 	if (!real_dev->xfrmdev_ops ||
 	    !real_dev->xfrmdev_ops->xdo_dev_offload_ok ||
-	    netif_is_bond_master(real_dev)) {
-		err = false;
+	    netif_is_bond_master(real_dev))
 		goto out;
-	}
 
-	err = real_dev->xfrmdev_ops->xdo_dev_offload_ok(skb, xs);
+	ok = real_dev->xfrmdev_ops->xdo_dev_offload_ok(skb, xs);
 out:
 	rcu_read_unlock();
-	return err;
+	return ok;
 }
 
 static const struct xfrmdev_ops bond_xfrmdev_ops = {
drivers/net/bonding/bond_options.c +1 -1
index bc80fb6397dc..95d59a18c022 100644
@@ -936,7 +936,7 @@ static int bond_option_active_slave_set(struct bonding *bond,
 	/* check to see if we are clearing active */
 	if (!slave_dev) {
 		netdev_dbg(bond->dev, "Clearing current active slave\n");
-		RCU_INIT_POINTER(bond->curr_active_slave, NULL);
+		bond_change_active_slave(bond, NULL);
 		bond_select_active_slave(bond);
 	} else {
 		struct slave *old_active = rtnl_dereference(bond->curr_active_slave);
drivers/net/dsa/microchip/ksz_ptp.c +1 -4
index 1fe105913c75..beb969f391be 100644
@@ -266,7 +266,6 @@ static int ksz_ptp_enable_mode(struct ksz_device *dev)
 	struct ksz_port *prt;
 	struct dsa_port *dp;
 	bool tag_en = false;
-	int ret;
 
 	dsa_switch_for_each_user_port(dp, dev->ds) {
 		prt = &dev->ports[dp->index];
@@ -277,9 +276,7 @@ static int ksz_ptp_enable_mode(struct ksz_device *dev)
 	}
 
 	if (tag_en) {
-		ret = ptp_schedule_worker(ptp_data->clock, 0);
-		if (ret)
-			return ret;
+		ptp_schedule_worker(ptp_data->clock, 0);
 	} else {
 		ptp_cancel_worker_sync(ptp_data->clock);
 	}
drivers/net/dsa/mv88e6xxx/global1_atu.c +2 -1
index ce3b3690c3c0..c47f068f56b3 100644
@@ -457,7 +457,8 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id)
 		trace_mv88e6xxx_atu_full_violation(chip->dev, spid,
 						   entry.portvec, entry.mac,
 						   fid);
-		chip->ports[spid].atu_full_violation++;
+		if (spid < ARRAY_SIZE(chip->ports))
+			chip->ports[spid].atu_full_violation++;
 	}
 
 	return IRQ_HANDLED;
drivers/net/dsa/ocelot/felix.c +11 -0
index 61e95487732d..f5d26e724ae6 100644
@@ -528,7 +528,9 @@ static int felix_tag_8021q_setup(struct dsa_switch *ds)
 	 * so we need to be careful that there are no extra frames to be
 	 * dequeued over MMIO, since we would never know to discard them.
 	 */
+	ocelot_lock_xtr_grp_bh(ocelot, 0);
 	ocelot_drain_cpu_queue(ocelot, 0);
+	ocelot_unlock_xtr_grp_bh(ocelot, 0);
 
 	return 0;
 }
@@ -1504,6 +1506,8 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 	int port = xmit_work->dp->index;
 	int retries = 10;
 
+	ocelot_lock_inj_grp(ocelot, 0);
+
 	do {
 		if (ocelot_can_inject(ocelot, 0))
 			break;
@@ -1512,6 +1516,7 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 	} while (--retries);
 
 	if (!retries) {
+		ocelot_unlock_inj_grp(ocelot, 0);
 		dev_err(ocelot->dev, "port %d failed to inject skb\n",
 			port);
 		ocelot_port_purge_txtstamp_skb(ocelot, port, skb);
@@ -1521,6 +1526,8 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 
 	ocelot_port_inject_frame(ocelot, port, 0, rew_op, skb);
 
+	ocelot_unlock_inj_grp(ocelot, 0);
+
 	consume_skb(skb);
 	kfree(xmit_work);
 }
@@ -1671,6 +1678,8 @@ static bool felix_check_xtr_pkt(struct ocelot *ocelot)
 	if (!felix->info->quirk_no_xtr_irq)
 		return false;
 
+	ocelot_lock_xtr_grp(ocelot, grp);
+
 	while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp)) {
 		struct sk_buff *skb;
 		unsigned int type;
@@ -1707,6 +1716,8 @@ static bool felix_check_xtr_pkt(struct ocelot *ocelot)
 		ocelot_drain_cpu_queue(ocelot, 0);
 	}
 
+	ocelot_unlock_xtr_grp(ocelot, grp);
+
 	return true;
 }
 
drivers/net/dsa/vitesse-vsc73xx-core.c +42 -3

99 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +0 -5
index 345681d5007e..f88b641533fc 100644

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

drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +2 -1
index 786ceae34488..dd9e68465e69 100644

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

drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +4 -3
index a71f848adc05..a293b08f36d4 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +3 -0
index a5fc0209d628..4cbc4d069a1f 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +20 -8
index 82574ce0194f..465f0d582283 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +3 -0
index 85fb11de43a1..80079657afeb 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -2
index 3735d2fed11f..094a7c7b5592 100644

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

drivers/net/ethernet/intel/ice/devlink/devlink_port.c +2 -2
index 13e6790d3cae..afcf64dab48a 100644

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

drivers/net/ethernet/intel/ice/ice_base.c +20 -1
index 1facf179a96f..f448d3a84564 100644

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

drivers/net/ethernet/intel/ice/ice_txrx.c +4 -43

47 lines not on this page · raw message

drivers/net/ethernet/intel/igb/igb_main.c +1 -0
index fce2930ae6af..b6aa449aa56a 100644

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

drivers/net/ethernet/intel/igc/igc_defines.h +6 -0
index 5f92b3c7c3d4..511384f3ec5c 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +6 -2
index 33069880c86c..3041f8142324 100644

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

drivers/net/ethernet/intel/igc/igc_tsn.c +62 -14

76 lines not on this page · raw message

drivers/net/ethernet/intel/igc/igc_tsn.h +1 -0
index b53e6af560b7..98ec845a86bf 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c +11 -12
index 3e09d2285814..daf4b951e905 100644

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

drivers/net/ethernet/mediatek/mtk_wed.c +4 -2
index 61334a71058c..e212a4ba9275 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +2 -0
index 22918b2ef7f1..09433b91be17 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c +1 -1
index 3eccdadc0357..773624bb2c5d 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +8 -5
index eedbcba22689..409f525f1703 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/ipsec_fs_roce.c +4 -2
index 234cd00f71a1..b7d4b1a2baf2 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c +9 -9
index f6deb5a3f820..eeb0b7ea05f1 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h +8 -0
index bc94e75a7aeb..e7777700ee18 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +10 -0
index b157f0f1c5a8..385a56ac7348 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h +2 -0
index 98a8681c21b9..4d14cb13fd64 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c +44 -6

50 lines not on this page · raw message

drivers/net/ethernet/microsoft/mana/mana_en.c +20 -10
index ad7ae7ba2b8f..482b9cd36950 100644

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

drivers/net/ethernet/mscc/ocelot.c +84 -7

91 lines not on this page · raw message

drivers/net/ethernet/mscc/ocelot_fdma.c +1 -2
index 312a46832154..00326ae8c708 100644

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

drivers/net/ethernet/mscc/ocelot_vsc7514.c +4 -0
index 993212c3a7da..c09dd2e3343c 100644

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

drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c +6 -2
index ec54b18c5fe7..a5e9b779c44d 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet.h +9 -8
index fa5500decc96..09c9f9787180 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +13 -12
index fa510f4e2600..559c0d60d948 100644

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

drivers/net/gtp.c +3 -0
index 427b91aca50d..0696faf60013 100644

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

drivers/net/wireless/ath/ath12k/dp_tx.c +72 -0

72 lines not on this page · raw message

drivers/net/wireless/ath/ath12k/hw.c +6 -0
index bff8cf97a18c..2a92147d15fa 100644

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

drivers/net/wireless/ath/ath12k/hw.h +4 -0
index 2a314cfc8cb8..400bda17e02f 100644

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

drivers/net/wireless/ath/ath12k/mac.c +1 -0
index ead37a4e002a..8474e25d2ac6 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +10 -3
index 5fe0e671ecb3..826b768196e2 100644

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

drivers/nvme/host/core.c +1 -1
index 782090ce0bc1..d973d063bbf5 100644

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

drivers/platform/surface/aggregator/controller.c +2 -1
index 7fc602e01487..7e89f547999b 100644

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

drivers/platform/x86/dell/Kconfig +1 -0
index 195a8bf532cc..de0bfd8f4b66 100644

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

drivers/platform/x86/dell/dell-uart-backlight.c +8 -0
index 87d2a20b4cb3..3995f90add45 100644

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

drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c +1 -2
index 7fa360073f6e..404582307109 100644

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

drivers/pmdomain/imx/imx93-pd.c +3 -2
index 1e94b499c19b..d750a7dc58d2 100644

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

drivers/pmdomain/imx/scu-pd.c +0 -5
index 05841b0bf7f3..01d465d88f60 100644

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

drivers/s390/block/dasd.c +23 -13
index 0a97cfedd706..42a4a996defb 100644

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

drivers/s390/block/dasd_3990_erp.c +2 -8
index bbbacfc386f2..d0aa267462c5 100644

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

drivers/s390/block/dasd_eckd.c +24 -31

55 lines not on this page · raw message

drivers/s390/block/dasd_genhd.c +0 -1
index 4533dd055ca8..23d6e638f381 100644

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

drivers/s390/block/dasd_int.h +1 -1
index e5f40536b425..81cfb5c89681 100644

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

drivers/s390/crypto/ap_bus.c +6 -1
index 898865be0dad..99fadfb4cd9f 100644

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

drivers/spi/spi-cadence-quadspi.c +13 -1
index 05ebb03d319f..d4607cb89c48 100644

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

drivers/staging/media/atomisp/pci/ia_css_stream_public.h +6 -2
index 961c61288083..aad860e54d3a 100644

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

drivers/staging/media/atomisp/pci/sh_css_internal.h +16 -3
index bef2b8c5132b..419aba9b0e49 100644

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

drivers/thermal/gov_bang_bang.c +64 -23

87 lines not on this page · raw message

drivers/thermal/thermal_core.c +2 -1
index f2d31bc48f52..b8d889ef4fa5 100644

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

drivers/thermal/thermal_debugfs.c +3 -3
index 942447229157..6d55f5fc4ca0 100644

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

drivers/thermal/thermal_of.c +14 -9
index aa34b6e82e26..1f252692815a 100644

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

drivers/thunderbolt/switch.c +1 -0
index 326433df5880..6a2116cbb06f 100644

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

drivers/tty/serial/8250/8250_omap.c +5 -28
index 1af9aed99c65..afef1dd4ddf4 100644

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

drivers/tty/serial/atmel_serial.c +1 -1
index 0a90964d6d10..09b246c9e389 100644

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

drivers/tty/serial/fsl_lpuart.c +1 -0
index 615291ea9b5e..77efa7ee6eda 100644

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

drivers/tty/vt/conmakehash.c +2 -10
index 82d9db68b2ce..a931fcde7ad9 100644

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

drivers/usb/host/xhci-mem.c +1 -1
index 3100219d6496..f591ddd08662 100644

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

drivers/usb/host/xhci.c +5 -3
index 0a8cf6c17f82..efdf4c228b8c 100644

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

drivers/usb/misc/usb-ljca.c +1 -0
index 2d30fc1be306..1a8d5e80b9ae 100644

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

drivers/usb/typec/tcpm/tcpm.c +0 -1
index 5d4da962acc8..ea388e793f88 100644

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

fs/btrfs/delayed-ref.c +67 -0

67 lines not on this page · raw message

fs/btrfs/delayed-ref.h +2 -0
index 04b180ebe1fe..1d11a1a6f9cb 100644

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

fs/btrfs/extent-tree.c +45 -6

51 lines not on this page · raw message

fs/btrfs/extent_io.c +7 -7
index 0486b1f91124..3bad7c0be1f1 100644

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

fs/btrfs/extent_map.c +6 -16
index b4c9a6aa118c..6853f043c2c1 100644

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

fs/btrfs/free-space-cache.c +8 -6
index 62c3dea9572a..1926a228d0ba 100644

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

fs/btrfs/send.c +39 -13

52 lines not on this page · raw message

fs/btrfs/super.c +17 -1
index f05cce7c8b8d..03107c01b287 100644

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

fs/btrfs/tree-checker.c +72 -2

74 lines not on this page · raw message

fs/ceph/addr.c +18 -1
index 8c16bc5250ef..73b5a07bf94d 100644

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

fs/file.c +13 -17
index a11e59b5d602..655338effe9c 100644

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

fs/fuse/dev.c +4 -2
index 9eb191b5c4de..7146038b2fe7 100644

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

fs/inode.c +37 -2
index 3a41f83a4ba5..f5add7222c98 100644

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

fs/libfs.c +24 -11
index b635ee5adbcc..65279e53fbf2 100644

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

fs/locks.c +1 -1
index 9afb16e0683f..e45cad40f8b6 100644

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

fs/netfs/buffered_read.c +7 -1
index 4c0401dbbfcf..9aa045e2ab0a 100644

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

fs/netfs/buffered_write.c +1 -1
index ecbc99ec7d36..18055c1e0183 100644

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

fs/netfs/fscache_cookie.c +4 -0
index 4d1e8bf4c615..431a1905fcb4 100644

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

fs/netfs/io.c +144 -0

144 lines not on this page · raw message

fs/smb/client/cifsglob.h +10 -7
index d4bcc7da700c..0a271b9fbc62 100644

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

fs/smb/client/file.c +46 -9

55 lines not on this page · raw message

fs/smb/client/reparse.c +7 -4
index 689d8a506d45..48c27581ec51 100644

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

fs/smb/client/smb1ops.c +1 -1
index 212ec6f66ec6..e1f2feb56f45 100644

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

fs/smb/client/smb2ops.c +37 -5

42 lines not on this page · raw message

fs/smb/client/smb2pdu.c +36 -4
index 896147ba6660..4cd5c33be2a1 100644

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

fs/smb/client/trace.h +54 -1

55 lines not on this page · raw message

fs/smb/client/transport.c +4 -4
index 012b9bd06995..adfe0d058701 100644

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

fs/smb/server/connection.c +33 -1
index 09e1e7771592..7889df8112b4 100644

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

fs/smb/server/connection.h +2 -1
index 0e04cf8b1d89..b93e5437793e 100644

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

fs/smb/server/mgmt/user_session.c +8 -0
index aec0a7a12405..dac5f984f175 100644

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

fs/smb/server/smb2pdu.c +3 -2
index 840c71c66b30..8cfdf0d1a186 100644

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

include/acpi/acpixf.h +1 -4
index 80dc36f9d527..9f1c1d225e32 100644

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

include/acpi/video.h +1 -0
index 3d538d4178ab..044c463138df 100644

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

include/asm-generic/vmlinux.lds.h +0 -19
index 70bf1004076b..f00a8e18f389 100644

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

include/linux/bitmap.h +12 -0
index 8c4768c44a01..d3b66d77df7a 100644

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

include/linux/bpf_verifier.h +2 -2
index ff2a6cdb1fa3..5db4a3f35480 100644

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

include/linux/dsa/ocelot.h +47 -0

47 lines not on this page · raw message

include/linux/fs.h +5 -0
index 93ac1a859d69..36b9e8743922 100644

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

include/linux/hugetlb.h +30 -3
index 8120d1976188..18cf440866d9 100644

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

include/linux/io_uring_types.h +1 -1
index 7abdc0927124..b18e998c8b88 100644

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

include/linux/mm.h +11 -0
index b58bad248eef..f32177152921 100644

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

include/linux/panic.h +1 -0
index 6717b15e798c..556b4e2ad9aa 100644

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

include/linux/pgalloc_tag.h +13 -0
index 18cd0c0c73d9..207f0c83c8e9 100644

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

include/linux/thermal.h +1 -0
index f1155c0439c4..13f88317b81b 100644

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

include/net/af_vsock.h +4 -0
index 535701efc1e5..24d970f7a4fa 100644

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

include/net/bluetooth/hci.h +10 -7
index e372a88e8c3f..d1d073089f38 100644

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

include/net/bluetooth/hci_core.h +1 -1
index b15f51ae3bfd..c97ff64c9189 100644

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

include/net/kcm.h +1 -0
index 90279e5e09a5..441e993be634 100644

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

include/net/mana/mana.h +1 -0
index f207a6e1042a..9bdb1fdc7c51 100644

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

include/scsi/scsi_cmnd.h +1 -1
index 45c40d200154..8ecfb94049db 100644

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

include/soc/mscc/ocelot.h +11 -1
index 1e1b40f4e664..846132ca5503 100644

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

include/trace/events/netfs.h +1 -0
index da23484268df..24ec3434d32e 100644

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

include/uapi/misc/fastrpc.h +0 -3
index 91583690bddc..f33d914d8f46 100644

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

init/Kconfig +5 -20
index d8a971b804d3..9684e5d2b81c 100644

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

io_uring/io_uring.h +1 -1
index 726e6367af4d..af46d03d5884 100644

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

io_uring/kbuf.c +6 -3
index c95dc1736dd9..1af2bd56af44 100644

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

io_uring/napi.c +28 -22

50 lines not on this page · raw message

io_uring/napi.h +1 -1
index 6fc0393d0dbe..341d010cf66b 100644

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

kernel/bpf/verifier.c +3 -2
index a8845cc299fe..521bd7efae03 100644

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

kernel/cgroup/cpuset.c +4 -1
index 5e468db95810..fc1c6236460d 100644

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

kernel/cpu.c +11 -1
index 3d2bf1d50a0c..6dee328bfe6f 100644

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

kernel/events/core.c +2 -1
index b2a6aec118f3..7891d5a75526 100644

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

kernel/kallsyms.c +7 -53

60 lines not on this page · raw message

kernel/kallsyms_internal.h +0 -6
index 85480274fc8f..9633782f8250 100644

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

kernel/kallsyms_selftest.c +1 -21
index 2f84896a7bcb..873f7c445488 100644

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

kernel/panic.c +7 -1
index 8bff183d6180..30342568e935 100644

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

kernel/printk/printk.c +1 -1
index dddb15f48d59..c5d844f727f6 100644

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

kernel/trace/trace.c +1 -1
index 578a49ff5c32..cb507860163d 100644

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

kernel/vmcore_info.c +0 -4
index 1d5eadd9dd61..8b4f8cc2e0ec 100644

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

kernel/workqueue.c +26 -21

47 lines not on this page · raw message

mm/huge_memory.c +13 -16
index 5f32a196a612..4d9c1277e5e4 100644

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

mm/memcontrol.c +5 -2
index 88c7a0861017..332f190bf3d6 100644

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

mm/memory-failure.c +11 -9
index d3c830e817e3..7e2e454142bc 100644

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

mm/memory.c +16 -17
index 755ffe082e21..72d00a38585d 100644

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

mm/mm_init.c +3 -9
index 3ec04933f7fd..2addc701790a 100644

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

mm/mseal.c +11 -3
index bf783bba8ed0..15bba28acc00 100644

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

mm/page_alloc.c +21 -30

51 lines not on this page · raw message

mm/vmalloc.c +2 -9
index e34ea860153f..881e497137e5 100644

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

net/bluetooth/hci_core.c +7 -12
index 6ecb110bf46b..b488d0742c96 100644

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

net/bluetooth/hci_event.c +1 -1
index a78f6d706cd4..59d9086db75f 100644

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

net/bluetooth/mgmt.c +4 -0
index 80f220b7e19d..ad4793ea052d 100644

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

net/bluetooth/smp.c +72 -72

144 lines not on this page · raw message

net/bridge/br_netfilter_hooks.c +5 -1
index bf30c50b5689..a9e1b56f854d 100644

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

net/dsa/tag_ocelot.c +2 -35
index e0e4300bfbd3..bf6608fc6be7 100644

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

net/ipv4/tcp_input.c +12 -16
index ecd521108559..2c52f6dcbd29 100644

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

net/ipv4/tcp_ipv4.c +14 -0
index a541659b6562..8f8f93716ff8 100644

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

net/ipv4/udp_offload.c +2 -1
index ee9af921556a..5b54f4f32b1c 100644

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

net/ipv6/ip6_output.c +10 -0
index 784424ac4147..c49344d8311a 100644

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

net/ipv6/ip6_tunnel.c +7 -5
index 9dee0c127955..87dfb565a9f8 100644

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

net/ipv6/netfilter/nf_conntrack_reasm.c +4 -0
index 5e1b50c6a44d..3e9779ed7dae 100644

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

net/iucv/iucv.c +3 -1
index b7bf34a5eb37..123530702007 100644

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

net/kcm/kcmsock.c +4 -0
index 2f191e50d4fc..d4118c796290 100644

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

net/mctp/test/route-test.c +1 -1
index 77e5dd422258..8551dab1d1e6 100644

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

net/mptcp/diag.c +1 -1
index 3ae46b545d2c..2d3efb405437 100644

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

net/mptcp/pm.c +0 -13
index 23bb89c94e90..3e6e0f5510bb 100644

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

net/mptcp/pm_netlink.c +94 -48

142 lines not on this page · raw message

net/mptcp/protocol.h +0 -3
index 8357046732f7..c7c846805c4e 100644

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

net/netfilter/nf_flow_table_inet.c +3 -0
index 6eef15648b7b..b0f199171932 100644

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

net/netfilter/nf_flow_table_ip.c +3 -0
index c2c005234dcd..98edcaa37b38 100644

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

net/netfilter/nf_flow_table_offload.c +1 -1
index a010b25076ca..3d46372b538e 100644

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

net/netfilter/nf_tables_api.c +102 -45

147 lines not on this page · raw message

net/netfilter/nfnetlink.c +4 -1
index 4abf660c7baf..932b3ddb34f1 100644

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

net/netfilter/nfnetlink_queue.c +33 -2
index 55e28e1da66e..e0716da256bf 100644

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

net/netfilter/nft_counter.c +7 -2
index 291ed2026367..eab0dc66bee6 100644

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

net/openvswitch/datapath.c +1 -1
index 99d72543abd3..78d9961fcd44 100644

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

net/sched/sch_netem.c +29 -18

47 lines not on this page · raw message

net/vmw_vsock/af_vsock.c +29 -21

50 lines not on this page · raw message

net/vmw_vsock/vsock_bpf.c +2 -2
index a3c97546ab84..c42c5cc18f32 100644

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

scripts/kallsyms.c +32 -79

111 lines not on this page · raw message

scripts/link-vmlinux.sh +57 -49

106 lines not on this page · raw message

scripts/rust_is_available.sh +5 -1
index 117018946b57..a6fdcf13e0e5 100755

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

security/keys/trusted-keys/trusted_dcp.c +22 -13
index b5f81a05be36..4edc5bbbcda3 100644

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

security/selinux/avc.c +6 -2
index 32eb67fb3e42..b49c44869dc4 100644

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

security/selinux/hooks.c +11 -1
index 55c78c318ccd..bfa61e005aac 100644

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

sound/core/timer.c +1 -1
index d104adc75a8b..71a07c1662f5 100644

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

sound/pci/hda/patch_realtek.c +0 -1
index 3840565ef8b0..c9d76bca9923 100644

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

sound/pci/hda/tas2781_hda_i2c.c +9 -5
index fdee6592c502..9e88d39eac1e 100644

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

sound/usb/quirks-table.h +1 -0
index f13a8d63a019..aaa6a515d0f8 100644

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

sound/usb/quirks.c +2 -0
index ea063a14cdd8..e7b68c67852e 100644

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

tools/perf/tests/vmlinux-kallsyms.c +0 -1
index e30fd55f8e51..cd3b480d20bd 100644

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

tools/testing/selftests/bpf/progs/iters.c +54 -0

54 lines not on this page · raw message

tools/testing/selftests/core/close_range_test.c +35 -0
index 991c473e3859..12b4eb9d0434 100644

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

tools/testing/selftests/drivers/net/mlxsw/ethtool_lanes.sh +2 -1
index 877cd6df94a1..fe905a7f34b3 100755

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

tools/testing/selftests/mm/Makefile +2 -0
index 478cd26f62fd..1285b82fbd8a 100644

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

tools/testing/selftests/mm/run_vmtests.sh +3 -0
index 3157204b9047..1c7cdfd29fcc 100755

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

tools/testing/selftests/net/af_unix/msg_oob.c +1 -1
index 16d0c172eaeb..535eb2c3d7d1 100644

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

tools/testing/selftests/net/lib.sh +2 -9
index 9155c914c064..93de05fedd91 100644

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +23 -5
index a3293043c85d..ed30c0ed55e7 100755

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

tools/testing/selftests/net/udpgro.sh +28 -25

53 lines not on this page · raw message

tools/testing/selftests/tc-testing/tdc.py +0 -1
index ee349187636f..4f255cec0c22 100755

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

tools/tracing/rtla/src/osnoise_top.c +4 -7
index 07ba55d4ec06..de33ea5005b6 100644

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

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.