Skip to contentSkip to conversation

Linux 6.19.7

DISCUSSION Sasha Levin 1 participant 2 messages Mar 12 Stable branch

lore
Share & tools
lore

Sasha Levin

author maintainer
#0 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I'm announcing the release of the 6.19.7 kernel.

All users of the 6.19 kernel series must upgrade.

The updated 6.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.19.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,
Sasha

- ------------

 Documentation/sound/alsa-configuration.rst         |   4 +
 Documentation/virt/kvm/api.rst                     |  28 ++-
 Makefile                                           |  10 +-
 arch/alpha/kernel/vmlinux.lds.S                    |   1 +
 arch/arc/kernel/vmlinux.lds.S                      |   1 +
 arch/arm/boot/compressed/vmlinux.lds.S             |   1 +
 arch/arm/include/asm/string.h                      |  14 +-
 arch/arm/kernel/vmlinux-xip.lds.S                  |   1 +
 arch/arm/kernel/vmlinux.lds.S                      |   1 +
 arch/arm64/include/asm/io.h                        |  26 ++-
 arch/arm64/include/asm/pgtable-prot.h              |   3 -
 arch/arm64/kernel/acpi.c                           |   2 +-
 arch/arm64/kernel/vmlinux.lds.S                    |   1 +
 arch/arm64/kvm/hyp/nvhe/pkvm.c                     |  35 ++-
 arch/arm64/kvm/sys_regs.c                          |   3 +
 arch/arm64/mm/ioremap.c                            |   6 +-
 arch/arm64/mm/mmap.c                               |   8 +-
 arch/arm64/net/bpf_jit_comp.c                      |   2 +-
 arch/csky/kernel/vmlinux.lds.S                     |   1 +
 arch/hexagon/kernel/vmlinux.lds.S                  |   1 +
 arch/loongarch/kernel/vmlinux.lds.S                |   1 +
 arch/m68k/kernel/vmlinux-nommu.lds                 |   1 +
 arch/m68k/kernel/vmlinux-std.lds                   |   1 +
 arch/m68k/kernel/vmlinux-sun3.lds                  |   1 +
 arch/mips/kernel/vmlinux.lds.S                     |   1 +
 arch/nios2/kernel/vmlinux.lds.S                    |   1 +
 arch/openrisc/kernel/vmlinux.lds.S                 |   1 +
 arch/parisc/boot/compressed/vmlinux.lds.S          |   1 +
 arch/parisc/kernel/vmlinux.lds.S                   |   1 +
 arch/powerpc/kernel/vmlinux.lds.S                  |   1 +
 arch/riscv/kernel/vmlinux.lds.S                    |   1 +
 arch/s390/include/asm/idle.h                       |   1 +
 arch/s390/kernel/idle.c                            |  13 +-
 arch/s390/kernel/ipl.c                             |   2 +-
 arch/s390/kernel/irq.c                             |  10 +-
 arch/s390/kernel/vmlinux.lds.S                     |   1 +
 arch/s390/kernel/vtime.c                           |  18 +-
 arch/sh/kernel/vmlinux.lds.S                       |   1 +
 arch/sparc/kernel/vmlinux.lds.S                    |   1 +
 arch/um/kernel/dyn.lds.S                           |   1 +
 arch/um/kernel/uml.lds.S                           |   1 +
 arch/x86/boot/compressed/Makefile                  |   1 +
 arch/x86/boot/compressed/sev.c                     |   9 +-
 arch/x86/boot/compressed/vmlinux.lds.S             |   2 +-
 arch/x86/boot/startup/sev-shared.c                 |   2 +-
 arch/x86/coco/sev/core.c                           |   1 +
 arch/x86/entry/entry_fred.c                        |   5 +-
 arch/x86/events/intel/uncore_snbep.c               |  28 ++-
 arch/x86/include/asm/cfi.h                         |  12 +-
 arch/x86/include/asm/efi.h                         |   2 +-
 arch/x86/include/asm/kvm_host.h                    |   7 +
 arch/x86/include/asm/linkage.h                     |   4 +-
 arch/x86/include/asm/msr-index.h                   |   5 +-
 arch/x86/include/asm/numa.h                        |   6 +
 arch/x86/include/asm/topology.h                    |   6 +
 arch/x86/include/asm/traps.h                       |   2 +
 arch/x86/include/uapi/asm/kvm.h                    |   6 +-
 arch/x86/kernel/alternative.c                      |  29 ++-
 arch/x86/kernel/cpu/common.c                       |   3 +
 arch/x86/kernel/cpu/topology.c                     |  13 +-
 arch/x86/kernel/smpboot.c                          | 201 ++++++++++++-----
 arch/x86/kernel/traps.c                            |   2 +-
 arch/x86/kernel/vmlinux.lds.S                      |   1 +
 arch/x86/kvm/ioapic.c                              |   2 +-
 arch/x86/kvm/lapic.c                               |  76 ++++++-
 arch/x86/kvm/lapic.h                               |   2 +
 arch/x86/kvm/x86.c                                 |  21 +-
 arch/x86/mm/extable.c                              |   7 +-
 arch/x86/mm/numa.c                                 |   8 +
 arch/x86/mm/srat.c                                 |   2 +
 arch/x86/net/bpf_jit_comp.c                        |  13 +-
 arch/x86/platform/efi/efi.c                        |   2 +-
 arch/x86/platform/efi/quirks.c                     |  55 ++++-
 block/blk-sysfs.c                                  |   8 +-
 block/elevator.c                                   |  12 +-
 drivers/accel/amdxdna/aie2_ctx.c                   |  55 +++--
 drivers/accel/amdxdna/aie2_message.c               |  36 +++-
 drivers/accel/amdxdna/aie2_pci.c                   |  23 +-
 drivers/accel/amdxdna/aie2_pci.h                   |   1 +
 drivers/accel/amdxdna/aie2_pm.c                    |   2 +-
 drivers/accel/amdxdna/amdxdna_ctx.c                |  51 +++--
 drivers/accel/amdxdna/amdxdna_ctx.h                |   3 +
 drivers/accel/amdxdna/amdxdna_gem.c                |  38 ++--
 drivers/accel/amdxdna/amdxdna_pm.c                 |   2 +
 drivers/accel/amdxdna/amdxdna_pm.h                 |  11 +
 drivers/accel/amdxdna/amdxdna_ubuf.c               |   6 +-
 drivers/accel/ethosu/ethosu_gem.c                  |   7 +-
 drivers/accel/ethosu/ethosu_job.c                  |  26 ++-
 drivers/accel/rocket/rocket_core.c                 |   7 +-
 drivers/accel/rocket/rocket_drv.c                  |  15 +-
 drivers/ata/libata-eh.c                            |   3 +-
 drivers/ata/libata-scsi.c                          |   1 +
 drivers/block/drbd/drbd_actlog.c                   |  53 ++---
 drivers/block/drbd/drbd_interval.h                 |   5 +-
 drivers/block/drbd/drbd_req.c                      |   3 +-
 drivers/block/zloop.c                              |  31 ++-
 drivers/char/ipmi/ipmi_msghandler.c                |  11 +-
 drivers/clk/imx/clk-imx8qxp.c                      |  24 ++-
 drivers/clk/imx/clk-scu.c                          |  12 +-
 drivers/clk/imx/clk-scu.h                          |   2 +
 drivers/cpufreq/intel_pstate.c                     |  10 +-
 drivers/crypto/ccp/sev-dev-tsm.c                   |   2 +-
 drivers/cxl/core/mbox.c                            |  11 +-
 drivers/cxl/core/pmem.c                            |  42 +++-
 drivers/cxl/cxl.h                                  |   7 +
 drivers/cxl/pmem.c                                 |  22 +-
 drivers/firmware/efi/mokvar-table.c                |   2 +-
 drivers/gpio/gpiolib-shared.c                      |   6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c            |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |  17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c         |  12 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c    |   8 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_color.c    |   6 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c  |   3 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c |  16 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c    |   8 +
 drivers/gpu/drm/amd/display/dc/core/dc_stream.c    |   2 +-
 drivers/gpu/drm/bridge/synopsys/dw-dp.c            |   4 +-
 drivers/gpu/drm/drm_client_modeset.c               |   3 +-
 drivers/gpu/drm/drm_syncobj.c                      |   4 +-
 drivers/gpu/drm/imx/ipuv3/parallel-display.c       |   4 +-
 drivers/gpu/drm/logicvc/logicvc_drm.c              |   4 +-
 drivers/gpu/drm/scheduler/sched_main.c             |   1 +
 drivers/gpu/drm/solomon/ssd130x.c                  |   6 +-
 drivers/gpu/drm/tiny/sharp-memory.c                |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c            |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c         |   9 +-
 drivers/gpu/drm/xe/regs/xe_engine_regs.h           |   6 +
 drivers/gpu/drm/xe/xe_configfs.c                   |   1 +
 drivers/gpu/drm/xe/xe_exec_queue.c                 |  23 +-
 drivers/gpu/drm/xe/xe_gsc_proxy.c                  |  43 +++-
 drivers/gpu/drm/xe/xe_gsc_types.h                  |   2 +
 drivers/gpu/drm/xe/xe_gt.c                         |  66 ++++--
 drivers/gpu/drm/xe/xe_lrc.h                        |   3 +-
 drivers/gpu/drm/xe/xe_reg_sr.c                     |   4 +-
 drivers/gpu/drm/xe/xe_ring_ops.c                   |   9 +
 drivers/hid/hid-cmedia.c                           |   2 +-
 drivers/hid/hid-creative-sb0540.c                  |   2 +-
 drivers/hid/hid-multitouch.c                       |  43 +++-
 drivers/hid/hid-zydacron.c                         |   2 +-
 drivers/hid/usbhid/hid-pidff.c                     |  11 +-
 drivers/hwmon/aht10.c                              |   6 +-
 drivers/hwmon/it87.c                               |   5 +-
 drivers/hwmon/macsmc-hwmon.c                       |  53 ++---
 drivers/hwmon/max6639.c                            |   2 +-
 drivers/i2c/busses/i2c-i801.c                      |  14 +-
 drivers/infiniband/hw/ionic/ionic_controlpath.c    |   2 +-
 drivers/infiniband/hw/irdma/verbs.c                |   2 +-
 drivers/infiniband/hw/mthca/mthca_provider.c       |   5 +-
 drivers/irqchip/irq-ls-extirq.c                    |   6 +-
 drivers/irqchip/irq-sifive-plic.c                  |   7 +-
 drivers/media/dvb-core/dmxdev.c                    |   4 +-
 drivers/net/bonding/bond_main.c                    |   9 +-
 drivers/net/bonding/bond_options.c                 |   2 +
 drivers/net/can/dummy_can.c                        |   1 +
 drivers/net/can/spi/mcp251x.c                      |  15 +-
 drivers/net/can/usb/ems_usb.c                      |   7 +-
 drivers/net/can/usb/etas_es58x/es58x_core.c        |   8 +-
 drivers/net/can/usb/f81604.c                       |  45 +++-
 drivers/net/can/usb/ucan.c                         |   2 +-
 drivers/net/dsa/realtek/rtl8365mb.c                |   2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-common.h        |   2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c           |  10 -
 drivers/net/ethernet/amd/xgbe/xgbe-main.c          |   1 -
 drivers/net/ethernet/amd/xgbe/xgbe.h               |   3 -
 .../net/ethernet/freescale/dpaa2/dpaa2-switch.c    |   3 +-
 drivers/net/ethernet/freescale/enetc/enetc.c       |   2 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c       |  56 +++--
 drivers/net/ethernet/intel/e1000e/defines.h        |   1 +
 drivers/net/ethernet/intel/e1000e/ich8lan.c        |   9 +
 drivers/net/ethernet/intel/i40e/i40e_main.c        |  41 ++--
 drivers/net/ethernet/intel/i40e/i40e_trace.h       |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c        |   5 +-
 drivers/net/ethernet/intel/iavf/iavf_main.c        |  17 +-
 drivers/net/ethernet/intel/ice/ice.h               |   1 +
 drivers/net/ethernet/intel/ice/ice_base.c          |  38 ++--
 drivers/net/ethernet/intel/ice/ice_common.c        |   2 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c       |  16 +-
 drivers/net/ethernet/intel/ice/ice_idc.c           |  44 +++-
 drivers/net/ethernet/intel/ice/ice_lib.c           |  15 +-
 drivers/net/ethernet/intel/ice/ice_main.c          |   7 +-
 drivers/net/ethernet/intel/ice/ice_txrx.c          |   4 +-
 drivers/net/ethernet/intel/ice/ice_xsk.c           |   3 +
 drivers/net/ethernet/intel/idpf/idpf_ethtool.c     |   3 -
 drivers/net/ethernet/intel/idpf/idpf_txrx.c        |   8 +-
 drivers/net/ethernet/intel/igb/igb_xsk.c           |  38 +++-
 drivers/net/ethernet/intel/igc/igc_main.c          |  34 ++-
 drivers/net/ethernet/intel/igc/igc_ptp.c           |   3 +-
 drivers/net/ethernet/intel/libie/fwlog.c           |   4 +
 .../net/ethernet/marvell/octeon_ep/octep_main.c    |  40 ++--
 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c  |  27 ++-
 .../ethernet/marvell/octeon_ep_vf/octep_vf_main.c  |  38 +++-
 .../ethernet/marvell/octeon_ep_vf/octep_vf_rx.c    |  28 ++-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c        |  15 +-
 drivers/net/ethernet/stmicro/stmmac/common.h       |   1 -
 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c  |   4 -
 .../net/ethernet/stmicro/stmmac/dwmac-loongson.c   |   7 -
 drivers/net/ethernet/stmicro/stmmac/stmmac.h       |   3 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  89 ++++----
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   8 -
 drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.c  |  60 +++---
 drivers/net/ethernet/ti/am65-cpsw-nuss.c           |   2 +-
 drivers/net/ethernet/ti/cpsw_ale.c                 |   9 +-
 drivers/net/ethernet/ti/icssg/icssg_prueth.c       |   8 +
 drivers/net/phy/phy_device.c                       |  25 ++-
 drivers/net/usb/kalmia.c                           |   7 +
 drivers/net/usb/kaweth.c                           |  13 ++
 drivers/net/usb/pegasus.c                          |  13 +-
 drivers/net/vxlan/vxlan_core.c                     |   5 +
 drivers/net/wireless/marvell/libertas/main.c       |   4 +-
 .../net/wireless/mediatek/mt76/mt76_connac_mac.c   |   1 +
 drivers/net/wireless/mediatek/mt76/mt7925/mac.c    |   1 +
 drivers/net/wireless/mediatek/mt76/mt7996/mac.c    |   1 +
 drivers/net/wireless/rsi/rsi_91x_mac80211.c        |   2 +-
 drivers/net/wireless/st/cw1200/pm.c                |   2 +
 drivers/net/wireless/ti/wlcore/main.c              |   4 +-
 drivers/nfc/pn533/usb.c                            |   1 +
 drivers/nvme/host/core.c                           |   7 +
 drivers/nvme/host/multipath.c                      |  12 +-
 drivers/nvme/host/pr.c                             |   4 +-
 drivers/nvme/target/fcloop.c                       |  15 +-
 drivers/pci/controller/dwc/pcie-designware-ep.c    |  25 ++-
 drivers/pinctrl/cirrus/pinctrl-cs42l43.c           |   5 +-
 drivers/pinctrl/meson/pinctrl-amlogic-a4.c         |  70 +++++-
 drivers/pinctrl/pinconf-generic.c                  |  73 +------
 drivers/pinctrl/pinctrl-equilibrium.c              |  31 +--
 drivers/pinctrl/qcom/pinctrl-qcs615.c              |   1 +
 drivers/platform/x86/dell/alienware-wmi-wmax.c     |   2 +-
 drivers/platform/x86/dell/dell-wmi-base.c          |   6 +
 .../dell/dell-wmi-sysman/passwordattr-interface.c  |   1 -
 .../platform/x86/hp/hp-bioscfg/enum-attributes.c   |   9 +-
 drivers/platform/x86/lenovo/thinkpad_acpi.c        |   6 +-
 drivers/regulator/bq257xx-regulator.c              |   3 +-
 drivers/regulator/fp9931.c                         |   7 +-
 drivers/regulator/mt6363-regulator.c               |   4 +-
 drivers/scsi/lpfc/lpfc_init.c                      |   2 +
 drivers/scsi/lpfc/lpfc_sli.c                       |  36 +++-
 drivers/scsi/lpfc/lpfc_sli4.h                      |   3 +
 drivers/scsi/pm8001/pm8001_sas.c                   |   5 +-
 drivers/scsi/scsi_scan.c                           |   1 +
 drivers/spi/spi-stm32.c                            |   3 +
 drivers/target/target_core_configfs.c              |  15 +-
 drivers/ufs/core/ufshcd.c                          |  38 +++-
 drivers/usb/gadget/function/f_ncm.c                | 128 ++++++-----
 drivers/usb/gadget/function/u_ether.c              |  45 ++++
 drivers/usb/gadget/function/u_ether.h              |  30 +++
 drivers/usb/gadget/function/u_ether_configfs.h     | 176 +++++++++++++++
 drivers/usb/gadget/function/u_ncm.h                |   4 +-
 drivers/xen/xen-acpi-processor.c                   |   7 +-
 fs/btrfs/delayed-inode.c                           |   2 +-
 fs/btrfs/disk-io.c                                 |   6 +-
 fs/btrfs/inode.c                                   |   2 +-
 fs/btrfs/ioctl.c                                   |   7 +-
 fs/btrfs/scrub.c                                   |   2 +-
 fs/btrfs/tree-checker.c                            |   4 +-
 fs/eventpoll.c                                     |   5 +-
 fs/namespace.c                                     |  20 +-
 fs/netfs/direct_write.c                            | 228 ++++++++++++++++++--
 fs/netfs/internal.h                                |   4 +-
 fs/netfs/write_collect.c                           |  21 --
 fs/netfs/write_issue.c                             |  41 +---
 fs/nfsd/nfsctl.c                                   |   2 +-
 fs/smb/client/connect.c                            |   1 -
 fs/smb/client/smb2inode.c                          |   8 +-
 fs/smb/client/smb2pdu.c                            |  24 +--
 fs/smb/client/transport.c                          |  21 +-
 fs/smb/server/Kconfig                              |   1 +
 fs/smb/server/auth.c                               |   4 +-
 fs/smb/server/smb2pdu.c                            |   5 +-
 fs/squashfs/cache.c                                |   3 +
 fs/xfs/scrub/orphanage.c                           |   7 +-
 fs/xfs/xfs_notify_failure.c                        |   4 +-
 include/asm-generic/vmlinux.lds.h                  |   4 +-
 include/linux/indirect_call_wrapper.h              |  18 +-
 include/linux/netdevice.h                          |  27 ++-
 include/linux/pinctrl/pinconf-generic.h            |   5 -
 include/linux/ring_buffer.h                        |   1 +
 include/linux/sched.h                              |   1 +
 include/linux/stmmac.h                             |   1 -
 include/linux/tnum.h                               |   8 +
 include/linux/uaccess.h                            |  54 ++---
 include/net/bonding.h                              |   1 +
 include/net/inet6_hashtables.h                     |   2 +-
 include/net/inet_hashtables.h                      |   2 +-
 include/net/ip.h                                   |   2 +-
 include/net/ip_fib.h                               |   2 +-
 include/net/netfilter/nf_tables.h                  |  11 +-
 include/net/sch_generic.h                          |  10 +
 include/net/secure_seq.h                           |  45 +++-
 include/net/tc_act/tc_ife.h                        |   4 +-
 include/net/tcp.h                                  |   6 +-
 include/net/xdp_sock_drv.h                         |  16 +-
 include/trace/events/netfs.h                       |   4 +-
 include/uapi/drm/drm_fourcc.h                      |  12 +-
 include/uapi/linux/pci_regs.h                      |   2 +-
 io_uring/cmd_net.c                                 |   2 +-
 kernel/bpf/cpumap.c                                |  17 +-
 kernel/bpf/devmap.c                                |  47 +++-
 kernel/bpf/tnum.c                                  |  72 +++++++
 kernel/bpf/trampoline.c                            |   4 +-
 kernel/bpf/verifier.c                              | 103 ++++++++-
 kernel/cgroup/cpuset.c                             |   4 +-
 kernel/events/core.c                               |  83 +++++--
 kernel/module/main.c                               |   6 -
 kernel/rseq.c                                      |   5 +-
 kernel/sched/ext_internal.h                        |   2 +-
 kernel/sched/fair.c                                | 238 +++++++++++++++------
 kernel/sched/sched.h                               |   4 +-
 kernel/sched/syscalls.c                            |  30 +++
 kernel/time/jiffies.c                              |   2 -
 kernel/time/timekeeping.c                          |   6 +-
 kernel/trace/blktrace.c                            |   3 +-
 kernel/trace/ring_buffer.c                         |  21 ++
 kernel/trace/trace.c                               |  13 ++
 kernel/trace/trace_events_trigger.c                |   3 +
 lib/Kconfig.debug                                  |   1 +
 lib/debugobjects.c                                 |  19 +-
 mm/huge_memory.c                                   |   3 +
 mm/slub.c                                          |  13 +-
 net/atm/lec.c                                      |  26 ++-
 net/bluetooth/hci_sock.c                           |   1 +
 net/bluetooth/hci_sync.c                           |   2 +-
 net/bluetooth/iso.c                                |   1 +
 net/bluetooth/l2cap_sock.c                         |   1 +
 net/bluetooth/sco.c                                |   1 +
 net/bridge/br_device.c                             |   2 +-
 net/bridge/br_input.c                              |   2 +-
 net/bridge/br_private.h                            |  10 +
 net/bridge/br_vlan_options.c                       |  26 ++-
 net/can/bcm.c                                      |   1 +
 net/core/dev.c                                     |   7 +-
 net/core/devmem.c                                  |   6 +-
 net/core/filter.c                                  |   6 +-
 net/core/netpoll.c                                 |   2 +-
 net/core/secure_seq.c                              |  80 +++----
 net/core/skmsg.c                                   |  14 +-
 net/ipv4/inet_hashtables.c                         |   8 +-
 net/ipv4/syncookies.c                              |  11 +-
 net/ipv4/sysctl_net_ipv4.c                         |   5 +-
 net/ipv4/tcp.c                                     |   4 +-
 net/ipv4/tcp_bpf.c                                 |   2 +-
 net/ipv4/tcp_diag.c                                |   2 +-
 net/ipv4/tcp_input.c                               |  38 ++--
 net/ipv4/tcp_ipv4.c                                |  37 ++--
 net/ipv4/tcp_minisocks.c                           |   2 +-
 net/ipv4/udp.c                                     |  27 ++-
 net/ipv4/udp_bpf.c                                 |   2 +-
 net/ipv6/inet6_hashtables.c                        |   3 +-
 net/ipv6/route.c                                   |  11 +-
 net/ipv6/syncookies.c                              |  11 +-
 net/ipv6/tcp_ipv6.c                                |  37 ++--
 net/mac80211/mesh.c                                |   3 +
 net/mac80211/mlme.c                                |   3 +
 net/mptcp/pm.c                                     |  55 +++--
 net/mptcp/pm_kernel.c                              |   9 +
 net/netfilter/nf_tables_api.c                      |  66 +++---
 net/netfilter/nft_set_hash.c                       |   1 +
 net/netfilter/nft_set_pipapo.c                     |  62 +++++-
 net/netfilter/nft_set_pipapo.h                     |   2 +
 net/netfilter/nft_set_rbtree.c                     |  79 ++-----
 net/nfc/nci/core.c                                 |  30 ++-
 net/nfc/nci/data.c                                 |  12 +-
 net/nfc/rawsock.c                                  |  11 +
 net/rds/tcp.c                                      |  14 +-
 net/sched/act_ife.c                                |  93 ++++----
 net/sched/sch_ets.c                                |  12 +-
 net/sched/sch_fq.c                                 |   1 +
 net/unix/af_unix.c                                 |   8 +-
 net/wireless/core.c                                |   1 +
 net/wireless/radiotap.c                            |   4 +-
 net/xdp/xsk.c                                      |  26 ++-
 rust/kernel/kunit.rs                               |   8 +
 sound/hda/codecs/realtek/alc269.c                  |  13 +-
 sound/hda/codecs/side-codecs/cs35l56_hda.c         |   2 +-
 sound/hda/controllers/intel.c                      |   2 +
 sound/soc/sdca/Kconfig                             |   2 +
 sound/soc/sdca/sdca_functions.c                    |   5 +-
 sound/soc/sdca/sdca_interrupts.c                   |   4 +-
 sound/usb/endpoint.c                               |   9 +-
 sound/usb/mixer_scarlett2.c                        |  10 +-
 sound/usb/qcom/qc_audio_offload.c                  |   2 +-
 sound/usb/quirks.c                                 |   3 +-
 sound/usb/stream.c                                 |   3 +
 sound/usb/usbaudio.h                               |   6 +
 sound/usb/validate.c                               |   2 +-
 tools/objtool/Makefile                             |   8 +-
 tools/testing/kunit/kunit_kernel.py                |   6 +-
 tools/testing/kunit/kunit_tool_test.py             |  26 +++
 tools/testing/selftests/arm64/abi/hwcap.c          |   4 +-
 .../testing/selftests/bpf/prog_tests/reg_bounds.c  |   2 +-
 tools/testing/selftests/bpf/progs/dmabuf_iter.c    |   2 +-
 .../selftests/bpf/progs/exceptions_assert.c        |  34 +--
 .../selftests/bpf/progs/verifier_scalar_ids.c      |  56 +++--
 tools/testing/selftests/bpf/verifier/precise.c     |   8 +-
 tools/testing/selftests/kselftest_harness.h        |   7 +-
 tools/testing/selftests/net/mptcp/mptcp_join.sh    |  49 +++++
 tools/testing/selftests/net/mptcp/simult_flows.sh  |  11 +-
 397 files changed, 4121 insertions(+), 1792 deletions(-)

Aaron Ma (1):
ice: recap the VSI and QoS info after rebuild

Alain Volmat (1):
spi: stm32: fix missing pointer assignment in case of dma chaining

Alban Bedel (1):
can: mcp251x: fix deadlock in error path of mcp251x_open

Alex Hung (2):
drm/amd/display: Use mpc.preblend flag to indicate 3D LUT drm/amd/display: Enable DEGAMMA and reject COLOR_PIPELINE+DEGAMMA_LUT

Alexandre Courbot (1):
rust: kunit: fix warning when !CONFIG_PRINTK

Alexey Charkov (1):
scsi: ufs: core: Fix RPMB region size detection for UFS 2.2

Allison Henderson (1):
net/rds: Fix circular locking dependency in rds_tcp_tune

Alper Ak (1):
crypto: ccp - Fix use-after-free on error path

Andrew Cooper (1):
x86/fred: Correct speculative safety in fred_extint()

Andrew Lunn (1):
net: phy: register phy led_triggers during probe to avoid AB-BA deadlock

Ankit Garg (1):
gve: fix incorrect buffer cleanup in gve_tx_clean_pending_packets for QPL

Ariel Silver (1):
wifi: mac80211: bounds-check link_id in ieee80211_ml_reconfiguration

Bart Van Assche (5):
drm/amdgpu: Unlock a mutex before destroying it drm/amdgpu: Fix locking bugs in error paths
hwmon: (it87) Check the it87_lock() return value
wifi: cw1200: Fix locking in error paths
wifi: wlcore: Fix a locking bug

Bjorn Helgaas (1):
PCI: Correct PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 value

Bobby Eshleman (1):

      net: devmem: use READ_ONCE/WRITE_ONCE on binding->dev

Boris Faure (1):
ASoC: sdca: Fix missing regmap dependencies in Kconfig

Brad Spengler (1):
drm/vmwgfx: Fix invalid kref_put callback in vmw_bo_dirty_release

Brian Vazquez (1):
idpf: change IRQ naming to match netdev and ethtool queue numbering

Catalin Marinas (1):
arm64: gcs: Do not set PTE_SHARED on GCS mappings if FEAT_LPA2 is enabled

Chaitanya Kulkarni (1):
blktrace: fix __this_cpu_read/write in preemptible context

Charles Haithcock (1):
i2c: i801: Revert "i2c: i801: replace acpi_lock with I2C bus lock"

Charles Keepax (1):
ASoC: SDCA: Add allocation failure check for Entity name

Chen Ni (2):
drm/imx: parallel-display: check return value of devm_drm_bridge_add() in imx_pd_probe() drm/bridge: synopsys: dw-dp: Check return value of devm_drm_bridge_add() in dw_dp_bind()

Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss/cpsw-ale: Fix multicast entry handling in ALE table

Christian Brauner (1):
namespace: fix proc mount iteration

Christoph Böhmwalder (1):
drbd: fix null-pointer dereference on local read error

Christoph Hellwig (2):
zloop: advertise a volatile write cache
zloop: check for spurious options passed to remove

Conor Dooley (1):
pinctrl: generic: move function to amlogic-am4 driver

Corey Minyard (1):
ipmi: Fix use-after-free and list corruption on sender error

Dan Carpenter (1):
accel: ethosu: Fix shift overflow in cmd_to_addr()

Daniel Hodges (1):
wifi: libertas: fix use-after-free in lbs_free_adapter()

Daniel J Blueman (1):
gpio: shared: fix memory leaks

Danielle Ratson (1):
bridge: Check relevant per-VLAN options in VLAN range grouping

Daniil Dulov (1):
wifi: cfg80211: cancel rfkill_block work in wiphy_unregister()

Danilo Krummrich (1):
clk: scu/imx8qxp: do not register driver in probe()

Darrick J. Wong (1):
xfs: fix xfs_group release bug in xfs_dax_notify_dev_failure

Dave Jiang (2):
cxl: Move devm_cxl_add_nvdimm_bridge() to cxl_pmem.ko
cxl: Fix race of nvdimm_bus object when creating nvdimm objects

David Carlier (1):
sched_ext: Fix SCX_EFLAG_INITIALIZED being a no-op flag

David Howells (1):
netfs: Fix unbuffered/DIO writes to dispatch subrequests in strict sequence

David Laight (1):
uaccess: Fix scoped_user_read_access() for 'pointer to const'

David Thomson (1):
xen/acpi-processor: fix _CST detection using undersized evaluation buffer

Davide Caratti (1):
net/sched: ets: fix divide by zero in the offload path

Davidlohr Bueso (1):
cxl/mbox: validate payload size before accessing contents in cxl_payload_from_user_allowed()

Deepanshu Kartikey (1):
mm: thp: deny THP for files on anonymous inodes

Eduard Zingerman (1):
bpf: collect only live registers in linked regs

Eric Biggers (1):
ksmbd: Compare MACs in constant time

Eric Dumazet (5):

      net: annotate data-races around sk->sk_{data_ready,write_space}
      inet: annotate data-races around isk->inet_num
      indirect_call_wrapper: do not reevaluate function pointer
      tcp: secure_seq: add back ports to TS offset
      net_sched: sch_fq: clear q->band_pkt_count[] in fq_reset()

Ethan Tidmore (2):
drm/tiny: sharp-memory: fix pointer error dereference
xfs: Fix error pointer dereference

Felix Gu (7):
drm/logicvc: Fix device node reference leak in logicvc_drm_config_parse()
regulator: fp9931: Fix PM runtime reference leak in fp9931_hwmon_read()
regulator: bq257xx: Fix device node reference leak in bq257xx_reg_dt_parse_gpio()
pinctrl: pinconf-generic: Fix memory leak in pinconf_generic_parse_dt_config()
pinctrl: meson: amlogic-a4: Fix device node reference leak in aml_dt_node_to_map_pinmux()
pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()
regulator: mt6363: Fix incorrect and redundant IRQ disposal in probe

Fernando Fernandez Mancera (2):
net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled
net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled

Florian Eckert (2):
pinctrl: equilibrium: rename irq_chip function callbacks
pinctrl: equilibrium: fix warning trace on load

Florian Westphal (1):
netfilter: nft_set_pipapo: split gc into unlink and reclaim phase

Francesco Lavra (1):
drm/solomon: Fix page start when updating rectangle in page addressing mode

Fuad Tabba (3):
KVM: arm64: Hide S1POE from guests when not supported by the host
KVM: arm64: Fix ID register initialization for non-protected pKVM guests bpf, arm64: Force 8-byte alignment for JIT buffer to prevent atomic tearing

Geoffrey D. Bennett (3):
ALSA: scarlett2: Fix DSP filter control array handling
ALSA: usb-audio: Remove VALIDATE_RATES quirk for Focusrite devices
ALSA: usb-audio: Add QUIRK_FLAG_SKIP_IFACE_SETUP

Gerd Rausch (1):
time/jiffies: Fix sysctl file error on configurations where USER_HZ < HZ

Greg Kroah-Hartman (12):
nfc: pn533: properly drop the usb interface reference on disconnect
net: usb: kaweth: validate USB endpoints
net: usb: kalmia: validate USB endpoints
net: usb: pegasus: validate USB endpoints
can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message
can: usb: f81604: correctly anchor the urb in the read bulk callback
can: ucan: Fix infinite loop from zero-length messages
can: usb: etas_es58x: correctly anchor the urb in the read bulk callback
can: usb: f81604: handle short interrupt urb messages properly
can: usb: f81604: handle bulk write errors properly
HID: Add HID_CLAIMED_INPUT guards in raw_event callbacks missing them Revert "netfilter: nft_set_rbtree: validate open interval overlap"

Guenter Roeck (5):
hwmon: (macsmc) Fix regressions in Apple Silicon SMC hwmon driver
hwmon: (macsmc) Fix overflows, underflows, and sign extension
dpaa2-switch: Fix interrupt storm after receiving bad if_id in IRQ handler
ata: libata-eh: Fix detection of deferred qc timeouts
tracing: Add NULL pointer check to trigger_data_free()

Hao Yu (1):
hwmon: (aht10) Fix initialization commands for AHT20

Haocheng Yu (1):
perf/core: Fix refcount bug and potential UAF in perf_mmap

Harishankar Vishwanathan (1):
bpf: Introduce tnum_step to step through tnum's members

Harry Yoo (1):
mm/slab: pass __GFP_NOWARN to refill_sheaf() if fallback is available

Heiko Carstens (2):
s390/idle: Fix cpu idle exit cpu time accounting s390/vtime: Fix virtual timer forwarding

Heitor Alves de Siqueira (1):
Bluetooth: purge error queues in socket destructors

Henrique Carvalho (1):
smb: client: fix cifs_pick_channel when channels are equally loaded

Hou Wenlong (1):
x86/bug: Handle __WARN_printf() trap in early_fixup_exception()

Ian Forbes (1):
drm/vmwgfx: Return the correct value in vmw_translate_ptr functions

Ian Ray (2):
HID: multitouch: new class MT_CLS_EGALAX_P80H84
net: nfc: nci: Fix zero-length proprietary notifications

Ingo Molnar (3):
sched/fair: Rename cfs_rq::avg_load to cfs_rq::sum_weight
sched/fair: Rename cfs_rq::avg_vruntime to ::sum_w_vruntime, and helper functions sched/fair: Introduce and use the vruntime_cmp() and vruntime_op() wrappers for wrapped-signed aritmetics

Ioana Ciornei (1):
irqchip/ls-extirq: Fix devm_of_iomap() error check

Jakub Kicinski (6):
tcp: give up on stronger sk_rcvbuf checks (for now)
ipv6: fix NULL pointer deref in ip6_rt_get_dev_rcu()
nfc: nci: free skb on nci_transceive early error paths
nfc: nci: complete pending data exchange on device close
nfc: nci: clear NCI_DATA_EXCHANGE before calling completion callback
nfc: rawsock: cancel tx_work before socket teardown

Jamal Hadi Salim (1):
net/sched: act_ife: Fix metalist update behavior

Jan Stancek (1):
x86/boot: Handle relative CONFIG_EFI_SBAT_FILE file paths

Jann Horn (1):
eventpoll: Fix integer overflow in ep_loop_check_proc()

Jason Gunthorpe (3):
IB/mthca: Add missed mthca_unmap_user_db() for mthca_create_srq() RDMA/irdma: Fix kernel stack leak in irdma_create_user_ah() RDMA/ionic: Fix kernel stack leak in ionic_create_cq()

Jens Axboe (2):
io_uring/cmd_net: use READ_ONCE() for ->addr3 read
media: dvb-core: fix wrong reinitialization of ringbuffer on reopen

Jiayuan Chen (5):
bpf: Fix race in cpumap on PREEMPT_RT
bpf: Fix race in devmap on PREEMPT_RT
atm: lec: fix null-ptr-deref in lec_arp_clear_vccs bpf/bonding: reject vlan+srcmac xmit_hash_policy change when XDP is loaded
net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop

Johannes Berg (1):
wifi: radiotap: reject radiotap with unknown bits

Jonathan Cavitt (1):
drm/client: Do not destroy NULL modes

Jonathan Teh (1):
platform/x86: thinkpad_acpi: Fix errors reading battery thresholds

Juhyung Park (2):
ALSA: hda/realtek: fix model name typo for Samsung Galaxy Book Flex (NT950QCG-X716)
ALSA: hda/realtek: add quirk for Samsung Galaxy Book Flex (NT950QCT-A38A)

Julian Orth (1):

      drm/syncobj: Fix handle <-> fd ioctls with dirty stack

Jun Seo (1):
ALSA: usb-audio: Use correct version for UAC3 header validation

Junxiao Bi (1):
scsi: core: Fix refcount leak for tagset_refcnt

Juri Lelli (1):
sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting

Justin Tee (1):
nvmet-fcloop: Check remoteport port_state before calling done callback

Keith Busch (1):
nvme-multipath: fix leak on try_module_get failure

Khushit Shah (1):
KVM: x86: Add x2APIC "features" to control EOI broadcast suppression

Kim Phillips (1):
x86/sev: Allow IBPB-on-Entry feature for SNP guests

Kohei Enju (2):
bpf: Fix stack-out-of-bounds write in devmap
iavf: fix netdev->max_mtu to respect actual hardware limit

Koichiro Den (1):
net: sched: avoid qdisc_reset_all_tx_gt() vs dequeue race for lockless qdiscs

Kuen-Han Tsai (3):
usb: gadget: u_ether: add gether_opts for config caching
usb: gadget: u_ether: Add auto-cleanup helper for freeing net_device
usb: gadget: f_ncm: align net_device lifecycle with bind/unbind

Kuniyuki Iwashima (2):
nfsd: Fix cred ref leak in nfsd_nl_threads_set_doit().
udp: Unhash auto-bound connected sk from 4-tuple hash table when disconnected.

Kurt Borja (2):
platform/x86: alienware-wmi-wmax: Add G-Mode support to m18 laptops platform/x86: dell-wmi: Add audio/mic mute key codes

Lang Xu (1):
bpf: Fix a UAF issue in bpf_trampoline_link_cgroup_shim

Lars Ellenberg (1):
drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()

Larysa Zaremba (9):
ice: fix adding AQ LLDP filter for VF
xdp: use modulo operation to calculate XDP frag tailroom
xsk: introduce helper to determine rxq->frag_size
ice: fix rxq info registering in mbuf packets
ice: change XDP RxQ frag_size from DMA write length to xdp.frame_sz
i40e: fix registering XDP RxQ info
i40e: use xdp.frame_sz as XDP RxQ info frag_size
net: enetc: use truesize as XDP RxQ info frag_size
xdp: produce a warning when calculated tailroom is negative

Li Li (1):
idpf: increment completion queue next_to_clean in sw marker wait routine

Lijo Lazar (1):
drm/amdgpu: Fix error handling in slot reset

Lizhi Hou (11):
accel/amdxdna: Remove buffer size check when creating command BO accel/amdxdna: Switch to always use chained command accel/amdxdna: Fix crash when destroying a suspended hardware context accel/amdxdna: Fix dead lock for suspend and resume accel/amdxdna: Fix suspend failure after enabling turbo mode accel/amdxdna: Fix command hang on suspended hardware context accel/amdxdna: Fix out-of-bounds memset in command slot handling accel/amdxdna: Prevent ubuf size overflow
accel/amdxdna: Validate command buffer payload count accel/amdxdna: Fill invalid payload for failed command accel/amdxdna: Fix NULL pointer dereference of mgmt_chann

Lorenzo Bianconi (4):

      wifi: mt76: mt7996: Fix possible oob access in mt7996_mac_write_txwi_80211()
      wifi: mt76: mt7925: Fix possible oob access in mt7925_mac_write_txwi_80211()
      wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211()
      net: ethernet: mtk_eth_soc: Reset prog ptr to old_prog in case of error in mtk_xdp_setup()

MD Danish Anwar (1):
net: ti: icssg-prueth: Fix ping failure after offload mode setup when link speed is not 1G

Mario Limonciello (2):
accel/amdxdna: Reduce log noise during process termination platform/x86: hp-bioscfg: Support allocations of larger data

Mariusz Skamra (1):
Bluetooth: Fix CIS host feature condition

Mark Harmstone (6):
btrfs: fix error message order of parameters in btrfs_delete_delayed_dir_index()
btrfs: fix incorrect key offset in error message in check_dev_extent_item()
btrfs: fix objectid value in error message in check_extent_data_ref()
btrfs: fix warning in scrub_verify_one_metadata()
btrfs: print correct subvol num if active swapfile prevents deletion
btrfs: fix compat mask in error messages in btrfs_check_features()

Mathias Krause (1):
scsi: lpfc: Properly set WC for DPP mapping

Mathieu Desnoyers (1):
rseq: Clarify rseq registration rseq_size bound check comment

Matt Roper (1):
drm/xe/wa: Steer RMW of MCR registers while building default LRC

Matthew Brost (1):
drm/xe: Do not preempt fence signaling CS instructions

Matthieu Baerts (NGI0) (4):
mptcp: pm: avoid sending RM_ADDR over same subflow
mptcp: pm: in-kernel: always mark signal+subflow endp as used
selftests: mptcp: join: check RM_ADDR not sent over same subflow
selftests: mptcp: join: check removing signal+subflow endp

Maulik Shah (1):
pinctrl: qcom: qcs615: Add missing dual edge GPIO IRQ errata flag

Michal Schmidt (1):
ice: fix crash in ethtool offline loopback test

Michal Swiatkowski (1):
libie: don't unroll if fwlog isn't supported

Mieczyslaw Nalewaj (1):
net: dsa: realtek: rtl8365mb: fix rtl8365mb_phy_ocp_write return value

Mike Rapoport (Microsoft) (1):
x86/efi: defer freeing of boot services memory

Ming Lei (2):
nvme: fix admin queue leak on controller reset
block: use trylock to avoid lockdep circular dependency in sysfs

Miquel Sabaté Solà (1):
btrfs: free pages on error in btrfs_uring_read_extent()

Miroslav Lichvar (1):
timekeeping: Fix timex status validation for auxiliary clocks

Nam Cao (1):
irqchip/sifive-plic: Fix frozen interrupt due to affinity setting

Namhyung Kim (1):
perf/core: Fix invalid wait context in ctx_sched_in()

Natalie Vock (1):
drm/amd/display: Use GFP_ATOMIC in dc_create_stream_for_sink

Nathan Chancellor (2):
kbuild: Split .modinfo out from ELF_DETAILS
kbuild: Leave objtool binary around with 'make clean'

Nikhil P. Rao (2):
xsk: Fix fragment node deletion to prevent buffer leak
xsk: Fix zero-copy AF_XDP fragment drop

Niklas Cassel (3):
PCI: dwc: ep: Refresh MSI Message Address cache on change
PCI: dwc: ep: Flush MSI-X write before unmapping its ATU entry
ata: libata: cancel pending work after clearing deferred_qc

Oliver Hartkopp (2):
can: bcm: fix locking for bcm_op runtime updates
can: dummy_can: dummy_can_init(): fix packet statistics

Olivier Sobrie (1):
hwmon: (max6639) fix inverted polarity

Ovidiu Panait (4):
net: stmmac: Fix error handling in VLAN add and delete paths
net: stmmac: Improve double VLAN handling
net: stmmac: Fix VLAN HW state restore
net: stmmac: Defer VLAN HW configuration when interface is down

Pablo Neira Ayuso (2):
netfilter: nf_tables: unconditionally bump set->nelems before insertion
netfilter: nf_tables: clone set on flush only

Panagiotis Foliadis (2):
ALSA: hda/intel: increase default bdl_pos_adj for Nvidia controllers
ALSA: hda/realtek: Add quirk for Acer Aspire V3-572G

Paolo Abeni (1):
selftests: mptcp: more stable simult_flows tests

Paul Chaignon (2):
bpf: Improve bounds when tnum has a single possible value selftests/bpf: Avoid simplification of crafted bounds test

Paulo Alcantara (2):
smb: client: fix broken multichannel with krb5+signing
smb: client: fix oops due to uninitialised var in smb2_unlink()

Peter Wang (1):
scsi: ufs: core: Move link recovery for hibern8 exit failure to wl_resume

Peter Zijlstra (9):
x86/cfi: Fix CFI rewrite for odd alignments
sched/fair: Fix zero_vruntime tracking
sched/fair: Only set slice protection at pick time sched/fair: Fix lag clamp
perf: Fix __perf_event_overflow() vs perf_remove_from_context() race x86/numa: Store extra copy of numa_nodes_parsed x86/topo: Add topology_num_nodes_per_package()
x86/topo: Replace x86_has_numa_in_package
x86/topo: Fix SNC topology mess

Petr Pavlu (1):
module: Remove duplicate freeing of lockdep classes

Phillip Lougher (1):
Squashfs: check metadata block offset is within range

Prithvi Tambewagh (1):
scsi: target: Fix recursive locking in __configfs_open_file()

Qing Wang (1):
tracing: Fix WARN_ON in tracing_buffers_mmap_close

Quentin Schulz (2):
accel/rocket: fix unwinding in error path in rocket_core_init accel/rocket: fix unwinding in error path in rocket_probe

Raju Rangoju (2):
amd-xgbe: fix MAC_TCR_SS register width for 2.5G and 10M speeds
amd-xgbe: fix sleep while atomic on suspend/resume

Richard Fitzgerald (1):
ALSA: hda: cs35l56: Fix signedness error in cs35l56_hda_posture_put()

Rob Herring (Arm) (2):
accel: ethosu: Fix job submit error clean-up refcount underflows
accel: ethosu: Fix NPU_OP_ELEMENTWISE validation with scalar

Rong Zhang (1):
ALSA: doc: usb-audio: Add doc for QUIRK_FLAG_SKIP_IFACE_SETUP

Russell King (Oracle) (1):
net: stmmac: remove support for lpi_intr_o

Salomon Dushimirimana (1):

      scsi: pm8001: Fix use-after-free in pm8001_queue_command()

Sasha Levin (1):

      Linux 6.19.7

Sebastian Andrzej Siewior (1):
net: Provide a PREEMPT_RT specific check for netdev_queue::_xmit_lock

Sebastian Krzyszkowiak (1):
wifi: rsi: Don't default to -EOPNOTSUPP in rsi_mac80211_config

Shuicheng Lin (2):
drm/xe/configfs: Free ctx_restore_mid_bb in release drm/xe/reg_sr: Fix leak on xa_store failure

Shuvam Pandey (1):
kunit: tool: copy caller args in run_kernel to prevent mutation

Simon Ser (1):
drm/fourcc: fix plane order for 10/12/16-bit YCbCr formats

Sreedevi Joshi (1):
idpf: Fix flow rule delete failure due to invalid validation

Srinivas Pandruvada (1):
cpufreq: intel_pstate: Fix crash during turbo disable

Sun Jian (1):
selftests/harness: order TEST_F and XFAIL_ADD constructors

Sungwoo Kim (1):
nvme: fix memory allocation in nvme_pr_read_keys()

T.J. Mercier (1):
selftests/bpf: Fix OOB read in dmabuf_collector

Takashi Iwai (4):
ALSA: usb-audio: Cap the packet size pre-calculations
ALSA: usb-audio: Use inclusive terms
ALSA: usb: qcom: Correct parameter comment for uaudio_transfer_buffer_setup()
ASoC: SDCA: Fix comments for sdca_irq_request()

Thomas Gleixner (2):
debugobject: Make it work with deferred page initialization - again
i40e: Fix preempt count leak in napi poll tracepoint

Thomas Weißschuh (1):
ARM: clean up the memset64() C wrapper

Thorsten Blum (2):
platform/x86: dell-wmi-sysman: Don't hex dump plaintext password data
smb: client: Don't log plaintext credentials in cifs_set_cifscreds

Tianci Cao (1):
bpf: Add bitwise tracking for BPF_END

Tom Lendacky (1):
x86/boot/sev: Move SEV decompressor variables into the .data section

Tomasz Lis (1):
drm/xe/queue: Call fini on exec queue creation fail

Tomasz Pakuła (1):
HID: pidff: Fix condition effect bit clearing

Tvrtko Ursulin (1):
drm/amdgpu/userq: Do not allow userspace to trivially triger kernel warnings

Vahagn Vardanian (1):
wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()

Vasily Gorbik (1):
s390/kexec: Disable stack protector in s390_reset_system()

Vimlesh Kumar (4):
octeon_ep: Relocate counter updates before NAPI
octeon_ep: avoid compiler and IQ/OQ reordering
octeon_ep_vf: Relocate counter updates before NAPI
octeon_ep_vf: avoid compiler and IQ/OQ reordering

Vitaly Lifshits (1):
e1000e: clear DPG_EN after reset to avoid autonomous power-gating

Vivek Behera (2):
igb: Fix trigger of incorrect irq in igb_xsk_wakeup
igc: Fix trigger of incorrect irq in igc_xsk_wakeup function

Waiman Long (2):
cgroup/cpuset: Fix incorrect change to effective_xcpus in partition_xcpus_del() cgroup/cpuset: Fix incorrect use of cpuset_update_tasks_cpumask() in update_cpumasks_hier()

Wang Tao (1):

      sched/eevdf: Update se->vprot in reweight_entity()

Werner Sembach (1):
HID: multitouch: Keep latency normal on deactivate for reactivation gesture

Will Deacon (2):
arm64: io: Rename ioremap_prot() to __ioremap_prot()
arm64: io: Extract user memory type in ioremap_prot()

Yifan Wu (1):
selftest/arm64: Fix sve2p1_sigill() to hwcap test

Yujie Liu (1):
drm/sched: Fix kernel-doc warning for drm_sched_job_done()

Yung Chih Su (1):
net: ipv4: fix ARM64 alignment fault in multipath hash seed

Zhang Heng (2):
ALSA: hda/realtek: Add quirk for HP Pavilion 15-eh1xxx to enable mute LED
ALSA: hda/realtek: add quirk for Acer Nitro ANV15-51

ZhangGuoDong (2):
smb/client: fix buffer size for smb311_posix_qinfo in smb2_compound_op() smb/client: fix buffer size for smb311_posix_qinfo in SMB311_posix_query_info()

Zhanjun Dong (1):
drm/xe/gsc: Fix GSC proxy cleanup on early initialization failure

Zide Chen (1):
perf/x86/intel/uncore: Add per-scheduler IMC CAS count events

Zilin Guan (1):
ice: Fix memory leak in ice_set_ringparam()

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAmmyolUACgkQ3qZv95d3 LNx0rg//ZvEqjhIZG3ewdlLqOGIN3bABxM/jgCG2s0oFQTfYQWTzyKHyXaYsdUvb F0llvHTM1vVAKVZesOkAnJHFBxe0jfr80gQO/ZDRoyIDYvdSi/uIv+AjTiQBv5j7 rmwgumaWFYhCVMR4et3cziGnyLAZDCUAltMuzzRdJiXUSaBR3gkCYKt2mqsmAaPB q5wGrxOd/mdD43C8AS7iB2O1reQs5eeDb+TGcBY0AfJ1q7Yjdjb7P7mucnfxw05P VYVh8qwY8Q9SmjCsMux/5TwnjWTYw4EfLihkTvW5wBJDxU8z1GV+74HmgAlX0uhl Wpj5YznVUTTHXIwkqI+KSvJR9UV0LX+16SXKugbjhfD/fXQTz0NG9xYjAqfuOUA7 Rod1Hy2j8aMEFXRnFPDSrQNuy5rTXCGX4hKQ6USZc4dpg3cMYcbDLxF37l1ShoFE RWOj/BOEVA4aJJjuJVwhzcZ/y8afuFwNpsygSGIE4nff1to8fBdJHm6/PsLmMjIo UnN9UCeZ7cVC1NLYgXUVwiBN7zG7I7o90P7xlQ5w/E7tDH1dPsabrVsIPpbojlwY 2TdRegzo4Tk6HqFD4fuwdxkhNp9CNtzyjnVlVQG7TULcZOdRHmsvpZUaYkNXC+CZ pCdSBIDUVf2Cs+q40WDanIE+RlZgI4sj2O2IvnCi5OKynsnyPAA= =3dae
-----END PGP SIGNATURE-----

author maintainer
#1 lore raw
Documentation/sound/alsa-configuration.rst +4 -0
index 0a4eaa7d66ddd..55b845d382368 100644
@@ -2372,6 +2372,10 @@ quirk_flags
           audible volume
         * bit 25: ``mixer_capture_min_mute``
           Similar to bit 24 but for capture streams
+        * bit 26: ``skip_iface_setup``
+          Skip the probe-time interface setup (usb_set_interface,
+          init_pitch, init_sample_rate); redundant with
+          snd_usb_endpoint_prepare() at stream-open time
 
 This module supports multiple devices, autoprobe and hotplugging.
 
Documentation/virt/kvm/api.rst +26 -2
index 01a3abef8abb9..f1f1d2e5dc7c9 100644
@@ -7835,8 +7835,10 @@ Will return -EBUSY if a VCPU has already been created.
 
 Valid feature flags in args[0] are::
 
-  #define KVM_X2APIC_API_USE_32BIT_IDS            (1ULL << 0)
-  #define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK  (1ULL << 1)
+  #define KVM_X2APIC_API_USE_32BIT_IDS                          (1ULL << 0)
+  #define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK                (1ULL << 1)
+  #define KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST              (1ULL << 2)
+  #define KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST             (1ULL << 3)
 
 Enabling KVM_X2APIC_API_USE_32BIT_IDS changes the behavior of
 KVM_SET_GSI_ROUTING, KVM_SIGNAL_MSI, KVM_SET_LAPIC, and KVM_GET_LAPIC,
@@ -7849,6 +7851,28 @@ as a broadcast even in x2APIC mode in order to support physical x2APIC
 without interrupt remapping.  This is undesirable in logical mode,
 where 0xff represents CPUs 0-7 in cluster 0.
 
+Setting KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST instructs KVM to enable
+Suppress EOI Broadcasts.  KVM will advertise support for Suppress EOI
+Broadcast to the guest and suppress LAPIC EOI broadcasts when the guest
+sets the Suppress EOI Broadcast bit in the SPIV register.  This flag is
+supported only when using a split IRQCHIP.
+
+Setting KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST disables support for
+Suppress EOI Broadcasts entirely, i.e. instructs KVM to NOT advertise
+support to the guest.
+
+Modern VMMs should either enable KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST
+or KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST.  If not, legacy quirky
+behavior will be used by KVM: in split IRQCHIP mode, KVM will advertise
+support for Suppress EOI Broadcasts but not actually suppress EOI
+broadcasts; for in-kernel IRQCHIP mode, KVM will not advertise support for
+Suppress EOI Broadcasts.
+
+Setting both KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST and
+KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST will fail with an EINVAL error,
+as will setting KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST without a split
+IRCHIP.
+
 7.8 KVM_CAP_S390_USER_INSTR0
 ----------------------------
 
Makefile +5 -5
index 67f26d8b29343..eb431129c7ab4 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 19
-SUBLEVEL = 6
+SUBLEVEL = 7
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -1474,13 +1474,13 @@ ifneq ($(wildcard $(resolve_btfids_O)),)
 	$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
 endif
 
-PHONY += objtool_clean
+PHONY += objtool_clean objtool_mrproper
 
 objtool_O = $(abspath $(objtree))/tools/objtool
 
-objtool_clean:
+objtool_clean objtool_mrproper:
 ifneq ($(wildcard $(objtool_O)),)
-	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) clean
+	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) $(patsubst objtool_%,%,$@)
 endif
 
 tools/: FORCE
@@ -1657,7 +1657,7 @@ PHONY += $(mrproper-dirs) mrproper
 $(mrproper-dirs):
 	$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
 
-mrproper: clean $(mrproper-dirs)
+mrproper: clean objtool_mrproper $(mrproper-dirs)
 	$(call cmd,rmfiles)
 	@find . $(RCS_FIND_IGNORE) \
 		\( -name '*.rmeta' \) \
arch/alpha/kernel/vmlinux.lds.S +1 -0
index 2efa7dfc798a9..2d136c63db161 100644
@@ -71,6 +71,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/arc/kernel/vmlinux.lds.S +1 -0
index 61a1b2b96e1d8..6af63084ff285 100644
@@ -123,6 +123,7 @@ SECTIONS
 	_end = . ;
 
 	STABS_DEBUG
+	MODINFO
 	ELF_DETAILS
 	DISCARDS
 
arch/arm/boot/compressed/vmlinux.lds.S +1 -0
index d411abd4310ea..2d916647df03c 100644
@@ -21,6 +21,7 @@ SECTIONS
     COMMON_DISCARDS
     *(.ARM.exidx*)
     *(.ARM.extab*)
+    *(.modinfo)
     *(.note.*)
     *(.rel.*)
     *(.printk_index)
arch/arm/include/asm/string.h +9 -5
index c35250c4991bc..96fc6cf460ecb 100644
@@ -39,13 +39,17 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n)
 }
 
 #define __HAVE_ARCH_MEMSET64
-extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi);
+extern void *__memset64(uint64_t *, uint32_t first, __kernel_size_t, uint32_t second);
 static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
 {
-	if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
-		return __memset64(p, v, n * 8, v >> 32);
-	else
-		return __memset64(p, v >> 32, n * 8, v);
+	union {
+		uint64_t val;
+		struct {
+			uint32_t first, second;
+		};
+	} word = { .val = v };
+
+	return __memset64(p, word.first, n * 8, word.second);
 }
 
 /*
arch/arm/kernel/vmlinux-xip.lds.S +1 -0
index f2e8d4fac0687..5afb725998ec0 100644
@@ -154,6 +154,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ARM_DETAILS
 
 	ARM_ASSERTS
arch/arm/kernel/vmlinux.lds.S +1 -0
index d592a203f9c6b..c07843c3c53d3 100644
@@ -153,6 +153,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ARM_DETAILS
 
 	ARM_ASSERTS
arch/arm64/include/asm/io.h +20 -6
index 83e03abbb2ca9..8cbd1e96fd50b 100644
@@ -264,19 +264,33 @@ __iowrite64_copy(void __iomem *to, const void *from, size_t count)
 typedef int (*ioremap_prot_hook_t)(phys_addr_t phys_addr, size_t size,
 				   pgprot_t *prot);
 int arm64_ioremap_prot_hook_register(const ioremap_prot_hook_t hook);
+void __iomem *__ioremap_prot(phys_addr_t phys, size_t size, pgprot_t prot);
 
-#define ioremap_prot ioremap_prot
+static inline void __iomem *ioremap_prot(phys_addr_t phys, size_t size,
+					 pgprot_t user_prot)
+{
+	pgprot_t prot;
+	ptdesc_t user_prot_val = pgprot_val(user_prot);
+
+	if (WARN_ON_ONCE(!(user_prot_val & PTE_USER)))
+		return NULL;
 
-#define _PAGE_IOREMAP PROT_DEVICE_nGnRE
+	prot = __pgprot_modify(PAGE_KERNEL, PTE_ATTRINDX_MASK,
+			       user_prot_val & PTE_ATTRINDX_MASK);
+	return __ioremap_prot(phys, size, prot);
+}
+#define ioremap_prot ioremap_prot
 
+#define ioremap(addr, size)	\
+	__ioremap_prot((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
 #define ioremap_wc(addr, size)	\
-	ioremap_prot((addr), (size), __pgprot(PROT_NORMAL_NC))
+	__ioremap_prot((addr), (size), __pgprot(PROT_NORMAL_NC))
 #define ioremap_np(addr, size)	\
-	ioremap_prot((addr), (size), __pgprot(PROT_DEVICE_nGnRnE))
+	__ioremap_prot((addr), (size), __pgprot(PROT_DEVICE_nGnRnE))
 
 
 #define ioremap_encrypted(addr, size)	\
-	ioremap_prot((addr), (size), PAGE_KERNEL)
+	__ioremap_prot((addr), (size), PAGE_KERNEL)
 
 /*
  * io{read,write}{16,32,64}be() macros
@@ -297,7 +311,7 @@ static inline void __iomem *ioremap_cache(phys_addr_t addr, size_t size)
 	if (pfn_is_map_memory(__phys_to_pfn(addr)))
 		return (void __iomem *)__phys_to_virt(addr);
 
-	return ioremap_prot(addr, size, __pgprot(PROT_NORMAL));
+	return __ioremap_prot(addr, size, __pgprot(PROT_NORMAL));
 }
 
 /*
arch/arm64/include/asm/pgtable-prot.h +0 -3
index 161e8660edddc..ea6f5458ae2e1 100644
@@ -164,9 +164,6 @@ static inline bool __pure lpa2_is_enabled(void)
 #define _PAGE_GCS	(_PAGE_DEFAULT | PTE_NG | PTE_UXN | PTE_WRITE | PTE_USER)
 #define _PAGE_GCS_RO	(_PAGE_DEFAULT | PTE_NG | PTE_UXN | PTE_USER)
 
-#define PAGE_GCS	__pgprot(_PAGE_GCS)
-#define PAGE_GCS_RO	__pgprot(_PAGE_GCS_RO)
-
 #define PIE_E0	( \
 	PIRx_ELx_PERM_PREP(pte_pi_index(_PAGE_GCS),           PIE_GCS)  | \
 	PIRx_ELx_PERM_PREP(pte_pi_index(_PAGE_GCS_RO),        PIE_R)   | \
arch/arm64/kernel/acpi.c +1 -1
index af90128cfed56..a9d884fd1d001 100644
@@ -377,7 +377,7 @@ void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
 				prot = __acpi_get_writethrough_mem_attribute();
 		}
 	}
-	return ioremap_prot(phys, size, prot);
+	return __ioremap_prot(phys, size, prot);
 }
 
 /*
arch/arm64/kernel/vmlinux.lds.S +1 -0
index ad6133b89e7a4..2964aad0362e4 100644
@@ -349,6 +349,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	HEAD_SYMBOLS
arch/arm64/kvm/hyp/nvhe/pkvm.c +33 -2
index 12b2acfbcfd14..59a0102218189 100644
@@ -345,6 +345,7 @@ static void pkvm_init_features_from_host(struct pkvm_hyp_vm *hyp_vm, const struc
 	/* No restrictions for non-protected VMs. */
 	if (!kvm_vm_is_protected(kvm)) {
 		hyp_vm->kvm.arch.flags = host_arch_flags;
+		hyp_vm->kvm.arch.flags &= ~BIT_ULL(KVM_ARCH_FLAG_ID_REGS_INITIALIZED);
 
 		bitmap_copy(kvm->arch.vcpu_features,
 			    host_kvm->arch.vcpu_features,
@@ -471,6 +472,35 @@ static int pkvm_vcpu_init_sve(struct pkvm_hyp_vcpu *hyp_vcpu, struct kvm_vcpu *h
 	return ret;
 }
 
+static int vm_copy_id_regs(struct pkvm_hyp_vcpu *hyp_vcpu)
+{
+	struct pkvm_hyp_vm *hyp_vm = pkvm_hyp_vcpu_to_hyp_vm(hyp_vcpu);
+	const struct kvm *host_kvm = hyp_vm->host_kvm;
+	struct kvm *kvm = &hyp_vm->kvm;
+
+	if (!test_bit(KVM_ARCH_FLAG_ID_REGS_INITIALIZED, &host_kvm->arch.flags))
+		return -EINVAL;
+
+	if (test_and_set_bit(KVM_ARCH_FLAG_ID_REGS_INITIALIZED, &kvm->arch.flags))
+		return 0;
+
+	memcpy(kvm->arch.id_regs, host_kvm->arch.id_regs, sizeof(kvm->arch.id_regs));
+
+	return 0;
+}
+
+static int pkvm_vcpu_init_sysregs(struct pkvm_hyp_vcpu *hyp_vcpu)
+{
+	int ret = 0;
+
+	if (pkvm_hyp_vcpu_is_protected(hyp_vcpu))
+		kvm_init_pvm_id_regs(&hyp_vcpu->vcpu);
+	else
+		ret = vm_copy_id_regs(hyp_vcpu);
+
+	return ret;
+}
+
 static int init_pkvm_hyp_vcpu(struct pkvm_hyp_vcpu *hyp_vcpu,
 			      struct pkvm_hyp_vm *hyp_vm,
 			      struct kvm_vcpu *host_vcpu)
@@ -490,8 +520,9 @@ static int init_pkvm_hyp_vcpu(struct pkvm_hyp_vcpu *hyp_vcpu,
 	hyp_vcpu->vcpu.arch.cflags = READ_ONCE(host_vcpu->arch.cflags);
 	hyp_vcpu->vcpu.arch.mp_state.mp_state = KVM_MP_STATE_STOPPED;
 
-	if (pkvm_hyp_vcpu_is_protected(hyp_vcpu))
-		kvm_init_pvm_id_regs(&hyp_vcpu->vcpu);
+	ret = pkvm_vcpu_init_sysregs(hyp_vcpu);
+	if (ret)
+		goto done;
 
 	ret = pkvm_vcpu_init_traps(hyp_vcpu);
 	if (ret)
arch/arm64/kvm/sys_regs.c +3 -0
index 88a57ca36d96c..237e8bd1cf29c 100644
@@ -1816,6 +1816,9 @@ static u64 __kvm_read_sanitised_id_reg(const struct kvm_vcpu *vcpu,
 		       ID_AA64MMFR3_EL1_SCTLRX |
 		       ID_AA64MMFR3_EL1_S1POE |
 		       ID_AA64MMFR3_EL1_S1PIE;
+
+		if (!system_supports_poe())
+			val &= ~ID_AA64MMFR3_EL1_S1POE;
 		break;
 	case SYS_ID_MMFR4_EL1:
 		val &= ~ID_MMFR4_EL1_CCIDX;
arch/arm64/mm/ioremap.c +3 -3
index 10e246f112710..1e4794a2af7d6 100644
@@ -14,8 +14,8 @@ int arm64_ioremap_prot_hook_register(ioremap_prot_hook_t hook)
 	return 0;
 }
 
-void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size,
-			   pgprot_t pgprot)
+void __iomem *__ioremap_prot(phys_addr_t phys_addr, size_t size,
+			     pgprot_t pgprot)
 {
 	unsigned long last_addr = phys_addr + size - 1;
 
@@ -38,7 +38,7 @@ void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size,
 
 	return generic_ioremap_prot(phys_addr, size, pgprot);
 }
-EXPORT_SYMBOL(ioremap_prot);
+EXPORT_SYMBOL(__ioremap_prot);
 
 /*
  * Must be called after early_fixmap_init
arch/arm64/mm/mmap.c +6 -2
index 08ee177432c2f..75f343009b4b1 100644
@@ -34,6 +34,8 @@ static pgprot_t protection_map[16] __ro_after_init = {
 	[VM_SHARED | VM_EXEC | VM_WRITE | VM_READ]	= PAGE_SHARED_EXEC
 };
 
+static ptdesc_t gcs_page_prot __ro_after_init = _PAGE_GCS_RO;
+
 /*
  * You really shouldn't be using read() or write() on /dev/mem.  This might go
  * away in the future.
@@ -73,9 +75,11 @@ static int __init adjust_protection_map(void)
 		protection_map[VM_EXEC | VM_SHARED] = PAGE_EXECONLY;
 	}
 
-	if (lpa2_is_enabled())
+	if (lpa2_is_enabled()) {
 		for (int i = 0; i < ARRAY_SIZE(protection_map); i++)
 			pgprot_val(protection_map[i]) &= ~PTE_SHARED;
+		gcs_page_prot &= ~PTE_SHARED;
+	}
 
 	return 0;
 }
@@ -87,7 +91,7 @@ pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
 
 	/* Short circuit GCS to avoid bloating the table. */
 	if (system_supports_gcs() && (vm_flags & VM_SHADOW_STACK)) {
-		prot = _PAGE_GCS_RO;
+		prot = gcs_page_prot;
 	} else {
 		prot = pgprot_val(protection_map[vm_flags &
 				   (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]);
arch/arm64/net/bpf_jit_comp.c +1 -1
index 1d657bd3ce655..f9fcd699f2e94 100644
@@ -2126,7 +2126,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
 	extable_offset = round_up(prog_size + PLT_TARGET_SIZE, extable_align);
 	image_size = extable_offset + extable_size;
 	ro_header = bpf_jit_binary_pack_alloc(image_size, &ro_image_ptr,
-					      sizeof(u32), &header, &image_ptr,
+					      sizeof(u64), &header, &image_ptr,
 					      jit_fill_hole);
 	if (!ro_header) {
 		prog = orig_prog;
arch/csky/kernel/vmlinux.lds.S +1 -0
index d718961786d24..81943981b3af4 100644
@@ -109,6 +109,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/hexagon/kernel/vmlinux.lds.S +1 -0
index 1150b77fa281c..aae22283b5e00 100644
@@ -62,6 +62,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 	.hexagon.attributes 0 : { *(.hexagon.attributes) }
 
arch/loongarch/kernel/vmlinux.lds.S +1 -0
index 08ea921cdec16..d0e1377a041d6 100644
@@ -147,6 +147,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 #ifdef CONFIG_EFI_STUB
arch/m68k/kernel/vmlinux-nommu.lds +1 -0
index 2624fc18c131f..45d7f4b0177b4 100644
@@ -85,6 +85,7 @@ SECTIONS {
 	_end = .;
 
 	STABS_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	/* Sections to be discarded */
arch/m68k/kernel/vmlinux-std.lds +1 -0
index 1ccdd04ae4624..7326586afe15f 100644
@@ -58,6 +58,7 @@ SECTIONS
   _end = . ;
 
   STABS_DEBUG
+  MODINFO
   ELF_DETAILS
 
   /* Sections to be discarded */
arch/m68k/kernel/vmlinux-sun3.lds +1 -0
index f13ddcc2af5c2..1b19fef201fba 100644
@@ -51,6 +51,7 @@ __init_begin = .;
   _end = . ;
 
   STABS_DEBUG
+  MODINFO
   ELF_DETAILS
 
   /* Sections to be discarded */
arch/mips/kernel/vmlinux.lds.S +1 -0
index 2b708fac8d2c1..579b2cc1995ae 100644
@@ -217,6 +217,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	/* These must appear regardless of  .  */
arch/nios2/kernel/vmlinux.lds.S +1 -0
index 37b9580550646..206f92445bfad 100644
@@ -57,6 +57,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/openrisc/kernel/vmlinux.lds.S +1 -0
index 049bff45f6126..9b29c3211774c 100644
@@ -101,6 +101,7 @@ SECTIONS
 	/* Throw in the debugging sections */
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
         /* Sections to be discarded -- must be last */
arch/parisc/boot/compressed/vmlinux.lds.S +1 -0
index ab7b439908578..87d24cc824b66 100644
@@ -90,6 +90,7 @@ SECTIONS
 	/* Sections to be discarded */
 	DISCARDS
 	/DISCARD/ : {
+		*(.modinfo)
 #ifdef CONFIG_64BIT
 		/* temporary hack until binutils is fixed to not emit these
 		 * for static binaries
arch/parisc/kernel/vmlinux.lds.S +1 -0
index b445e47903cfd..0ca93d6d72354 100644
@@ -165,6 +165,7 @@ SECTIONS
 	_end = . ;
 
 	STABS_DEBUG
+	MODINFO
 	ELF_DETAILS
 	.note 0 : { *(.note) }
 
arch/powerpc/kernel/vmlinux.lds.S +1 -0
index 15850296c0a9c..8fc11d6565bfb 100644
@@ -397,6 +397,7 @@ SECTIONS
 	_end = . ;
 
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/riscv/kernel/vmlinux.lds.S +1 -0
index 61bd5ba6680a7..997f9eb3b22b1 100644
@@ -170,6 +170,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 	.riscv.attributes 0 : { *(.riscv.attributes) }
 
arch/s390/include/asm/idle.h +1 -0
index 09f763b9eb40a..133059d9a949c 100644
@@ -23,5 +23,6 @@ extern struct device_attribute dev_attr_idle_count;
 extern struct device_attribute dev_attr_idle_time_us;
 
 void psw_idle(struct s390_idle_data *data, unsigned long psw_mask);
+void update_timer_idle(void);
 
 #endif /* _S390_IDLE_H */
arch/s390/kernel/idle.c +9 -4
index 39cb8d0ae3480..0f9e53f0a0686 100644
@@ -21,11 +21,10 @@
 
 static DEFINE_PER_CPU(struct s390_idle_data, s390_idle);
 
-void account_idle_time_irq(void)
+void update_timer_idle(void)
 {
 	struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
 	struct lowcore *lc = get_lowcore();
-	unsigned long idle_time;
 	u64 cycles_new[8];
 	int i;
 
@@ -35,13 +34,19 @@ void account_idle_time_irq(void)
 			this_cpu_add(mt_cycles[i], cycles_new[i] - idle->mt_cycles_enter[i]);
 	}
 
-	idle_time = lc->int_clock - idle->clock_idle_enter;
-
 	lc->steal_timer += idle->clock_idle_enter - lc->last_update_clock;
 	lc->last_update_clock = lc->int_clock;
 
 	lc->system_timer += lc->last_update_timer - idle->timer_idle_enter;
 	lc->last_update_timer = lc->sys_enter_timer;
+}
+
+void account_idle_time_irq(void)
+{
+	struct s390_idle_data *idle = this_cpu_ptr(&s390_idle);
+	unsigned long idle_time;
+
+	idle_time = get_lowcore()->int_clock - idle->clock_idle_enter;
 
 	/* Account time spent with enabled wait psw loaded as idle time. */
 	WRITE_ONCE(idle->idle_time, READ_ONCE(idle->idle_time) + idle_time);
arch/s390/kernel/ipl.c +1 -1
index dcdc7e2748486..049c557c452ff 100644
@@ -2377,7 +2377,7 @@ void __init setup_ipl(void)
 	atomic_notifier_chain_register(&panic_notifier_list, &on_panic_nb);
 }
 
-void s390_reset_system(void)
+void __no_stack_protector s390_reset_system(void)
 {
 	/* Disable prefixing */
 	set_prefix(0);
arch/s390/kernel/irq.c +8 -2
index bdf9c7cb5685b..080e9285b3379 100644
@@ -146,6 +146,10 @@ void noinstr do_io_irq(struct pt_regs *regs)
 	struct pt_regs *old_regs = set_irq_regs(regs);
 	bool from_idle;
 
+	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
+	if (from_idle)
+		update_timer_idle();
+
 	irq_enter_rcu();
 
 	if (user_mode(regs)) {
@@ -154,7 +158,6 @@ void noinstr do_io_irq(struct pt_regs *regs)
 			current->thread.last_break = regs->last_break;
 	}
 
-	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
 	if (from_idle)
 		account_idle_time_irq();
 
@@ -182,6 +185,10 @@ void noinstr do_ext_irq(struct pt_regs *regs)
 	struct pt_regs *old_regs = set_irq_regs(regs);
 	bool from_idle;
 
+	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
+	if (from_idle)
+		update_timer_idle();
+
 	irq_enter_rcu();
 
 	if (user_mode(regs)) {
@@ -194,7 +201,6 @@ void noinstr do_ext_irq(struct pt_regs *regs)
 	regs->int_parm = get_lowcore()->ext_params;
 	regs->int_parm_long = get_lowcore()->ext_params2;
 
-	from_idle = test_and_clear_cpu_flag(CIF_ENABLED_WAIT);
 	if (from_idle)
 		account_idle_time_irq();
 
arch/s390/kernel/vmlinux.lds.S +1 -0
index 53bcbb91bb9bd..2b62395e35bfb 100644
@@ -221,6 +221,7 @@ SECTIONS
 	/* Debugging sections.	*/
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	/*
arch/s390/kernel/vtime.c +2 -16
index 234a0ba305108..122d30b104401 100644
@@ -225,10 +225,6 @@ static u64 vtime_delta(void)
 	return timer - lc->last_update_timer;
 }
 
-/*
- * Update process times based on virtual cpu times stored by entry.S
- * to the lowcore fields user_timer, system_timer & steal_clock.
- */
 void vtime_account_kernel(struct task_struct *tsk)
 {
 	struct lowcore *lc = get_lowcore();
@@ -238,27 +234,17 @@ void vtime_account_kernel(struct task_struct *tsk)
 		lc->guest_timer += delta;
 	else
 		lc->system_timer += delta;
-
-	virt_timer_forward(delta);
 }
 EXPORT_SYMBOL_GPL(vtime_account_kernel);
 
 void vtime_account_softirq(struct task_struct *tsk)
 {
-	u64 delta = vtime_delta();
-
-	get_lowcore()->softirq_timer += delta;
-
-	virt_timer_forward(delta);
+	get_lowcore()->softirq_timer += vtime_delta();
 }
 
 void vtime_account_hardirq(struct task_struct *tsk)
 {
-	u64 delta = vtime_delta();
-
-	get_lowcore()->hardirq_timer += delta;
-
-	virt_timer_forward(delta);
+	get_lowcore()->hardirq_timer += vtime_delta();
 }
 
 /*
arch/sh/kernel/vmlinux.lds.S +1 -0
index 008c30289eaa6..169c63fb3c1dc 100644
@@ -89,6 +89,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/sparc/kernel/vmlinux.lds.S +1 -0
index f1b86eb303404..7ea510d9b42f2 100644
@@ -191,6 +191,7 @@ SECTIONS
 
 	STABS_DEBUG
 	DWARF_DEBUG
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/um/kernel/dyn.lds.S +1 -0
index a36b7918a011a..ad3cefeff2acb 100644
@@ -172,6 +172,7 @@ SECTIONS
 
   STABS_DEBUG
   DWARF_DEBUG
+  MODINFO
   ELF_DETAILS
 
   DISCARDS
arch/um/kernel/uml.lds.S +1 -0
index a409d4b66114f..30aa24348d60c 100644
@@ -113,6 +113,7 @@ SECTIONS
 
   STABS_DEBUG
   DWARF_DEBUG
+  MODINFO
   ELF_DETAILS
 
   DISCARDS
arch/x86/boot/compressed/Makefile +1 -0
index 68f9d7a1683b5..b8b2b7bea1d31 100644
@@ -113,6 +113,7 @@ vmlinux-objs-$(CONFIG_EFI_SBAT) += $(obj)/sbat.o
 
 ifdef CONFIG_EFI_SBAT
 $(obj)/sbat.o: $(CONFIG_EFI_SBAT_FILE)
+AFLAGS_sbat.o += -I $(srctree)
 endif
 
 $(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE
arch/x86/boot/compressed/sev.c +5 -4
index c8c1464b3a56e..e468476e9e4a0 100644
@@ -28,17 +28,17 @@
 #include "sev.h"
 
 static struct ghcb boot_ghcb_page __aligned(PAGE_SIZE);
-struct ghcb *boot_ghcb;
+struct ghcb *boot_ghcb __section(".data");
 
 #undef __init
 #define __init
 
 #define __BOOT_COMPRESSED
 
-u8 snp_vmpl;
-u16 ghcb_version;
+u8 snp_vmpl __section(".data");
+u16 ghcb_version __section(".data");
 
-u64 boot_svsm_caa_pa;
+u64 boot_svsm_caa_pa __section(".data");
 
 /* Include code for early handlers */
 #include "../../boot/startup/sev-shared.c"
@@ -188,6 +188,7 @@ bool sev_es_check_ghcb_fault(unsigned long address)
 				 MSR_AMD64_SNP_RESERVED_BIT13 |		\
 				 MSR_AMD64_SNP_RESERVED_BIT15 |		\
 				 MSR_AMD64_SNP_SECURE_AVIC |		\
+				 MSR_AMD64_SNP_RESERVED_BITS19_22 |	\
 				 MSR_AMD64_SNP_RESERVED_MASK)
 
 #ifdef CONFIG_AMD_SECURE_AVIC
arch/x86/boot/compressed/vmlinux.lds.S +1 -1
index 587ce3e7c5048..e0b152715d9c6 100644
@@ -88,7 +88,7 @@ SECTIONS
 	/DISCARD/ : {
 		*(.dynamic) *(.dynsym) *(.dynstr) *(.dynbss)
 		*(.hash) *(.gnu.hash)
-		*(.note.*)
+		*(.note.*) *(.modinfo)
 	}
 
 	.got.plt (INFO) : {
arch/x86/boot/startup/sev-shared.c +1 -1
index a0fa8bb2b9458..d9ac3a929d335 100644
@@ -31,7 +31,7 @@ static u32 cpuid_std_range_max __ro_after_init;
 static u32 cpuid_hyp_range_max __ro_after_init;
 static u32 cpuid_ext_range_max __ro_after_init;
 
-bool sev_snp_needs_sfw;
+bool sev_snp_needs_sfw __section(".data");
 
 void __noreturn
 sev_es_terminate(unsigned int set, unsigned int reason)
arch/x86/coco/sev/core.c +1 -0
index c8ddb9febe3d9..d20e9cc065a87 100644
@@ -122,6 +122,7 @@ static const char * const sev_status_feat_names[] = {
 	[MSR_AMD64_SNP_VMSA_REG_PROT_BIT]	= "VMSARegProt",
 	[MSR_AMD64_SNP_SMT_PROT_BIT]		= "SMTProt",
 	[MSR_AMD64_SNP_SECURE_AVIC_BIT]		= "SecureAVIC",
+	[MSR_AMD64_SNP_IBPB_ON_ENTRY_BIT]	= "IBPBOnEntry",
 };
 
 /*
arch/x86/entry/entry_fred.c +2 -3
index 94e626cc6a074..4fc5b176d3edb 100644
@@ -159,8 +159,6 @@ void __init fred_complete_exception_setup(void)
 static noinstr void fred_extint(struct pt_regs *regs)
 {
 	unsigned int vector = regs->fred_ss.vector;
-	unsigned int index = array_index_nospec(vector - FIRST_SYSTEM_VECTOR,
-						NR_SYSTEM_VECTORS);
 
 	if (WARN_ON_ONCE(vector < FIRST_EXTERNAL_VECTOR))
 		return;
@@ -169,7 +167,8 @@ static noinstr void fred_extint(struct pt_regs *regs)
 		irqentry_state_t state = irqentry_enter(regs);
 
 		instrumentation_begin();
-		sysvec_table[index](regs);
+		sysvec_table[array_index_nospec(vector - FIRST_SYSTEM_VECTOR,
+						NR_SYSTEM_VECTORS)](regs);
 		instrumentation_end();
 		irqentry_exit(regs, state);
 	} else {
arch/x86/events/intel/uncore_snbep.c +27 -1
index e1f370b8d065f..a338ee01bb242 100644
@@ -6610,6 +6610,32 @@ static struct intel_uncore_type gnr_uncore_ubox = {
 	.attr_update		= uncore_alias_groups,
 };
 
+static struct uncore_event_desc gnr_uncore_imc_events[] = {
+	INTEL_UNCORE_EVENT_DESC(clockticks,      "event=0x01,umask=0x00"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch0,  "event=0x05,umask=0xcf"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch0.scale, "6.103515625e-5"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch0.unit, "MiB"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch1,  "event=0x06,umask=0xcf"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch1.scale, "6.103515625e-5"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_read_sch1.unit, "MiB"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch0, "event=0x05,umask=0xf0"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch0.scale, "6.103515625e-5"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch0.unit, "MiB"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch1, "event=0x06,umask=0xf0"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch1.scale, "6.103515625e-5"),
+	INTEL_UNCORE_EVENT_DESC(cas_count_write_sch1.unit, "MiB"),
+	{ /* end: all zeroes */ },
+};
+
+static struct intel_uncore_type gnr_uncore_imc = {
+	SPR_UNCORE_MMIO_COMMON_FORMAT(),
+	.name			= "imc",
+	.fixed_ctr_bits		= 48,
+	.fixed_ctr		= SNR_IMC_MMIO_PMON_FIXED_CTR,
+	.fixed_ctl		= SNR_IMC_MMIO_PMON_FIXED_CTL,
+	.event_descs		= gnr_uncore_imc_events,
+};
+
 static struct intel_uncore_type gnr_uncore_pciex8 = {
 	SPR_UNCORE_PCI_COMMON_FORMAT(),
 	.name			= "pciex8",
@@ -6657,7 +6683,7 @@ static struct intel_uncore_type *gnr_uncores[UNCORE_GNR_NUM_UNCORE_TYPES] = {
 	NULL,
 	&spr_uncore_pcu,
 	&gnr_uncore_ubox,
-	&spr_uncore_imc,
+	&gnr_uncore_imc,
 	NULL,
 	&gnr_uncore_upi,
 	NULL,
arch/x86/include/asm/cfi.h +8 -4
index c40b9ebc1fb40..ab3fbbd947ed9 100644
@@ -111,6 +111,12 @@ extern bhi_thunk __bhi_args_end[];
 
 struct pt_regs;
 
+#ifdef CONFIG_CALL_PADDING
+#define CFI_OFFSET (CONFIG_FUNCTION_PADDING_CFI+5)
+#else
+#define CFI_OFFSET 5
+#endif
+
 #ifdef CONFIG_CFI
 enum bug_trap_type handle_cfi_failure(struct pt_regs *regs);
 #define __bpfcall
@@ -119,11 +125,9 @@ static inline int cfi_get_offset(void)
 {
 	switch (cfi_mode) {
 	case CFI_FINEIBT:
-		return 16;
+		return /* fineibt_prefix_size */ 16;
 	case CFI_KCFI:
-		if (IS_ENABLED(CONFIG_CALL_PADDING))
-			return 16;
-		return 5;
+		return CFI_OFFSET;
 	default:
 		return 0;
 	}
arch/x86/include/asm/efi.h +1 -1
index f227a70ac91f0..51b4cdbea061a 100644
@@ -138,7 +138,7 @@ extern void __init efi_apply_memmap_quirks(void);
 extern int __init efi_reuse_config(u64 tables, int nr_tables);
 extern void efi_delete_dummy_variable(void);
 extern void efi_crash_gracefully_on_page_fault(unsigned long phys_addr);
-extern void efi_free_boot_services(void);
+extern void efi_unmap_boot_services(void);
 
 void arch_efi_call_virt_setup(void);
 void arch_efi_call_virt_teardown(void);
arch/x86/include/asm/kvm_host.h +7 -0
index 5a3bfa293e8b1..c27b3e5f60c23 100644
@@ -1226,6 +1226,12 @@ enum kvm_irqchip_mode {
 	KVM_IRQCHIP_SPLIT,        /* created with KVM_CAP_SPLIT_IRQCHIP */
 };
 
+enum kvm_suppress_eoi_broadcast_mode {
+	KVM_SUPPRESS_EOI_BROADCAST_QUIRKED, /* Legacy behavior */
+	KVM_SUPPRESS_EOI_BROADCAST_ENABLED, /* Enable Suppress EOI broadcast */
+	KVM_SUPPRESS_EOI_BROADCAST_DISABLED /* Disable Suppress EOI broadcast */
+};
+
 struct kvm_x86_msr_filter {
 	u8 count;
 	bool default_allow:1;
@@ -1475,6 +1481,7 @@ struct kvm_arch {
 
 	bool x2apic_format;
 	bool x2apic_broadcast_quirk_disabled;
+	enum kvm_suppress_eoi_broadcast_mode suppress_eoi_broadcast_mode;
 
 	bool has_mapped_host_mmio;
 	bool guest_can_read_msr_platform_info;
arch/x86/include/asm/linkage.h +2 -2
index 9d38ae744a2e4..a7294656ad908 100644
@@ -68,7 +68,7 @@
  * Depending on -fpatchable-function-entry=N,N usage (CONFIG_CALL_PADDING) the
  * CFI symbol layout changes.
  *
- * Without CALL_THUNKS:
+ * Without CALL_PADDING:
  *
  * 	.align	FUNCTION_ALIGNMENT
  * __cfi_##name:
@@ -77,7 +77,7 @@
  * 	.long	__kcfi_typeid_##name
  * name:
  *
- * With CALL_THUNKS:
+ * With CALL_PADDING:
  *
  * 	.align FUNCTION_ALIGNMENT
  * __cfi_##name:
arch/x86/include/asm/msr-index.h +4 -1
index 3d0a0950d20a1..d1b11b4c40d28 100644
@@ -735,7 +735,10 @@
 #define MSR_AMD64_SNP_SMT_PROT		BIT_ULL(MSR_AMD64_SNP_SMT_PROT_BIT)
 #define MSR_AMD64_SNP_SECURE_AVIC_BIT	18
 #define MSR_AMD64_SNP_SECURE_AVIC	BIT_ULL(MSR_AMD64_SNP_SECURE_AVIC_BIT)
-#define MSR_AMD64_SNP_RESV_BIT		19
+#define MSR_AMD64_SNP_RESERVED_BITS19_22 GENMASK_ULL(22, 19)
+#define MSR_AMD64_SNP_IBPB_ON_ENTRY_BIT	23
+#define MSR_AMD64_SNP_IBPB_ON_ENTRY	BIT_ULL(MSR_AMD64_SNP_IBPB_ON_ENTRY_BIT)
+#define MSR_AMD64_SNP_RESV_BIT		24
 #define MSR_AMD64_SNP_RESERVED_MASK	GENMASK_ULL(63, MSR_AMD64_SNP_RESV_BIT)
 #define MSR_AMD64_SAVIC_CONTROL		0xc0010138
 #define MSR_AMD64_SAVIC_EN_BIT		0
arch/x86/include/asm/numa.h +6 -0
index 53ba39ce010cd..a9063f332fa6e 100644
@@ -22,6 +22,7 @@ extern int numa_off;
  */
 extern s16 __apicid_to_node[MAX_LOCAL_APIC];
 extern nodemask_t numa_nodes_parsed __initdata;
+extern nodemask_t numa_phys_nodes_parsed __initdata;
 
 static inline void set_apicid_to_node(int apicid, s16 node)
 {
@@ -48,6 +49,7 @@ extern void __init init_cpu_to_node(void);
 extern void numa_add_cpu(unsigned int cpu);
 extern void numa_remove_cpu(unsigned int cpu);
 extern void init_gi_nodes(void);
+extern int num_phys_nodes(void);
 #else	/* CONFIG_NUMA */
 static inline void numa_set_node(int cpu, int node)	{ }
 static inline void numa_clear_node(int cpu)		{ }
@@ -55,6 +57,10 @@ static inline void init_cpu_to_node(void)		{ }
 static inline void numa_add_cpu(unsigned int cpu)	{ }
 static inline void numa_remove_cpu(unsigned int cpu)	{ }
 static inline void init_gi_nodes(void)			{ }
+static inline int num_phys_nodes(void)
+{
+	return 1;
+}
 #endif	/* CONFIG_NUMA */
 
 #ifdef CONFIG_DEBUG_PER_CPU_MAPS
arch/x86/include/asm/topology.h +6 -0
index 1fadf0cf520c5..0ba9bdb998717 100644
@@ -155,6 +155,7 @@ extern unsigned int __max_logical_packages;
 extern unsigned int __max_threads_per_core;
 extern unsigned int __num_threads_per_package;
 extern unsigned int __num_cores_per_package;
+extern unsigned int __num_nodes_per_package;
 
 const char *get_topology_cpu_type_name(struct cpuinfo_x86 *c);
 enum x86_topology_cpu_type get_topology_cpu_type(struct cpuinfo_x86 *c);
@@ -179,6 +180,11 @@ static inline unsigned int topology_num_threads_per_package(void)
 	return __num_threads_per_package;
 }
 
+static inline unsigned int topology_num_nodes_per_package(void)
+{
+	return __num_nodes_per_package;
+}
+
 #ifdef CONFIG_X86_LOCAL_APIC
 int topology_get_logical_id(u32 apicid, enum x86_topology_domains at_level);
 #else
arch/x86/include/asm/traps.h +2 -0
index 869b880618018..3f24cc472ce9b 100644
@@ -25,6 +25,8 @@ extern int ibt_selftest_noendbr(void);
 void handle_invalid_op(struct pt_regs *regs);
 #endif
 
+noinstr bool handle_bug(struct pt_regs *regs);
+
 static inline int get_si_code(unsigned long condition)
 {
 	if (condition & DR_STEP)
arch/x86/include/uapi/asm/kvm.h +4 -2
index 7ceff65836525..1208932e5cc3c 100644
@@ -914,8 +914,10 @@ struct kvm_sev_snp_launch_finish {
 	__u64 pad1[4];
 };
 
-#define KVM_X2APIC_API_USE_32BIT_IDS            (1ULL << 0)
-#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK  (1ULL << 1)
+#define KVM_X2APIC_API_USE_32BIT_IDS			_BITULL(0)
+#define KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK		_BITULL(1)
+#define KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST	_BITULL(2)
+#define KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST	_BITULL(3)
 
 struct kvm_hyperv_eventfd {
 	__u32 conn_id;
arch/x86/kernel/alternative.c +22 -7
index 28518371d8bf3..a3f81cde2bb59 100644
@@ -1147,7 +1147,7 @@ void __init_or_module noinline apply_seal_endbr(s32 *start, s32 *end)
 
 		poison_endbr(addr);
 		if (IS_ENABLED(CONFIG_FINEIBT))
-			poison_cfi(addr - 16);
+			poison_cfi(addr - CFI_OFFSET);
 	}
 }
 
@@ -1354,6 +1354,8 @@ extern u8 fineibt_preamble_end[];
 #define fineibt_preamble_ud   0x13
 #define fineibt_preamble_hash 5
 
+#define fineibt_prefix_size (fineibt_preamble_size - ENDBR_INSN_SIZE)
+
 /*
  * <fineibt_caller_start>:
  *  0:   b8 78 56 34 12          mov    $0x12345678, %eax
@@ -1599,7 +1601,7 @@ static int cfi_rewrite_preamble(s32 *start, s32 *end)
 		 * have determined there are no indirect calls to it and we
 		 * don't need no CFI either.
 		 */
-		if (!is_endbr(addr + 16))
+		if (!is_endbr(addr + CFI_OFFSET))
 			continue;
 
 		hash = decode_preamble_hash(addr, &arity);
@@ -1607,6 +1609,15 @@ static int cfi_rewrite_preamble(s32 *start, s32 *end)
 			 addr, addr, 5, addr))
 			return -EINVAL;
 
+		/*
+		 * FineIBT relies on being at func-16, so if the preamble is
+		 * actually larger than that, place it the tail end.
+		 *
+		 * NOTE: this is possible with things like DEBUG_CALL_THUNKS
+		 * and DEBUG_FORCE_FUNCTION_ALIGN_64B.
+		 */
+		addr += CFI_OFFSET - fineibt_prefix_size;
+
 		text_poke_early(addr, fineibt_preamble_start, fineibt_preamble_size);
 		WARN_ON(*(u32 *)(addr + fineibt_preamble_hash) != 0x12345678);
 		text_poke_early(addr + fineibt_preamble_hash, &hash, 4);
@@ -1629,10 +1640,10 @@ static void cfi_rewrite_endbr(s32 *start, s32 *end)
 	for (s = start; s < end; s++) {
 		void *addr = (void *)s + *s;
 
-		if (!exact_endbr(addr + 16))
+		if (!exact_endbr(addr + CFI_OFFSET))
 			continue;
 
-		poison_endbr(addr + 16);
+		poison_endbr(addr + CFI_OFFSET);
 	}
 }
 
@@ -1737,7 +1748,8 @@ static void __apply_fineibt(s32 *start_retpoline, s32 *end_retpoline,
 	if (FINEIBT_WARN(fineibt_preamble_size, 20)			||
 	    FINEIBT_WARN(fineibt_preamble_bhi + fineibt_bhi1_size, 20)	||
 	    FINEIBT_WARN(fineibt_caller_size, 14)			||
-	    FINEIBT_WARN(fineibt_paranoid_size, 20))
+	    FINEIBT_WARN(fineibt_paranoid_size, 20)			||
+	    WARN_ON_ONCE(CFI_OFFSET < fineibt_prefix_size))
 		return;
 
 	if (cfi_mode == CFI_AUTO) {
@@ -1850,6 +1862,11 @@ static void poison_cfi(void *addr)
 	 */
 	switch (cfi_mode) {
 	case CFI_FINEIBT:
+		/*
+		 * FineIBT preamble is at func-16.
+		 */
+		addr += CFI_OFFSET - fineibt_prefix_size;
+
 		/*
 		 * FineIBT prefix should start with an ENDBR.
 		 */
@@ -1888,8 +1905,6 @@ static void poison_cfi(void *addr)
 	}
 }
 
-#define fineibt_prefix_size (fineibt_preamble_size - ENDBR_INSN_SIZE)
-
 /*
  * When regs->ip points to a 0xD6 byte in the FineIBT preamble,
  * return true and fill out target and type.
arch/x86/kernel/cpu/common.c +3 -0
index e7ab22fce3b57..5edafdc9680f1 100644
@@ -95,6 +95,9 @@ EXPORT_SYMBOL(__max_dies_per_package);
 unsigned int __max_logical_packages __ro_after_init = 1;
 EXPORT_SYMBOL(__max_logical_packages);
 
+unsigned int __num_nodes_per_package __ro_after_init = 1;
+EXPORT_SYMBOL(__num_nodes_per_package);
+
 unsigned int __num_cores_per_package __ro_after_init = 1;
 EXPORT_SYMBOL(__num_cores_per_package);
 
arch/x86/kernel/cpu/topology.c +11 -2
index 23190a786d310..eafcb1fc185ad 100644
@@ -31,6 +31,7 @@
 #include <asm/mpspec.h>
 #include <asm/msr.h>
 #include <asm/smp.h>
+#include <asm/numa.h>
 
 #include "cpu.h"
 
@@ -492,11 +493,19 @@ void __init topology_init_possible_cpus(void)
 	set_nr_cpu_ids(allowed);
 
 	cnta = domain_weight(TOPO_PKG_DOMAIN);
-	cntb = domain_weight(TOPO_DIE_DOMAIN);
 	__max_logical_packages = cnta;
+
+	pr_info("Max. logical packages: %3u\n", __max_logical_packages);
+
+	cntb = num_phys_nodes();
+	__num_nodes_per_package = DIV_ROUND_UP(cntb, cnta);
+
+	pr_info("Max. logical nodes:    %3u\n", cntb);
+	pr_info("Num. nodes per package:%3u\n", __num_nodes_per_package);
+
+	cntb = domain_weight(TOPO_DIE_DOMAIN);
 	__max_dies_per_package = 1U << (get_count_order(cntb) - get_count_order(cnta));
 
-	pr_info("Max. logical packages: %3u\n", cnta);
 	pr_info("Max. logical dies:     %3u\n", cntb);
 	pr_info("Max. dies per package: %3u\n", __max_dies_per_package);
 
arch/x86/kernel/smpboot.c +145 -56

239 lines not on this page · raw message

arch/x86/kernel/traps.c +1 -1
index bcf1dedc1d008..aca1eca5daffa 100644
@@ -397,7 +397,7 @@ static inline void handle_invalid_op(struct pt_regs *regs)
 		      ILL_ILLOPN, error_get_trap_addr(regs));
 }
 
-static noinstr bool handle_bug(struct pt_regs *regs)
+noinstr bool handle_bug(struct pt_regs *regs)
 {
 	unsigned long addr = regs->ip;
 	bool handled = false;
arch/x86/kernel/vmlinux.lds.S +1 -0
index d7af4a64c211b..4ed82b1fe173b 100644
@@ -424,6 +424,7 @@ SECTIONS
 	.llvm_bb_addr_map : { *(.llvm_bb_addr_map) }
 #endif
 
+	MODINFO
 	ELF_DETAILS
 
 	DISCARDS
arch/x86/kvm/ioapic.c +1 -1
index 2c2783296aedb..a26fa4222f292 100644
@@ -561,7 +561,7 @@ static void kvm_ioapic_update_eoi_one(struct kvm_vcpu *vcpu,
 	spin_lock(&ioapic->lock);
 
 	if (trigger_mode != IOAPIC_LEVEL_TRIG ||
-	    kvm_lapic_get_reg(apic, APIC_SPIV) & APIC_SPIV_DIRECTED_EOI)
+	    kvm_lapic_suppress_eoi_broadcast(apic))
 		return;
 
 	ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG);
arch/x86/kvm/lapic.c +68 -8

95 lines not on this page · raw message

arch/x86/kvm/lapic.h +2 -0
index 282b9b7da98cd..e5f5a222eced0 100644
@@ -231,6 +231,8 @@ static inline int kvm_lapic_latched_init(struct kvm_vcpu *vcpu)
 
 bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
 
+bool kvm_lapic_suppress_eoi_broadcast(struct kvm_lapic *apic);
+
 void kvm_wait_lapic_expire(struct kvm_vcpu *vcpu);
 
 void kvm_bitmap_or_dest_vcpus(struct kvm *kvm, struct kvm_lapic_irq *irq,
arch/x86/kvm/x86.c +19 -2
index 8b12bf0774c77..0d731ce4c4e16 100644
@@ -121,8 +121,10 @@ static u64 __read_mostly efer_reserved_bits = ~((u64)EFER_SCE);
 
 #define KVM_CAP_PMU_VALID_MASK KVM_PMU_CAP_DISABLE
 
-#define KVM_X2APIC_API_VALID_FLAGS (KVM_X2APIC_API_USE_32BIT_IDS | \
-                                    KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
+#define KVM_X2APIC_API_VALID_FLAGS (KVM_X2APIC_API_USE_32BIT_IDS		| \
+				    KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK	| \
+				    KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST	| \
+				    KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST)
 
 static void update_cr8_intercept(struct kvm_vcpu *vcpu);
 static void process_nmi(struct kvm_vcpu *vcpu);
@@ -4931,6 +4933,8 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 		break;
 	case KVM_CAP_X2APIC_API:
 		r = KVM_X2APIC_API_VALID_FLAGS;
+		if (kvm && !irqchip_split(kvm))
+			r &= ~KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST;
 		break;
 	case KVM_CAP_NESTED_STATE:
 		r = kvm_x86_ops.nested_ops->get_state ?
@@ -6748,11 +6752,24 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
 		if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS)
 			break;
 
+		if ((cap->args[0] & KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST) &&
+		    (cap->args[0] & KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST))
+			break;
+
+		if ((cap->args[0] & KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST) &&
+		    !irqchip_split(kvm))
+			break;
+
 		if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS)
 			kvm->arch.x2apic_format = true;
 		if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
 			kvm->arch.x2apic_broadcast_quirk_disabled = true;
 
+		if (cap->args[0] & KVM_X2APIC_ENABLE_SUPPRESS_EOI_BROADCAST)
+			kvm->arch.suppress_eoi_broadcast_mode = KVM_SUPPRESS_EOI_BROADCAST_ENABLED;
+		if (cap->args[0] & KVM_X2APIC_DISABLE_SUPPRESS_EOI_BROADCAST)
+			kvm->arch.suppress_eoi_broadcast_mode = KVM_SUPPRESS_EOI_BROADCAST_DISABLED;
+
 		r = 0;
 		break;
 	case KVM_CAP_X86_DISABLE_EXITS:
arch/x86/mm/extable.c +2 -5
index 2fdc1f1f5adb9..6b9ff1c6cafa2 100644
@@ -411,14 +411,11 @@ void __init early_fixup_exception(struct pt_regs *regs, int trapnr)
 		return;
 
 	if (trapnr == X86_TRAP_UD) {
-		if (report_bug(regs->ip, regs) == BUG_TRAP_TYPE_WARN) {
-			/* Skip the ud2. */
-			regs->ip += LEN_UD2;
+		if (handle_bug(regs))
 			return;
-		}
 
 		/*
-		 * If this was a BUG and report_bug returns or if this
+		 * If this was a BUG and handle_bug returns or if this
 		 * was just a normal #UD, we want to continue onward and
 		 * crash.
 		 */
arch/x86/mm/numa.c +8 -0
index 7a97327140df8..99d0a9332c145 100644
@@ -48,6 +48,8 @@ s16 __apicid_to_node[MAX_LOCAL_APIC] = {
 	[0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE
 };
 
+nodemask_t numa_phys_nodes_parsed __initdata;
+
 int numa_cpu_node(int cpu)
 {
 	u32 apicid = early_per_cpu(x86_cpu_to_apicid, cpu);
@@ -57,6 +59,11 @@ int numa_cpu_node(int cpu)
 	return NUMA_NO_NODE;
 }
 
+int __init num_phys_nodes(void)
+{
+	return bitmap_weight(numa_phys_nodes_parsed.bits, MAX_NUMNODES);
+}
+
 cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
 EXPORT_SYMBOL(node_to_cpumask_map);
 
@@ -210,6 +217,7 @@ static int __init dummy_numa_init(void)
 	       0LLU, PFN_PHYS(max_pfn) - 1);
 
 	node_set(0, numa_nodes_parsed);
+	node_set(0, numa_phys_nodes_parsed);
 	numa_add_memblk(0, 0, PFN_PHYS(max_pfn));
 
 	return 0;
arch/x86/mm/srat.c +2 -0
index 6f8e0f21c7103..44ca666517561 100644
@@ -57,6 +57,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
 	}
 	set_apicid_to_node(apic_id, node);
 	node_set(node, numa_nodes_parsed);
+	node_set(node, numa_phys_nodes_parsed);
 	pr_debug("SRAT: PXM %u -> APIC 0x%04x -> Node %u\n", pxm, apic_id, node);
 }
 
@@ -97,6 +98,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
 
 	set_apicid_to_node(apic_id, node);
 	node_set(node, numa_nodes_parsed);
+	node_set(node, numa_phys_nodes_parsed);
 	pr_debug("SRAT: PXM %u -> APIC 0x%02x -> Node %u\n", pxm, apic_id, node);
 }
 
arch/x86/net/bpf_jit_comp.c +2 -11
index b0bac2a66eff3..ea76949ddda5e 100644
@@ -438,17 +438,8 @@ static void emit_kcfi(u8 **pprog, u32 hash)
 
 	EMIT1_off32(0xb8, hash);			/* movl $hash, %eax	*/
 #ifdef CONFIG_CALL_PADDING
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
-	EMIT1(0x90);
+	for (int i = 0; i < CONFIG_FUNCTION_PADDING_CFI; i++)
+		EMIT1(0x90);
 #endif
 	EMIT_ENDBR();
 
arch/x86/platform/efi/efi.c +1 -1
index 463b784499a8f..791c52c8393f4 100644
@@ -837,7 +837,7 @@ static void __init __efi_enter_virtual_mode(void)
 	}
 
 	efi_check_for_embedded_firmwares();
-	efi_free_boot_services();
+	efi_unmap_boot_services();
 
 	if (!efi_is_mixed())
 		efi_native_runtime_setup();
arch/x86/platform/efi/quirks.c +52 -3

89 lines not on this page · raw message

block/blk-sysfs.c +7 -1
index e0a70d26972b3..af12526d866a9 100644
@@ -78,8 +78,14 @@ queue_requests_store(struct gendisk *disk, const char *page, size_t count)
 	/*
 	 * Serialize updating nr_requests with concurrent queue_requests_store()
 	 * and switching elevator.
+	 *
+	 * Use trylock to avoid circular lock dependency with kernfs active
+	 * reference during concurrent disk deletion:
+	 *   update_nr_hwq_lock -> kn->active (via del_gendisk -> kobject_del)
+	 *   kn->active -> update_nr_hwq_lock (via this sysfs write path)
 	 */
-	down_write(&set->update_nr_hwq_lock);
+	if (!down_write_trylock(&set->update_nr_hwq_lock))
+		return -EBUSY;
 
 	if (nr == q->nr_requests)
 		goto unlock;
block/elevator.c +11 -1
index a2f8b2251dc6e..7a97998cd8bd7 100644
@@ -806,7 +806,16 @@ ssize_t elv_iosched_store(struct gendisk *disk, const char *buf,
 	elv_iosched_load_module(ctx.name);
 	ctx.type = elevator_find_get(ctx.name);
 
-	down_read(&set->update_nr_hwq_lock);
+	/*
+	 * Use trylock to avoid circular lock dependency with kernfs active
+	 * reference during concurrent disk deletion:
+	 *   update_nr_hwq_lock -> kn->active (via del_gendisk -> kobject_del)
+	 *   kn->active -> update_nr_hwq_lock (via this sysfs write path)
+	 */
+	if (!down_read_trylock(&set->update_nr_hwq_lock)) {
+		ret = -EBUSY;
+		goto out;
+	}
 	if (!blk_queue_no_elv_switch(q)) {
 		ret = elevator_change(q, &ctx);
 		if (!ret)
@@ -816,6 +825,7 @@ ssize_t elv_iosched_store(struct gendisk *disk, const char *buf,
 	}
 	up_read(&set->update_nr_hwq_lock);
 
+out:
 	if (ctx.type)
 		elevator_put(ctx.type);
 	return ret;
drivers/accel/amdxdna/aie2_ctx.c +27 -28

147 lines not on this page · raw message

drivers/accel/amdxdna/aie2_message.c +26 -10
index 2c5b27d90563e..f0fb98131068c 100644
@@ -40,11 +40,8 @@ static int aie2_send_mgmt_msg_wait(struct amdxdna_dev_hdl *ndev,
 		return -ENODEV;
 
 	ret = xdna_send_msg_wait(xdna, ndev->mgmt_chann, msg);
-	if (ret == -ETIME) {
-		xdna_mailbox_stop_channel(ndev->mgmt_chann);
-		xdna_mailbox_destroy_channel(ndev->mgmt_chann);
-		ndev->mgmt_chann = NULL;
-	}
+	if (ret == -ETIME)
+		aie2_destroy_mgmt_chann(ndev);
 
 	if (!ret && *hdl->status != AIE2_STATUS_SUCCESS) {
 		XDNA_ERR(xdna, "command opcode 0x%x failed, status 0x%x",
@@ -193,8 +190,10 @@ static int aie2_destroy_context_req(struct amdxdna_dev_hdl *ndev, u32 id)
 
 	req.context_id = id;
 	ret = aie2_send_mgmt_msg_wait(ndev, &msg);
-	if (ret)
+	if (ret && ret != -ENODEV)
 		XDNA_WARN(xdna, "Destroy context failed, ret %d", ret);
+	else if (ret == -ENODEV)
+		XDNA_DBG(xdna, "Destroy context: device already stopped");
 
 	return ret;
 }
@@ -274,6 +273,9 @@ int aie2_destroy_context(struct amdxdna_dev_hdl *ndev, struct amdxdna_hwctx *hwc
 	struct amdxdna_dev *xdna = ndev->xdna;
 	int ret;
 
+	if (!hwctx->priv->mbox_chann)
+		return 0;
+
 	xdna_mailbox_stop_channel(hwctx->priv->mbox_chann);
 	ret = aie2_destroy_context_req(ndev, hwctx->fw_ctx_id);
 	xdna_mailbox_destroy_channel(hwctx->priv->mbox_chann);
@@ -651,11 +653,11 @@ aie2_cmdlist_fill_npu_cf(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t *siz
 	u32 cmd_len;
 	void *cmd;
 
-	memset(npu_slot, 0, sizeof(*npu_slot));
 	cmd = amdxdna_cmd_get_payload(cmd_bo, &cmd_len);
 	if (*size < sizeof(*npu_slot) + cmd_len)
 		return -EINVAL;
 
+	memset(npu_slot, 0, sizeof(*npu_slot));
 	npu_slot->cu_idx = amdxdna_cmd_get_cu_idx(cmd_bo);
 	if (npu_slot->cu_idx == INVALID_CU_IDX)
 		return -EINVAL;
@@ -676,7 +678,6 @@ aie2_cmdlist_fill_npu_dpu(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t *si
 	u32 cmd_len;
 	u32 arg_sz;
 
-	memset(npu_slot, 0, sizeof(*npu_slot));
 	sn = amdxdna_cmd_get_payload(cmd_bo, &cmd_len);
 	arg_sz = cmd_len - sizeof(*sn);
 	if (cmd_len < sizeof(*sn) || arg_sz > MAX_NPU_ARGS_SIZE)
@@ -685,6 +686,7 @@ aie2_cmdlist_fill_npu_dpu(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t *si
 	if (*size < sizeof(*npu_slot) + arg_sz)
 		return -EINVAL;
 
+	memset(npu_slot, 0, sizeof(*npu_slot));
 	npu_slot->cu_idx = amdxdna_cmd_get_cu_idx(cmd_bo);
 	if (npu_slot->cu_idx == INVALID_CU_IDX)
 		return -EINVAL;
@@ -708,7 +710,6 @@ aie2_cmdlist_fill_npu_preempt(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t
 	u32 cmd_len;
 	u32 arg_sz;
 
-	memset(npu_slot, 0, sizeof(*npu_slot));
 	pd = amdxdna_cmd_get_payload(cmd_bo, &cmd_len);
 	arg_sz = cmd_len - sizeof(*pd);
 	if (cmd_len < sizeof(*pd) || arg_sz > MAX_NPU_ARGS_SIZE)
@@ -717,6 +718,7 @@ aie2_cmdlist_fill_npu_preempt(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t
 	if (*size < sizeof(*npu_slot) + arg_sz)
 		return -EINVAL;
 
+	memset(npu_slot, 0, sizeof(*npu_slot));
 	npu_slot->cu_idx = amdxdna_cmd_get_cu_idx(cmd_bo);
 	if (npu_slot->cu_idx == INVALID_CU_IDX)
 		return -EINVAL;
@@ -744,7 +746,6 @@ aie2_cmdlist_fill_npu_elf(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t *si
 	u32 cmd_len;
 	u32 arg_sz;
 
-	memset(npu_slot, 0, sizeof(*npu_slot));
 	pd = amdxdna_cmd_get_payload(cmd_bo, &cmd_len);
 	arg_sz = cmd_len - sizeof(*pd);
 	if (cmd_len < sizeof(*pd) || arg_sz > MAX_NPU_ARGS_SIZE)
@@ -753,6 +754,7 @@ aie2_cmdlist_fill_npu_elf(struct amdxdna_gem_obj *cmd_bo, void *slot, size_t *si
 	if (*size < sizeof(*npu_slot) + arg_sz)
 		return -EINVAL;
 
+	memset(npu_slot, 0, sizeof(*npu_slot));
 	npu_slot->type = EXEC_NPU_TYPE_ELF;
 	npu_slot->inst_buf_addr = pd->inst_buf;
 	npu_slot->save_buf_addr = pd->save_buf;
@@ -866,6 +868,20 @@ void aie2_msg_init(struct amdxdna_dev_hdl *ndev)
 		ndev->exec_msg_ops = &legacy_exec_message_ops;
 }
 
+void aie2_destroy_mgmt_chann(struct amdxdna_dev_hdl *ndev)
+{
+	struct amdxdna_dev *xdna = ndev->xdna;
+
+	drm_WARN_ON(&xdna->ddev, !mutex_is_locked(&xdna->dev_lock));
+
+	if (!ndev->mgmt_chann)
+		return;
+
+	xdna_mailbox_stop_channel(ndev->mgmt_chann);
+	xdna_mailbox_destroy_channel(ndev->mgmt_chann);
+	ndev->mgmt_chann = NULL;
+}
+
 static inline struct amdxdna_gem_obj *
 aie2_cmdlist_get_cmd_buf(struct amdxdna_sched_job *job)
 {
drivers/accel/amdxdna/aie2_pci.c +10 -13
index ec1c3ad57d490..0a8e7a8710eea 100644
@@ -341,10 +341,9 @@ static void aie2_hw_stop(struct amdxdna_dev *xdna)
 		return;
 	}
 
+	aie2_runtime_cfg(ndev, AIE2_RT_CFG_CLK_GATING, NULL);
 	aie2_mgmt_fw_fini(ndev);
-	xdna_mailbox_stop_channel(ndev->mgmt_chann);
-	xdna_mailbox_destroy_channel(ndev->mgmt_chann);
-	ndev->mgmt_chann = NULL;
+	aie2_destroy_mgmt_chann(ndev);
 	drmm_kfree(&xdna->ddev, ndev->mbox);
 	ndev->mbox = NULL;
 	aie2_psp_stop(ndev->psp_hdl);
@@ -424,15 +423,15 @@ static int aie2_hw_start(struct amdxdna_dev *xdna)
 		goto stop_psp;
 	}
 
-	ret = aie2_pm_init(ndev);
+	ret = aie2_mgmt_fw_init(ndev);
 	if (ret) {
-		XDNA_ERR(xdna, "failed to init pm, ret %d", ret);
+		XDNA_ERR(xdna, "initial mgmt firmware failed, ret %d", ret);
 		goto destroy_mgmt_chann;
 	}
 
-	ret = aie2_mgmt_fw_init(ndev);
+	ret = aie2_pm_init(ndev);
 	if (ret) {
-		XDNA_ERR(xdna, "initial mgmt firmware failed, ret %d", ret);
+		XDNA_ERR(xdna, "failed to init pm, ret %d", ret);
 		goto destroy_mgmt_chann;
 	}
 
@@ -453,8 +452,7 @@ static int aie2_hw_start(struct amdxdna_dev *xdna)
 	return 0;
 
 destroy_mgmt_chann:
-	xdna_mailbox_stop_channel(ndev->mgmt_chann);
-	xdna_mailbox_destroy_channel(ndev->mgmt_chann);
+	aie2_destroy_mgmt_chann(ndev);
 stop_psp:
 	aie2_psp_stop(ndev->psp_hdl);
 fini_smu:
@@ -469,7 +467,6 @@ static int aie2_hw_suspend(struct amdxdna_dev *xdna)
 {
 	struct amdxdna_client *client;
 
-	guard(mutex)(&xdna->dev_lock);
 	list_for_each_entry(client, &xdna->client_list, node)
 		aie2_hwctx_suspend(client);
 
@@ -969,7 +966,7 @@ static int aie2_get_info(struct amdxdna_client *client, struct amdxdna_drm_get_i
 	if (!drm_dev_enter(&xdna->ddev, &idx))
 		return -ENODEV;
 
-	ret = amdxdna_pm_resume_get(xdna);
+	ret = amdxdna_pm_resume_get_locked(xdna);
 	if (ret)
 		goto dev_exit;
 
@@ -1062,7 +1059,7 @@ static int aie2_get_array(struct amdxdna_client *client,
 	if (!drm_dev_enter(&xdna->ddev, &idx))
 		return -ENODEV;
 
-	ret = amdxdna_pm_resume_get(xdna);
+	ret = amdxdna_pm_resume_get_locked(xdna);
 	if (ret)
 		goto dev_exit;
 
@@ -1152,7 +1149,7 @@ static int aie2_set_state(struct amdxdna_client *client,
 	if (!drm_dev_enter(&xdna->ddev, &idx))
 		return -ENODEV;
 
-	ret = amdxdna_pm_resume_get(xdna);
+	ret = amdxdna_pm_resume_get_locked(xdna);
 	if (ret)
 		goto dev_exit;
 
drivers/accel/amdxdna/aie2_pci.h +1 -0
index 4fdc032bc171b..482ee555f6c47 100644
@@ -302,6 +302,7 @@ int aie2_get_array_async_error(struct amdxdna_dev_hdl *ndev,
 
 /* aie2_message.c */
 void aie2_msg_init(struct amdxdna_dev_hdl *ndev);
+void aie2_destroy_mgmt_chann(struct amdxdna_dev_hdl *ndev);
 int aie2_suspend_fw(struct amdxdna_dev_hdl *ndev);
 int aie2_resume_fw(struct amdxdna_dev_hdl *ndev);
 int aie2_set_runtime_cfg(struct amdxdna_dev_hdl *ndev, u32 type, u64 value);
drivers/accel/amdxdna/aie2_pm.c +1 -1
index 579b8be13b180..29bd4403a94d4 100644
@@ -31,7 +31,7 @@ int aie2_pm_set_dpm(struct amdxdna_dev_hdl *ndev, u32 dpm_level)
 {
 	int ret;
 
-	ret = amdxdna_pm_resume_get(ndev->xdna);
+	ret = amdxdna_pm_resume_get_locked(ndev->xdna);
 	if (ret)
 		return ret;
 
drivers/accel/amdxdna/amdxdna_ctx.c +38 -13

104 lines not on this page · raw message

drivers/accel/amdxdna/amdxdna_ctx.h +3 -0
index 16c85f08f03c6..fbdf9d0008713 100644
@@ -167,6 +167,9 @@ amdxdna_cmd_get_state(struct amdxdna_gem_obj *abo)
 
 void *amdxdna_cmd_get_payload(struct amdxdna_gem_obj *abo, u32 *size);
 u32 amdxdna_cmd_get_cu_idx(struct amdxdna_gem_obj *abo);
+int amdxdna_cmd_set_error(struct amdxdna_gem_obj *abo,
+			  struct amdxdna_sched_job *job, u32 cmd_idx,
+			  enum ert_cmd_state error_state);
 
 void amdxdna_sched_job_cleanup(struct amdxdna_sched_job *job);
 void amdxdna_hwctx_remove_all(struct amdxdna_client *client);
drivers/accel/amdxdna/amdxdna_gem.c +19 -19
index dfa916eeb2d9c..56341b7668b10 100644
@@ -21,8 +21,6 @@
 #include "amdxdna_pci_drv.h"
 #include "amdxdna_ubuf.h"
 
-#define XDNA_MAX_CMD_BO_SIZE	SZ_32K
-
 MODULE_IMPORT_NS("DMA_BUF");
 
 static int
@@ -746,12 +744,6 @@ amdxdna_drm_create_cmd_bo(struct drm_device *dev,
 {
 	struct amdxdna_dev *xdna = to_xdna_dev(dev);
 	struct amdxdna_gem_obj *abo;
-	int ret;
-
-	if (args->size > XDNA_MAX_CMD_BO_SIZE) {
-		XDNA_ERR(xdna, "Command bo size 0x%llx too large", args->size);
-		return ERR_PTR(-EINVAL);
-	}
 
 	if (args->size < sizeof(struct amdxdna_cmd)) {
 		XDNA_DBG(xdna, "Command BO size 0x%llx too small", args->size);
@@ -765,17 +757,7 @@ amdxdna_drm_create_cmd_bo(struct drm_device *dev,
 	abo->type = AMDXDNA_BO_CMD;
 	abo->client = filp->driver_priv;
 
-	ret = amdxdna_gem_obj_vmap(abo, &abo->mem.kva);
-	if (ret) {
-		XDNA_ERR(xdna, "Vmap cmd bo failed, ret %d", ret);
-		goto release_obj;
-	}
-
 	return abo;
-
-release_obj:
-	drm_gem_object_put(to_gobj(abo));
-	return ERR_PTR(ret);
 }
 
 int amdxdna_drm_create_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
@@ -872,6 +854,7 @@ struct amdxdna_gem_obj *amdxdna_gem_get_obj(struct amdxdna_client *client,
 	struct amdxdna_dev *xdna = client->xdna;
 	struct amdxdna_gem_obj *abo;
 	struct drm_gem_object *gobj;
+	int ret;
 
 	gobj = drm_gem_object_lookup(client->filp, bo_hdl);
 	if (!gobj) {
@@ -880,9 +863,26 @@ struct amdxdna_gem_obj *amdxdna_gem_get_obj(struct amdxdna_client *client,
 	}
 
 	abo = to_xdna_obj(gobj);
-	if (bo_type == AMDXDNA_BO_INVALID || abo->type == bo_type)
+	if (bo_type != AMDXDNA_BO_INVALID && abo->type != bo_type)
+		goto put_obj;
+
+	if (bo_type != AMDXDNA_BO_CMD || abo->mem.kva)
 		return abo;
 
+	if (abo->mem.size > SZ_32K) {
+		XDNA_ERR(xdna, "Cmd bo is too big %ld", abo->mem.size);
+		goto put_obj;
+	}
+
+	ret = amdxdna_gem_obj_vmap(abo, &abo->mem.kva);
+	if (ret) {
+		XDNA_ERR(xdna, "Vmap cmd bo failed, ret %d", ret);
+		goto put_obj;
+	}
+
+	return abo;
+
+put_obj:
 	drm_gem_object_put(gobj);
 	return NULL;
 }
drivers/accel/amdxdna/amdxdna_pm.c +2 -0
index d024d480521c4..b1fafddd7ad59 100644
@@ -16,6 +16,7 @@ int amdxdna_pm_suspend(struct device *dev)
 	struct amdxdna_dev *xdna = to_xdna_dev(dev_get_drvdata(dev));
 	int ret = -EOPNOTSUPP;
 
+	guard(mutex)(&xdna->dev_lock);
 	if (xdna->dev_info->ops->suspend)
 		ret = xdna->dev_info->ops->suspend(xdna);
 
@@ -28,6 +29,7 @@ int amdxdna_pm_resume(struct device *dev)
 	struct amdxdna_dev *xdna = to_xdna_dev(dev_get_drvdata(dev));
 	int ret = -EOPNOTSUPP;
 
+	guard(mutex)(&xdna->dev_lock);
 	if (xdna->dev_info->ops->resume)
 		ret = xdna->dev_info->ops->resume(xdna);
 
drivers/accel/amdxdna/amdxdna_pm.h +11 -0
index 77b2d6e455700..3d26b973e0e36 100644
@@ -15,4 +15,15 @@ void amdxdna_pm_suspend_put(struct amdxdna_dev *xdna);
 void amdxdna_pm_init(struct amdxdna_dev *xdna);
 void amdxdna_pm_fini(struct amdxdna_dev *xdna);
 
+static inline int amdxdna_pm_resume_get_locked(struct amdxdna_dev *xdna)
+{
+	int ret;
+
+	mutex_unlock(&xdna->dev_lock);
+	ret = amdxdna_pm_resume_get(xdna);
+	mutex_lock(&xdna->dev_lock);
+
+	return ret;
+}
+
 #endif /* _AMDXDNA_PM_H_ */
drivers/accel/amdxdna/amdxdna_ubuf.c +5 -1
index 9e3b3b055caa8..62a478f6b45fb 100644
@@ -7,6 +7,7 @@
 #include <drm/drm_device.h>
 #include <drm/drm_print.h>
 #include <linux/dma-buf.h>
+#include <linux/overflow.h>
 #include <linux/pagemap.h>
 #include <linux/vmalloc.h>
 
@@ -176,7 +177,10 @@ struct dma_buf *amdxdna_get_ubuf(struct drm_device *dev,
 			goto free_ent;
 		}
 
-		exp_info.size += va_ent[i].len;
+		if (check_add_overflow(exp_info.size, va_ent[i].len, &exp_info.size)) {
+			ret = -EINVAL;
+			goto free_ent;
+		}
 	}
 
 	ubuf->nr_pages = exp_info.size >> PAGE_SHIFT;
drivers/accel/ethosu/ethosu_gem.c +5 -2
index 473b5f5d75144..4e84481a29d2f 100644
@@ -154,7 +154,7 @@ static void cmd_state_init(struct cmd_state *st)
 
 static u64 cmd_to_addr(u32 *cmd)
 {
-	return ((u64)((cmd[0] & 0xff0000) << 16)) | cmd[1];
+	return (((u64)cmd[0] & 0xff0000) << 16) | cmd[1];
 }
 
 static u64 dma_length(struct ethosu_validated_cmdstream_info *info,
@@ -417,7 +417,10 @@ static int ethosu_gem_cmdstream_copy_and_validate(struct drm_device *ddev,
 				return ret;
 			break;
 		case NPU_OP_ELEMENTWISE:
-			use_ifm2 = !((st.ifm2.broadcast == 8) || (param == 5) ||
+			use_scale = ethosu_is_u65(edev) ?
+				    (st.ifm2.broadcast & 0x80) :
+				    (st.ifm2.broadcast == 8);
+			use_ifm2 = !(use_scale || (param == 5) ||
 				(param == 6) || (param == 7) || (param == 0x24));
 			use_ifm = st.ifm.broadcast != 8;
 			ret = calc_sizes_elemwise(ddev, info, cmd, &st, use_ifm, use_ifm2);
drivers/accel/ethosu/ethosu_job.c +18 -8
index 26e7a2f64d71a..70a144803b096 100644
@@ -143,23 +143,29 @@ static int ethosu_job_push(struct ethosu_job *job)
 	return ret;
 }
 
+static void ethosu_job_err_cleanup(struct ethosu_job *job)
+{
+	unsigned int i;
+
+	for (i = 0; i < job->region_cnt; i++)
+		drm_gem_object_put(job->region_bo[i]);
+
+	drm_gem_object_put(job->cmd_bo);
+
+	kfree(job);
+}
+
 static void ethosu_job_cleanup(struct kref *ref)
 {
 	struct ethosu_job *job = container_of(ref, struct ethosu_job,
 						refcount);
-	unsigned int i;
 
 	pm_runtime_put_autosuspend(job->dev->base.dev);
 
 	dma_fence_put(job->done_fence);
 	dma_fence_put(job->inference_done_fence);
 
-	for (i = 0; i < job->region_cnt; i++)
-		drm_gem_object_put(job->region_bo[i]);
-
-	drm_gem_object_put(job->cmd_bo);
-
-	kfree(job);
+	ethosu_job_err_cleanup(job);
 }
 
 static void ethosu_job_put(struct ethosu_job *job)
@@ -454,12 +460,16 @@ static int ethosu_ioctl_submit_job(struct drm_device *dev, struct drm_file *file
 		}
 	}
 	ret = ethosu_job_push(ejob);
+	if (!ret) {
+		ethosu_job_put(ejob);
+		return 0;
+	}
 
 out_cleanup_job:
 	if (ret)
 		drm_sched_job_cleanup(&ejob->base);
 out_put_job:
-	ethosu_job_put(ejob);
+	ethosu_job_err_cleanup(ejob);
 
 	return ret;
 }
drivers/accel/rocket/rocket_core.c +5 -2
index abe7719c1db46..b3b2fa9ba645a 100644
@@ -59,8 +59,11 @@ int rocket_core_init(struct rocket_core *core)
 	core->iommu_group = iommu_group_get(dev);
 
 	err = rocket_job_init(core);
-	if (err)
+	if (err) {
+		iommu_group_put(core->iommu_group);
+		core->iommu_group = NULL;
 		return err;
+	}
 
 	pm_runtime_use_autosuspend(dev);
 
@@ -76,7 +79,7 @@ int rocket_core_init(struct rocket_core *core)
 
 	err = pm_runtime_resume_and_get(dev);
 	if (err) {
-		rocket_job_fini(core);
+		rocket_core_fini(core);
 		return err;
 	}
 
drivers/accel/rocket/rocket_drv.c +14 -1
index 5c0b63f0a8f00..f6ef4c7aeef11 100644
@@ -13,6 +13,7 @@
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 
+#include "rocket_device.h"
 #include "rocket_drv.h"
 #include "rocket_gem.h"
 #include "rocket_job.h"
@@ -158,6 +159,8 @@ static const struct drm_driver rocket_drm_driver = {
 
 static int rocket_probe(struct platform_device *pdev)
 {
+	int ret;
+
 	if (rdev == NULL) {
 		/* First core probing, initialize DRM device. */
 		rdev = rocket_device_init(drm_dev, &rocket_drm_driver);
@@ -177,7 +180,17 @@ static int rocket_probe(struct platform_device *pdev)
 
 	rdev->num_cores++;
 
-	return rocket_core_init(&rdev->cores[core]);
+	ret = rocket_core_init(&rdev->cores[core]);
+	if (ret) {
+		rdev->num_cores--;
+
+		if (rdev->num_cores == 0) {
+			rocket_device_fini(rdev);
+			rdev = NULL;
+		}
+	}
+
+	return ret;
 }
 
 static void rocket_remove(struct platform_device *pdev)
drivers/ata/libata-eh.c +2 -1
index b373cceb95d23..23be85418b3b1 100644
@@ -647,7 +647,7 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,
 				break;
 		}
 
-		if (qc == ap->deferred_qc) {
+		if (i < ATA_MAX_QUEUE && qc == ap->deferred_qc) {
 			/*
 			 * This is a deferred command that timed out while
 			 * waiting for the command queue to drain. Since the qc
@@ -659,6 +659,7 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,
 			 */
 			WARN_ON_ONCE(qc->flags & ATA_QCFLAG_ACTIVE);
 			ap->deferred_qc = NULL;
+			cancel_work(&ap->deferred_qc_work);
 			set_host_byte(scmd, DID_TIME_OUT);
 			scsi_eh_finish_cmd(scmd, &ap->eh_done_q);
 		} else if (i < ATA_MAX_QUEUE) {
drivers/ata/libata-scsi.c +1 -0
index 6b954efa9adb1..98ee5e7f61eb6 100644
@@ -1699,6 +1699,7 @@ void ata_scsi_requeue_deferred_qc(struct ata_port *ap)
 
 	scmd = qc->scsicmd;
 	ap->deferred_qc = NULL;
+	cancel_work(&ap->deferred_qc_work);
 	ata_qc_free(qc);
 	scmd->result = (DID_SOFT_ERROR << 16);
 	scsi_done(scmd);
drivers/block/drbd/drbd_actlog.c +23 -30

82 lines not on this page · raw message

drivers/block/drbd/drbd_interval.h +4 -1
index 366489b72fe97..5d3213b81eede 100644
@@ -8,12 +8,15 @@
 struct drbd_interval {
 	struct rb_node rb;
 	sector_t sector;		/* start sector of the interval */
-	unsigned int size;		/* size in bytes */
 	sector_t end;			/* highest interval end in subtree */
+	unsigned int size;		/* size in bytes */
 	unsigned int local:1		/* local or remote request? */;
 	unsigned int waiting:1;		/* someone is waiting for completion */
 	unsigned int completed:1;	/* this has been completed already;
 					 * ignore for conflict detection */
+
+	/* to resume a partially successful drbd_al_begin_io_nonblock(); */
+	unsigned int partially_in_al_next_enr;
 };
 
 static inline void drbd_clear_interval(struct drbd_interval *i)
drivers/block/drbd/drbd_req.c +2 -1
index d15826f6ee81d..70f75ef079457 100644
@@ -621,7 +621,8 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
 		break;
 
 	case READ_COMPLETED_WITH_ERROR:
-		drbd_set_out_of_sync(peer_device, req->i.sector, req->i.size);
+		drbd_set_out_of_sync(first_peer_device(device),
+				req->i.sector, req->i.size);
 		drbd_report_io_error(device, req);
 		__drbd_chk_io_error(device, DRBD_READ_ERROR);
 		fallthrough;
drivers/block/zloop.c +24 -7
index 8e334f5025fc0..9e3bb538d5fcf 100644
@@ -542,6 +542,21 @@ static void zloop_rw(struct zloop_cmd *cmd)
 	zloop_put_cmd(cmd);
 }
 
+/*
+ * Sync the entire FS containing the zone files instead of walking all files.
+ */
+static int zloop_flush(struct zloop_device *zlo)
+{
+	struct super_block *sb = file_inode(zlo->data_dir)->i_sb;
+	int ret;
+
+	down_read(&sb->s_umount);
+	ret = sync_filesystem(sb);
+	up_read(&sb->s_umount);
+
+	return ret;
+}
+
 static void zloop_handle_cmd(struct zloop_cmd *cmd)
 {
 	struct request *rq = blk_mq_rq_from_pdu(cmd);
@@ -562,11 +577,7 @@ static void zloop_handle_cmd(struct zloop_cmd *cmd)
 		zloop_rw(cmd);
 		return;
 	case REQ_OP_FLUSH:
-		/*
-		 * Sync the entire FS containing the zone files instead of
-		 * walking all files
-		 */
-		cmd->ret = sync_filesystem(file_inode(zlo->data_dir)->i_sb);
+		cmd->ret = zloop_flush(zlo);
 		break;
 	case REQ_OP_ZONE_RESET:
 		cmd->ret = zloop_reset_zone(zlo, rq_zone_no(rq));
@@ -981,7 +992,8 @@ static int zloop_ctl_add(struct zloop_options *opts)
 	struct queue_limits lim = {
 		.max_hw_sectors		= SZ_1M >> SECTOR_SHIFT,
 		.chunk_sectors		= opts->zone_size,
-		.features		= BLK_FEAT_ZONED,
+		.features		= BLK_FEAT_ZONED | BLK_FEAT_WRITE_CACHE,
+
 	};
 	unsigned int nr_zones, i, j;
 	struct zloop_device *zlo;
@@ -1162,7 +1174,12 @@ static int zloop_ctl_remove(struct zloop_options *opts)
 	int ret;
 
 	if (!(opts->mask & ZLOOP_OPT_ID)) {
-		pr_err("No ID specified\n");
+		pr_err("No ID specified for remove\n");
+		return -EINVAL;
+	}
+
+	if (opts->mask & ~ZLOOP_OPT_ID) {
+		pr_err("Invalid option specified for remove\n");
 		return -EINVAL;
 	}
 
drivers/char/ipmi/ipmi_msghandler.c +9 -2
index 3f48fc6ab596d..a590a67294e24 100644
@@ -4852,8 +4852,15 @@ static void smi_work(struct work_struct *t)
 			if (newmsg->recv_msg)
 				deliver_err_response(intf,
 						     newmsg->recv_msg, cc);
-			else
-				ipmi_free_smi_msg(newmsg);
+			if (!run_to_completion)
+				spin_lock_irqsave(&intf->xmit_msgs_lock,
+						  flags);
+			intf->curr_msg = NULL;
+			if (!run_to_completion)
+				spin_unlock_irqrestore(&intf->xmit_msgs_lock,
+						       flags);
+			ipmi_free_smi_msg(newmsg);
+			newmsg = NULL;
 			goto restart;
 		}
 	}
drivers/clk/imx/clk-imx8qxp.c +23 -1
index 3ae162625bb1a..c781425a005ef 100644
@@ -346,7 +346,29 @@ static struct platform_driver imx8qxp_clk_driver = {
 	},
 	.probe = imx8qxp_clk_probe,
 };
-module_platform_driver(imx8qxp_clk_driver);
+
+static int __init imx8qxp_clk_init(void)
+{
+	int ret;
+
+	ret = platform_driver_register(&imx8qxp_clk_driver);
+	if (ret)
+		return ret;
+
+	ret = imx_clk_scu_module_init();
+	if (ret)
+		platform_driver_unregister(&imx8qxp_clk_driver);
+
+	return ret;
+}
+module_init(imx8qxp_clk_init);
+
+static void __exit imx8qxp_clk_exit(void)
+{
+	imx_clk_scu_module_exit();
+	platform_driver_unregister(&imx8qxp_clk_driver);
+}
+module_exit(imx8qxp_clk_exit);
 
 MODULE_AUTHOR("Aisheng Dong <[email protected]>");
 MODULE_DESCRIPTION("NXP i.MX8QXP clock driver");
drivers/clk/imx/clk-scu.c +11 -1
index 34c9dc1fb20e5..c90d21e05f916 100644
@@ -191,6 +191,16 @@ static bool imx_scu_clk_is_valid(u32 rsrc_id)
 	return p != NULL;
 }
 
+int __init imx_clk_scu_module_init(void)
+{
+	return platform_driver_register(&imx_clk_scu_driver);
+}
+
+void __exit imx_clk_scu_module_exit(void)
+{
+	return platform_driver_unregister(&imx_clk_scu_driver);
+}
+
 int imx_clk_scu_init(struct device_node *np,
 		     const struct imx_clk_scu_rsrc_table *data)
 {
@@ -215,7 +225,7 @@ int imx_clk_scu_init(struct device_node *np,
 		rsrc_table = data;
 	}
 
-	return platform_driver_register(&imx_clk_scu_driver);
+	return 0;
 }
 
 /*
drivers/clk/imx/clk-scu.h +2 -0
index af7b697f51cae..ca82f2cce8974 100644
@@ -25,6 +25,8 @@ extern const struct imx_clk_scu_rsrc_table imx_clk_scu_rsrc_imx8dxl;
 extern const struct imx_clk_scu_rsrc_table imx_clk_scu_rsrc_imx8qxp;
 extern const struct imx_clk_scu_rsrc_table imx_clk_scu_rsrc_imx8qm;
 
+int __init imx_clk_scu_module_init(void);
+void __exit imx_clk_scu_module_exit(void);
 int imx_clk_scu_init(struct device_node *np,
 		     const struct imx_clk_scu_rsrc_table *data);
 struct clk_hw *imx_scu_of_clk_src_get(struct of_phandle_args *clkspec,
drivers/cpufreq/intel_pstate.c +5 -5
index 1625ec2d0d06a..ec8308629432b 100644
@@ -1476,13 +1476,13 @@ static void __intel_pstate_update_max_freq(struct cpufreq_policy *policy,
 	refresh_frequency_limits(policy);
 }
 
-static bool intel_pstate_update_max_freq(struct cpudata *cpudata)
+static bool intel_pstate_update_max_freq(int cpu)
 {
-	struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpudata->cpu);
+	struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
 	if (!policy)
 		return false;
 
-	__intel_pstate_update_max_freq(policy, cpudata);
+	__intel_pstate_update_max_freq(policy, all_cpu_data[cpu]);
 
 	return true;
 }
@@ -1501,7 +1501,7 @@ static void intel_pstate_update_limits_for_all(void)
 	int cpu;
 
 	for_each_possible_cpu(cpu)
-		intel_pstate_update_max_freq(all_cpu_data[cpu]);
+		intel_pstate_update_max_freq(cpu);
 
 	mutex_lock(&hybrid_capacity_lock);
 
@@ -1908,7 +1908,7 @@ static void intel_pstate_notify_work(struct work_struct *work)
 	struct cpudata *cpudata =
 		container_of(to_delayed_work(work), struct cpudata, hwp_notify_work);
 
-	if (intel_pstate_update_max_freq(cpudata)) {
+	if (intel_pstate_update_max_freq(cpudata->cpu)) {
 		/*
 		 * The driver will not be unregistered while this function is
 		 * running, so update the capacity without acquiring the driver
drivers/crypto/ccp/sev-dev-tsm.c +1 -1
index 40d02adaf3f6d..7ad7e7a413c0f 100644
@@ -378,9 +378,9 @@ void sev_tsm_init_locked(struct sev_device *sev, void *tio_status_page)
 	return;
 
 error_exit:
-	kfree(t);
 	pr_err("Failed to enable SEV-TIO: ret=%d en=%d initdone=%d SEV=%d\n",
 	       ret, t->tio_en, t->tio_init_done, boot_cpu_has(X86_FEATURE_SEV));
+	kfree(t);
 }
 
 void sev_tsm_uninit(struct sev_device *sev)
drivers/cxl/core/mbox.c +9 -2
index fa6dd0c94656f..e7a6452bf5445 100644
@@ -311,6 +311,7 @@ static bool cxl_mem_raw_command_allowed(u16 opcode)
  * cxl_payload_from_user_allowed() - Check contents of in_payload.
  * @opcode: The mailbox command opcode.
  * @payload_in: Pointer to the input payload passed in from user space.
+ * @in_size: Size of @payload_in in bytes.
  *
  * Return:
  *  * true	- payload_in passes check for @opcode.
@@ -325,12 +326,15 @@ static bool cxl_mem_raw_command_allowed(u16 opcode)
  *
  * The specific checks are determined by the opcode.
  */
-static bool cxl_payload_from_user_allowed(u16 opcode, void *payload_in)
+static bool cxl_payload_from_user_allowed(u16 opcode, void *payload_in,
+					  size_t in_size)
 {
 	switch (opcode) {
 	case CXL_MBOX_OP_SET_PARTITION_INFO: {
 		struct cxl_mbox_set_partition_info *pi = payload_in;
 
+		if (in_size < sizeof(*pi))
+			return false;
 		if (pi->flags & CXL_SET_PARTITION_IMMEDIATE_FLAG)
 			return false;
 		break;
@@ -338,6 +342,8 @@ static bool cxl_payload_from_user_allowed(u16 opcode, void *payload_in)
 	case CXL_MBOX_OP_CLEAR_LOG: {
 		const uuid_t *uuid = (uuid_t *)payload_in;
 
+		if (in_size < sizeof(uuid_t))
+			return false;
 		/*
 		 * Restrict the ‘Clear log’ action to only apply to
 		 * Vendor debug logs.
@@ -365,7 +371,8 @@ static int cxl_mbox_cmd_ctor(struct cxl_mbox_cmd *mbox_cmd,
 		if (IS_ERR(mbox_cmd->payload_in))
 			return PTR_ERR(mbox_cmd->payload_in);
 
-		if (!cxl_payload_from_user_allowed(opcode, mbox_cmd->payload_in)) {
+		if (!cxl_payload_from_user_allowed(opcode, mbox_cmd->payload_in,
+						  in_size)) {
 			dev_dbg(cxl_mbox->host, "%s: input payload not allowed\n",
 				cxl_mem_opcode_to_name(opcode));
 			kvfree(mbox_cmd->payload_in);
drivers/cxl/core/pmem.c +32 -10

66 lines not on this page · raw message

drivers/cxl/cxl.h +7 -0
index ba17fa86d249e..e477cd72d3000 100644
@@ -563,11 +563,16 @@ struct cxl_nvdimm_bridge {
 
 #define CXL_DEV_ID_LEN 19
 
+enum {
+	CXL_NVD_F_INVALIDATED = 0,
+};
+
 struct cxl_nvdimm {
 	struct device dev;
 	struct cxl_memdev *cxlmd;
 	u8 dev_id[CXL_DEV_ID_LEN]; /* for nvdimm, string of 'serial' */
 	u64 dirty_shutdowns;
+	unsigned long flags;
 };
 
 struct cxl_pmem_region_mapping {
@@ -893,6 +898,8 @@ void cxl_driver_unregister(struct cxl_driver *cxl_drv);
 struct cxl_nvdimm_bridge *to_cxl_nvdimm_bridge(struct device *dev);
 struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,
 						     struct cxl_port *port);
+struct cxl_nvdimm_bridge *__devm_cxl_add_nvdimm_bridge(struct device *host,
+						       struct cxl_port *port);
 struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev);
 bool is_cxl_nvdimm(struct device *dev);
 int devm_cxl_add_nvdimm(struct cxl_port *parent_port, struct cxl_memdev *cxlmd);
drivers/cxl/pmem.c +21 -1
index e197883690efc..c00b84b960761 100644
@@ -13,6 +13,20 @@
 
 static __read_mostly DECLARE_BITMAP(exclusive_cmds, CXL_MEM_COMMAND_ID_MAX);
 
+/**
+ * devm_cxl_add_nvdimm_bridge() - add the root of a LIBNVDIMM topology
+ * @host: platform firmware root device
+ * @port: CXL port at the root of a CXL topology
+ *
+ * Return: bridge device that can host cxl_nvdimm objects
+ */
+struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,
+						     struct cxl_port *port)
+{
+	return __devm_cxl_add_nvdimm_bridge(host, port);
+}
+EXPORT_SYMBOL_NS_GPL(devm_cxl_add_nvdimm_bridge, "CXL");
+
 static void clear_exclusive(void *mds)
 {
 	clear_exclusive_cxl_commands(mds, exclusive_cmds);
@@ -129,6 +143,9 @@ static int cxl_nvdimm_probe(struct device *dev)
 	struct nvdimm *nvdimm;
 	int rc;
 
+	if (test_bit(CXL_NVD_F_INVALIDATED, &cxl_nvd->flags))
+		return -EBUSY;
+
 	set_exclusive_cxl_commands(mds, exclusive_cmds);
 	rc = devm_add_action_or_reset(dev, clear_exclusive, mds);
 	if (rc)
@@ -309,8 +326,10 @@ static int detach_nvdimm(struct device *dev, void *data)
 	scoped_guard(device, dev) {
 		if (dev->driver) {
 			cxl_nvd = to_cxl_nvdimm(dev);
-			if (cxl_nvd->cxlmd && cxl_nvd->cxlmd->cxl_nvb == data)
+			if (cxl_nvd->cxlmd && cxl_nvd->cxlmd->cxl_nvb == data) {
 				release = true;
+				set_bit(CXL_NVD_F_INVALIDATED, &cxl_nvd->flags);
+			}
 		}
 	}
 	if (release)
@@ -353,6 +372,7 @@ static struct cxl_driver cxl_nvdimm_bridge_driver = {
 	.probe = cxl_nvdimm_bridge_probe,
 	.id = CXL_DEVICE_NVDIMM_BRIDGE,
 	.drv = {
+		.probe_type = PROBE_FORCE_SYNCHRONOUS,
 		.suppress_bind_attrs = true,
 	},
 };
drivers/firmware/efi/mokvar-table.c +1 -1
index aedbbd627706a..741674a0a70c5 100644
@@ -85,7 +85,7 @@ static struct kobject *mokvar_kobj;
  * as an alternative to ordinary EFI variables, due to platform-dependent
  * limitations. The memory occupied by this table is marked as reserved.
  *
- * This routine must be called before efi_free_boot_services() in order
+ * This routine must be called before efi_unmap_boot_services() in order
  * to guarantee that it can mark the table as reserved.
  *
  * Implicit inputs:
drivers/gpio/gpiolib-shared.c +3 -3
index 9e65442034393..e16f467b72e7a 100644
@@ -753,14 +753,14 @@ static bool gpio_shared_entry_is_really_shared(struct gpio_shared_entry *entry)
 static void gpio_shared_free_exclusive(void)
 {
 	struct gpio_shared_entry *entry, *epos;
+	struct gpio_shared_ref *ref, *rpos;
 
 	list_for_each_entry_safe(entry, epos, &gpio_shared_list, list) {
 		if (gpio_shared_entry_is_really_shared(entry))
 			continue;
 
-		gpio_shared_drop_ref(list_first_entry(&entry->refs,
-						      struct gpio_shared_ref,
-						      list));
+		list_for_each_entry_safe(ref, rpos, &entry->refs, list)
+			gpio_shared_drop_ref(ref);
 		gpio_shared_drop_entry(entry);
 	}
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c +1 -0
index 9b31804491500..3f9b094e93a29 100644
@@ -641,6 +641,7 @@ static void aca_error_fini(struct aca_error *aerr)
 		aca_bank_error_remove(aerr, bank_error);
 
 out_unlock:
+	mutex_unlock(&aerr->lock);
 	mutex_destroy(&aerr->lock);
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +10 -7
index 09f9d82e572da..ad5a3235a75f1 100644
@@ -7203,6 +7203,15 @@ pci_ers_result_t amdgpu_pci_slot_reset(struct pci_dev *pdev)
 	dev_info(adev->dev, "PCI error: slot reset callback!!\n");
 
 	memset(&reset_context, 0, sizeof(reset_context));
+	INIT_LIST_HEAD(&device_list);
+	hive = amdgpu_get_xgmi_hive(adev);
+	if (hive) {
+		mutex_lock(&hive->hive_lock);
+		list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head)
+			list_add_tail(&tmp_adev->reset_list, &device_list);
+	} else {
+		list_add_tail(&adev->reset_list, &device_list);
+	}
 
 	if (adev->pcie_reset_ctx.swus)
 		link_dev = adev->pcie_reset_ctx.swus;
@@ -7243,19 +7252,13 @@ pci_ers_result_t amdgpu_pci_slot_reset(struct pci_dev *pdev)
 	reset_context.reset_req_dev = adev;
 	set_bit(AMDGPU_NEED_FULL_RESET, &reset_context.flags);
 	set_bit(AMDGPU_SKIP_COREDUMP, &reset_context.flags);
-	INIT_LIST_HEAD(&device_list);
 
-	hive = amdgpu_get_xgmi_hive(adev);
 	if (hive) {
-		mutex_lock(&hive->hive_lock);
 		reset_context.hive = hive;
-		list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) {
+		list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head)
 			tmp_adev->pcie_reset_ctx.in_link_reset = true;
-			list_add_tail(&tmp_adev->reset_list, &device_list);
-		}
 	} else {
 		set_bit(AMDGPU_SKIP_HW_RESET, &reset_context.flags);
-		list_add_tail(&adev->reset_list, &device_list);
 	}
 
 	r = amdgpu_device_asic_reset(adev, &device_list, &reset_context);
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c +7 -5
index 6e8aad91bcd30..0d3c18f04ac36 100644
@@ -332,13 +332,13 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 	if (!context || !context->initialized) {
 		dev_err(adev->dev, "TA is not initialized\n");
 		ret = -EINVAL;
-		goto err_free_shared_buf;
+		goto free_shared_buf;
 	}
 
 	if (!psp->ta_funcs || !psp->ta_funcs->fn_ta_invoke) {
 		dev_err(adev->dev, "Unsupported function to invoke TA\n");
 		ret = -EOPNOTSUPP;
-		goto err_free_shared_buf;
+		goto free_shared_buf;
 	}
 
 	context->session_id = ta_id;
@@ -346,7 +346,7 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 	mutex_lock(&psp->ras_context.mutex);
 	ret = prep_ta_mem_context(&context->mem_context, shared_buf, shared_buf_len);
 	if (ret)
-		goto err_free_shared_buf;
+		goto unlock;
 
 	ret = psp_fn_ta_invoke(psp, cmd_id);
 	if (ret || context->resp_status) {
@@ -354,15 +354,17 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, size
 			ret, context->resp_status);
 		if (!ret) {
 			ret = -EINVAL;
-			goto err_free_shared_buf;
+			goto unlock;
 		}
 	}
 
 	if (copy_to_user((char *)&buf[copy_pos], context->mem_context.shared_buf, shared_buf_len))
 		ret = -EFAULT;
 
-err_free_shared_buf:
+unlock:
 	mutex_unlock(&psp->ras_context.mutex);
+
+free_shared_buf:
 	kfree(shared_buf);
 
 	return ret;
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c +4 -4
index 85e9edc1cb6ff..f61886745e33d 100644
@@ -830,7 +830,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 
 			dma_resv_for_each_fence(&resv_cursor, gobj_read[i]->resv,
 						DMA_RESV_USAGE_READ, fence) {
-				if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
+				if (num_fences >= wait_info->num_fences) {
 					r = -EINVAL;
 					goto free_fences;
 				}
@@ -847,7 +847,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 
 			dma_resv_for_each_fence(&resv_cursor, gobj_write[i]->resv,
 						DMA_RESV_USAGE_WRITE, fence) {
-				if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
+				if (num_fences >= wait_info->num_fences) {
 					r = -EINVAL;
 					goto free_fences;
 				}
@@ -871,7 +871,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 					goto free_fences;
 
 				dma_fence_unwrap_for_each(f, &iter, fence) {
-					if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
+					if (num_fences >= wait_info->num_fences) {
 						r = -EINVAL;
 						goto free_fences;
 					}
@@ -895,7 +895,7 @@ int amdgpu_userq_wait_ioctl(struct drm_device *dev, void *data,
 			if (r)
 				goto free_fences;
 
-			if (WARN_ON_ONCE(num_fences >= wait_info->num_fences)) {
+			if (num_fences >= wait_info->num_fences) {
 				r = -EINVAL;
 				goto free_fences;
 			}
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +4 -2
index 20a76d81d532d..12c52bffe9964 100644
@@ -1706,6 +1706,7 @@ __set_dm_plane_colorop_3dlut(struct drm_plane_state *plane_state,
 	struct dc_transfer_func *tf = &dc_plane_state->in_shaper_func;
 	struct drm_atomic_state *state = plane_state->state;
 	const struct amdgpu_device *adev = drm_to_adev(colorop->dev);
+	bool has_3dlut = adev->dm.dc->caps.color.dpp.hw_3d_lut || adev->dm.dc->caps.color.mpc.preblend;
 	const struct drm_device *dev = colorop->dev;
 	const struct drm_color_lut32 *lut3d;
 	uint32_t lut3d_size;
@@ -1722,7 +1723,7 @@ __set_dm_plane_colorop_3dlut(struct drm_plane_state *plane_state,
 	}
 
 	if (colorop_state && !colorop_state->bypass && colorop->type == DRM_COLOROP_3D_LUT) {
-		if (!adev->dm.dc->caps.color.dpp.hw_3d_lut) {
+		if (!has_3dlut) {
 			drm_dbg(dev, "3D LUT is not supported by hardware\n");
 			return -EINVAL;
 		}
@@ -1875,6 +1876,7 @@ amdgpu_dm_plane_set_colorop_properties(struct drm_plane_state *plane_state,
 	struct drm_colorop *colorop = plane_state->color_pipeline;
 	struct drm_device *dev = plane_state->plane->dev;
 	struct amdgpu_device *adev = drm_to_adev(dev);
+	bool has_3dlut = adev->dm.dc->caps.color.dpp.hw_3d_lut || adev->dm.dc->caps.color.mpc.preblend;
 	int ret;
 
 	/* 1D Curve - DEGAM TF */
@@ -1907,7 +1909,7 @@ amdgpu_dm_plane_set_colorop_properties(struct drm_plane_state *plane_state,
 	if (ret)
 		return ret;
 
-	if (adev->dm.dc->caps.color.dpp.hw_3d_lut) {
+	if (has_3dlut) {
 		/* 1D Curve & LUT - SHAPER TF & LUT */
 		colorop = colorop->next;
 		if (!colorop) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c +2 -1
index a2de3bba83464..cc124ab6aa7f7 100644
@@ -60,6 +60,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 	struct drm_colorop *ops[MAX_COLOR_PIPELINE_OPS];
 	struct drm_device *dev = plane->dev;
 	struct amdgpu_device *adev = drm_to_adev(dev);
+	bool has_3dlut = adev->dm.dc->caps.color.dpp.hw_3d_lut || adev->dm.dc->caps.color.mpc.preblend;
 	int ret;
 	int i = 0;
 
@@ -112,7 +113,7 @@ int amdgpu_dm_initialize_default_pipeline(struct drm_plane *plane, struct drm_pr
 
 	i++;
 
-	if (adev->dm.dc->caps.color.dpp.hw_3d_lut) {
+	if (has_3dlut) {
 		/* 1D curve - SHAPER TF */
 		ops[i] = kzalloc(sizeof(*ops[0]), GFP_KERNEL);
 		if (!ops[i]) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +8 -8
index 9fcd72d87d25b..39fcbc3e702dc 100644
@@ -765,15 +765,15 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
 	dm->adev->mode_info.crtcs[crtc_index] = acrtc;
 
 	/* Don't enable DRM CRTC degamma property for
-	 * 1. Degamma is replaced by color pipeline.
-	 * 2. DCE since it doesn't support programmable degamma anywhere.
-	 * 3. DCN401 since pre-blending degamma LUT doesn't apply to cursor.
+	 * 1. DCE since it doesn't support programmable degamma anywhere.
+	 * 2. DCN401 since pre-blending degamma LUT doesn't apply to cursor.
+	 * Note: DEGAMMA properties are created even if the primary plane has the
+	 * COLOR_PIPELINE property. User space can use either the DEGAMMA properties
+	 * or the COLOR_PIPELINE property. An atomic commit which attempts to enable
+	 * both is rejected.
 	 */
-	if (plane->color_pipeline_property)
-		has_degamma = false;
-	else
-		has_degamma = dm->adev->dm.dc->caps.color.dpp.dcn_arch &&
-			      dm->adev->dm.dc->ctx->dce_version != DCN_VERSION_4_01;
+	has_degamma = dm->adev->dm.dc->caps.color.dpp.dcn_arch &&
+		      dm->adev->dm.dc->ctx->dce_version != DCN_VERSION_4_01;
 
 	drm_crtc_enable_color_mgmt(&acrtc->base, has_degamma ? MAX_COLOR_LUT_ENTRIES : 0,
 				   true, MAX_COLOR_LUT_ENTRIES);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +8 -0
index 7474f1bc1d0b8..44b9c8ca6d719 100644
@@ -1256,6 +1256,14 @@ static int amdgpu_dm_plane_atomic_check(struct drm_plane *plane,
 	if (ret)
 		return ret;
 
+	/* Reject commits that attempt to use both COLOR_PIPELINE and CRTC DEGAMMA_LUT */
+	if (new_plane_state->color_pipeline && new_crtc_state->degamma_lut) {
+		drm_dbg_atomic(plane->dev,
+			       "[PLANE:%d:%s] COLOR_PIPELINE and CRTC DEGAMMA_LUT cannot be enabled simultaneously\n",
+			       plane->base.id, plane->name);
+		return -EINVAL;
+	}
+
 	ret = amdgpu_dm_plane_fill_dc_scaling_info(adev, new_plane_state, &scaling_info);
 	if (ret)
 		return ret;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +1 -1
index 129cd5f849837..da44c1f01bef1 100644
@@ -169,7 +169,7 @@ struct dc_stream_state *dc_create_stream_for_sink(
 	if (sink == NULL)
 		return NULL;
 
-	stream = kzalloc(sizeof(struct dc_stream_state), GFP_KERNEL);
+	stream = kzalloc(sizeof(struct dc_stream_state), GFP_ATOMIC);
 	if (stream == NULL)
 		goto alloc_fail;
 
drivers/gpu/drm/bridge/synopsys/dw-dp.c +3 -1
index 4323424524847..07f7a2e0d9f2a 100644
@@ -2049,7 +2049,9 @@ struct dw_dp *dw_dp_bind(struct device *dev, struct drm_encoder *encoder,
 	bridge->type = DRM_MODE_CONNECTOR_DisplayPort;
 	bridge->ycbcr_420_allowed = true;
 
-	devm_drm_bridge_add(dev, bridge);
+	ret = devm_drm_bridge_add(dev, bridge);
+	if (ret)
+		return ERR_PTR(ret);
 
 	dp->aux.dev = dev;
 	dp->aux.drm_dev = encoder->dev;
drivers/gpu/drm/drm_client_modeset.c +2 -1
index fc4caf7da5fcd..4a72f323e83e3 100644
@@ -930,7 +930,8 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
 	mutex_unlock(&client->modeset_mutex);
 out:
 	kfree(crtcs);
-	modes_destroy(dev, modes, connector_count);
+	if (modes)
+		modes_destroy(dev, modes, connector_count);
 	kfree(modes);
 	kfree(offsets);
 	kfree(enabled);
drivers/gpu/drm/drm_syncobj.c +2 -2
index e1b0fa4000cdd..7eb2cdbc574a0 100644
@@ -900,7 +900,7 @@ drm_syncobj_handle_to_fd_ioctl(struct drm_device *dev, void *data,
 		return drm_syncobj_export_sync_file(file_private, args->handle,
 						    point, &args->fd);
 
-	if (args->point)
+	if (point)
 		return -EINVAL;
 
 	return drm_syncobj_handle_to_fd(file_private, args->handle,
@@ -934,7 +934,7 @@ drm_syncobj_fd_to_handle_ioctl(struct drm_device *dev, void *data,
 							  args->handle,
[… more lines in the raw message]

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

drivers/gpu/drm/imx/ipuv3/parallel-display.c +3 -1
index 6fbf505d2801d..590120a33fa07 100644

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

drivers/gpu/drm/logicvc/logicvc_drm.c +2 -2
index 204b0fee55d0b..bbebf4fc7f51a 100644

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

drivers/gpu/drm/scheduler/sched_main.c +1 -0
index 1d4f1b822e7b7..2d70c06113cfe 100644

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

drivers/gpu/drm/solomon/ssd130x.c +2 -4
index 96cf393201372..33ceed86ed362 100644

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

drivers/gpu/drm/tiny/sharp-memory.c +2 -2
index 64272cd0f6e22..cbf69460ebf32 100644

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

drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +2 -2
index 3057f8baa7d25..e1f18020170ab 100644

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

drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c +8 -1
index fd4e76486f2d1..45561bc1c9eff 100644

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

drivers/gpu/drm/xe/regs/xe_engine_regs.h +6 -0
index 68172b0248a6e..dc5a4fafa70cf 100644

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

drivers/gpu/drm/xe/xe_configfs.c +1 -0
index 82edd04660055..4afdfd69899aa 100644

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

drivers/gpu/drm/xe/xe_exec_queue.c +11 -12
index 779d7e7e2d2ec..1e774fa1fa190 100644

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

drivers/gpu/drm/xe/xe_gsc_proxy.c +35 -8

43 lines not on this page · raw message

drivers/gpu/drm/xe/xe_gsc_types.h +2 -0
index 97c056656df05..5aaa2a75861fd 100644

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

drivers/gpu/drm/xe/xe_gt.c +54 -12

66 lines not on this page · raw message

drivers/gpu/drm/xe/xe_lrc.h +2 -1
index 2fb628da5c433..96ae31df3359f 100644

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

drivers/gpu/drm/xe/xe_reg_sr.c +3 -1
index fc8447a838c4f..6b9edc7ca4115 100644

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

drivers/gpu/drm/xe/xe_ring_ops.c +9 -0
index ac0c6dcffe156..803c652f5af91 100644

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

drivers/hid/hid-cmedia.c +1 -1
index 528d7f3612157..8bf5649b0c793 100644

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

drivers/hid/hid-creative-sb0540.c +1 -1
index b4c8e7a5d3e02..dfd6add353d19 100644

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

drivers/hid/hid-multitouch.c +38 -5

43 lines not on this page · raw message

drivers/hid/hid-zydacron.c +1 -1
index 3bdb26f455925..1aae80f848f50 100644

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

drivers/hid/usbhid/hid-pidff.c +7 -4
index a4e700b40ba9b..56d6af39ba81e 100644

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

drivers/hwmon/aht10.c +4 -2
index 007befdba9776..4ce019d2cc80e 100644

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

drivers/hwmon/it87.c +4 -1
index e233aafa8856c..5cfb98a0512f0 100644

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

drivers/hwmon/macsmc-hwmon.c +27 -26

53 lines not on this page · raw message

drivers/hwmon/max6639.c +1 -1
index 99140a2ca9955..48fde4f1a1561 100644

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

drivers/i2c/busses/i2c-i801.c +10 -4
index 9e1789725edf7..32a3cef02c7b5 100644

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

drivers/infiniband/hw/ionic/ionic_controlpath.c +1 -1
index ea12d9b8e125f..83573721af2c0 100644

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

drivers/infiniband/hw/irdma/verbs.c +1 -1
index 6d9af41a2884a..68fb81b7bd221 100644

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

drivers/infiniband/hw/mthca/mthca_provider.c +3 -2
index dd572d76866c2..e095873b381b6 100644

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

drivers/irqchip/irq-ls-extirq.c +4 -2
index 96f9c20621cf5..d724fe8439801 100644

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

drivers/irqchip/irq-sifive-plic.c +6 -1
index 60fd8f91762b1..70058871d2fb6 100644

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

drivers/media/dvb-core/dmxdev.c +3 -1
index 17184b3674904..9aaae55ce7b4e 100644

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

drivers/net/bonding/bond_main.c +7 -2
index 4c58d1dafcacb..739e6eea6b529 100644

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

drivers/net/bonding/bond_options.c +2 -0
index f1c6e9d8f6167..adc216df43459 100644

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

drivers/net/can/dummy_can.c +1 -0
index 41953655e3d3c..cd23de488edce 100644

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

drivers/net/can/spi/mcp251x.c +14 -1
index fa97adf25b734..bb7782582f401 100644

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

drivers/net/can/usb/ems_usb.c +6 -1
index 4c219a5b139bb..9b25dda7c1838 100644

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

drivers/net/can/usb/etas_es58x/es58x_core.c +7 -1
index 2d248deb69dc1..b259f61098083 100644

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

drivers/net/can/usb/f81604.c +40 -5

45 lines not on this page · raw message

drivers/net/can/usb/ucan.c +1 -1
index de61d9da99e35..87ddeff0937fb 100644

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

drivers/net/dsa/realtek/rtl8365mb.c +1 -1
index c575e164368c8..f938a3f701cc9 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-common.h +1 -1
index 62b01de93db49..826c5caa70d71 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-drv.c +0 -10
index b5a60a0488967..20ce2ed4cd9f7 100644

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

drivers/net/ethernet/amd/xgbe/xgbe-main.c +0 -1
index d1f0419edb234..7d45ea22a02e2 100644

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

drivers/net/ethernet/amd/xgbe/xgbe.h +0 -3
index 03ef0f5484830..4ba23779b2b7e 100644

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

drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +2 -1
index 78e21b46a5ba8..e212a014c8d41 100644

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

drivers/net/ethernet/freescale/enetc/enetc.c +1 -1
index e380a4f398556..9fdd448e602f1 100644

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

drivers/net/ethernet/google/gve/gve_tx_dqo.c +25 -31

56 lines not on this page · raw message

drivers/net/ethernet/intel/e1000e/defines.h +1 -0
index ba331899d1861..d4a1041e456dc 100644

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

drivers/net/ethernet/intel/e1000e/ich8lan.c +9 -0
index 0ff8688ac3b84..2dceb5548a786 100644

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

drivers/net/ethernet/intel/i40e/i40e_main.c +24 -17

41 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_trace.h +1 -1
index 759f3d1c4c8f0..dde0ccd789ed1 100644

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

drivers/net/ethernet/intel/i40e/i40e_txrx.c +3 -2
index cc0b9efc2637a..816179c7e2712 100644

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

drivers/net/ethernet/intel/iavf/iavf_main.c +16 -1
index 4b0fc8f354bc9..53a0366fbf998 100644

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

drivers/net/ethernet/intel/ice/ice.h +1 -0
index 00f75d87c73f9..15a7fcd888b26 100644

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

drivers/net/ethernet/intel/ice/ice_base.c +14 -24
index eadb1e3d12b3a..5a6da2d501213 100644

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

drivers/net/ethernet/intel/ice/ice_common.c +1 -1
index 785bf5cc1b25e..a400bf4f239aa 100644

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

drivers/net/ethernet/intel/ice/ice_ethtool.c +14 -2
index 3565a5d96c6d1..1b343c53874e1 100644

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

drivers/net/ethernet/intel/ice/ice_idc.c +34 -10

44 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_lib.c +10 -5
index d47af94f31a99..bad67e4dc044f 100644

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

drivers/net/ethernet/intel/ice/ice_main.c +6 -1
index d04605d3e61af..dddf1ae31952d 100644

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

drivers/net/ethernet/intel/ice/ice_txrx.c +3 -1
index ad76768a42323..f47b96ceb9a47 100644

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

drivers/net/ethernet/intel/ice/ice_xsk.c +3 -0
index 989ff1fd91103..102631398af3c 100644

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

drivers/net/ethernet/intel/idpf/idpf_ethtool.c +0 -3
index 2efa3c08aba5c..49cefb973f4da 100644

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

drivers/net/ethernet/intel/idpf/idpf_txrx.c +4 -4
index f58f616d87fc4..d365564831b0b 100644

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

drivers/net/ethernet/intel/igb/igb_xsk.c +30 -8
index 30ce5fbb5b776..ce4a7b58cad2f 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +24 -10
index 89a321a344d26..4439eeb378c1f 100644

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

drivers/net/ethernet/intel/igc/igc_ptp.c +2 -1
index 7aae83c108fd7..44ee193867661 100644

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

drivers/net/ethernet/intel/libie/fwlog.c +4 -0
index f39cc11cb7c56..5d890d9d3c4d5 100644

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

drivers/net/ethernet/marvell/octeon_ep/octep_main.c +28 -12
index 57db7ea2f5be9..16f52d4b11e91 100644

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

drivers/net/ethernet/marvell/octeon_ep/octep_rx.c +19 -8
index f2a7c6a76c742..74de19166488f 100644

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

drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c +28 -10
index 1d9760b4b8f47..a3c359124887e 100644

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

drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_rx.c +20 -8
index 6f865dbbba6c6..b579d5b545c46 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +12 -3
index e68997a29191b..8d3e15bc867d2 100644

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

drivers/net/ethernet/stmicro/stmmac/common.h +0 -1
index 49df46be36699..9ebaddffa5b25 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +0 -4
index aad1be1ec4c11..92d77b0c2f54b 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +0 -7
index c05e3e7a539cf..a5203101268ba 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac.h +1 -2
index 012b0a477255d..78a18384e5d00 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +47 -42

89 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +0 -8
index 8979a50b55070..5c9fd91a1db9d 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_vlan.c +31 -29

60 lines not on this page · raw message

drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
index 5924db6be3fea..9679180504330 100644

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

drivers/net/ethernet/ti/cpsw_ale.c +4 -5
index fbe35af615a6f..9632ad3741de1 100644

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

drivers/net/ethernet/ti/icssg/icssg_prueth.c +8 -0
index f65041662173c..2c6e161225f6a 100644

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

drivers/net/phy/phy_device.c +17 -8
index 81984d4ebb7cb..a1ed7ed938ac5 100644

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

drivers/net/usb/kalmia.c +7 -0
index 613fc6910f148..ee9c48f7f68f9 100644

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

drivers/net/usb/kaweth.c +13 -0
index e01d14f6c3667..cb2472b59e104 100644

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

drivers/net/usb/pegasus.c +12 -1
index 0f16a133c75d1..475b066081c7f 100644

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

drivers/net/vxlan/vxlan_core.c +5 -0
index e957aa12a8a44..2a140be86bafc 100644

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

drivers/net/wireless/marvell/libertas/main.c +2 -2
index d44e02c6fe385..dd97f1b61f4d1 100644

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

drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +1 -0
index 3304b5971be09..b41ca1410da92 100644

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

drivers/net/wireless/mediatek/mt76/mt7925/mac.c +1 -0
index 871b67101976a..0d94359004233 100644

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

drivers/net/wireless/mediatek/mt76/mt7996/mac.c +1 -0
index 2560e2f46e89a..d4f3ee943b472 100644

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

drivers/net/wireless/rsi/rsi_91x_mac80211.c +1 -1
index 8c8e074a3a705..c7ae8031436ae 100644

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

drivers/net/wireless/st/cw1200/pm.c +2 -0
index 2002e3f9fe45b..b656afe65db07 100644

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

drivers/net/wireless/ti/wlcore/main.c +2 -2
index 12f0167d7380e..1f6b906594930 100644

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

drivers/nfc/pn533/usb.c +1 -0
index 018a80674f06e..0f12f86ebb023 100644

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

drivers/nvme/host/core.c +7 -0
index 7bf228df6001f..3fdcd73b95468 100644

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

drivers/nvme/host/multipath.c +5 -7
index 174027d1cc198..5e41fbaf5f46a 100644

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

drivers/nvme/host/pr.c +2 -2
index ad2ecc2f49a97..fe7dbe2648158 100644

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

drivers/nvme/target/fcloop.c +11 -4
index c30e9a3e014fb..38bd2db3d6bbe 100644

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

drivers/pci/controller/dwc/pcie-designware-ep.c +16 -9
index 59fd6ebf01489..7ebb01fa5076f 100644

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

drivers/pinctrl/cirrus/pinctrl-cs42l43.c +2 -3
index a8f82104a3842..227c37c360e19 100644

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

drivers/pinctrl/meson/pinctrl-amlogic-a4.c +69 -1

70 lines not on this page · raw message

drivers/pinctrl/pinconf-generic.c +2 -71

73 lines not on this page · raw message

drivers/pinctrl/pinctrl-equilibrium.c +19 -12
index 48b55c5bf8d4f..ba1c867b7b891 100644

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

drivers/pinctrl/qcom/pinctrl-qcs615.c +1 -0
index 4dfa820d4e77c..f1c827ddbfbfa 100644

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

drivers/platform/x86/dell/alienware-wmi-wmax.c +1 -1
index e69b50162bb1b..d1b4df91401b1 100644

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

drivers/platform/x86/dell/dell-wmi-base.c +6 -0
index 28076929d6af5..907f1da01c8db 100644

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

drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c +0 -1
index 86ec962aace9b..e586f7957946b 100644

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

drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c +6 -3
index f346aad8e9d89..af4d1920d4880 100644

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

drivers/platform/x86/lenovo/thinkpad_acpi.c +4 -2
index cc19fe520ea96..075543cd0e77e 100644

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

drivers/regulator/bq257xx-regulator.c +1 -2
index fc1ccede44688..dab8f1ab44503 100644

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

drivers/regulator/fp9931.c +3 -4
index 7fbcc6327cc63..abea3b69d8a08 100644

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

drivers/regulator/mt6363-regulator.c +1 -3
index 03af5fa536007..0aebcbda0a196 100644

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

drivers/scsi/lpfc/lpfc_init.c +2 -0
index b1460b16dd91d..c6bb45c3d4c4a 100644

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

drivers/scsi/lpfc/lpfc_sli.c +30 -6
index 73d77cfab5f82..bddfc412b04b5 100644

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

drivers/scsi/lpfc/lpfc_sli4.h +3 -0
index fd6dab1578872..40f313e2769fc 100644

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

drivers/scsi/pm8001/pm8001_sas.c +3 -2
index 6a8d35aea93a5..645524f3fe2d0 100644

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

drivers/scsi/scsi_scan.c +1 -0
index 7acbfcfc2172e..c64ef71633d82 100644

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

drivers/spi/spi-stm32.c +3 -0
index 80986bd251d29..7a6ee93be9bd4 100644

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

drivers/target/target_core_configfs.c +6 -9
index f7868b41c5e61..749af4a29a715 100644

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

drivers/ufs/core/ufshcd.c +29 -9
index 09f0d77d57f02..80fafad339c75 100644

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

drivers/usb/gadget/function/f_ncm.c +63 -65

128 lines not on this page · raw message

drivers/usb/gadget/function/u_ether.c +45 -0

45 lines not on this page · raw message

drivers/usb/gadget/function/u_ether.h +30 -0
index 34be220cef77c..a212a8ec5eb1b 100644

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

drivers/usb/gadget/function/u_ether_configfs.h +176 -0

176 lines not on this page · raw message

drivers/usb/gadget/function/u_ncm.h +3 -1
index 49ec095cdb4b6..d99330fe31e88 100644

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

drivers/xen/xen-acpi-processor.c +2 -5
index f2e8eaf684ba6..8d1860bd5d578 100644

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

fs/btrfs/delayed-inode.c +1 -1
index 4b7d9015e0dad..7e3d294a6dced 100644

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

fs/btrfs/disk-io.c +3 -3
index 2833b44f4b4f2..6d2dcd023cc6f 100644

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

fs/btrfs/inode.c +1 -1
index a2b5b440637e6..827554963a7c8 100644

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

fs/btrfs/ioctl.c +6 -1
index acb484546b1da..c9284ce6c6e78 100644

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

fs/btrfs/scrub.c +1 -1
index a40ee41f42c68..4fc69b2d213a6 100644

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

fs/btrfs/tree-checker.c +2 -2
index c21c21adf61ed..12d6ae49bc078 100644

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

fs/eventpoll.c +3 -2
index 6c36d9dc6926f..d20917b03161b 100644

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

fs/namespace.c +15 -5
index ecf0e72ce6cfd..9e5e3f1db02f9 100644

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

fs/netfs/direct_write.c +212 -16

228 lines not on this page · raw message

fs/netfs/internal.h +3 -1
index 4319611f53544..d436e20d34185 100644

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

fs/netfs/write_collect.c +0 -21
index 61eab34ea67ef..83eb3dc1adf8a 100644

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

fs/netfs/write_issue.c +3 -38

41 lines not on this page · raw message

fs/nfsd/nfsctl.c +1 -1
index 084fc517e9e16..ec9782fd4a367 100644

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

fs/smb/client/connect.c +0 -1
index 60c76375f0f50..9d082f8bfa4ae 100644

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

fs/smb/client/smb2inode.c +5 -3
index 2ded3246600c0..5ebcc68560a06 100644

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

fs/smb/client/smb2pdu.c +11 -13
index 758d6f4256726..bf4a13acc8b86 100644

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

fs/smb/client/transport.c +10 -11
index 3b34c3f4da2df..67aee82e98860 100644

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

fs/smb/server/Kconfig +1 -0
index 2775162c535c6..12594879cb640 100644

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

fs/smb/server/auth.c +3 -1
index 09af55b71153e..a69e8694605aa 100644

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

fs/smb/server/smb2pdu.c +3 -2
index 1022d794bd232..b682e8160504a 100644

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

fs/squashfs/cache.c +3 -0
index 181260e72680c..92fb857d2c761 100644

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

fs/xfs/scrub/orphanage.c +6 -1
index 4e550a1d5353b..3fa78bfe5f663 100644

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

fs/xfs/xfs_notify_failure.c +2 -2
index b176728899420..0700a723f38e7 100644

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

include/asm-generic/vmlinux.lds.h +3 -1
index 8ca130af301fc..7b38ec8dc8dd3 100644

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

include/linux/indirect_call_wrapper.h +11 -7
index 35227d47cfc98..dc272b514a01b 100644

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

include/linux/netdevice.h +22 -5
index d99b0fbc1942a..6655b0c6e42b4 100644

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

include/linux/pinctrl/pinconf-generic.h +0 -5
index 1be4032071c23..89277808ea614 100644

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

include/linux/ring_buffer.h +1 -0
index 876358cfe1b12..d862fa610270b 100644

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

include/linux/sched.h +1 -0
index 5f00b5ed0f3b7..eb1c4c347a5cf 100644

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

include/linux/stmmac.h +0 -1
index f1054b9c2d8ac..0c26ccfeeb8d8 100644

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

include/linux/tnum.h +8 -0
index c52b862dad45b..ca2cfec8de08a 100644

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

include/linux/uaccess.h +20 -34

54 lines not on this page · raw message

include/net/bonding.h +1 -0
index 4620784035570..99c1bdadcd11a 100644

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

include/net/inet6_hashtables.h +1 -1
index 282e29237d936..c16de5b7963fd 100644

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

include/net/inet_hashtables.h +1 -1
index ac05a52d9e138..5a979dcab5383 100644

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

include/net/ip.h +1 -1
index 69d5cef460040..7f9abd457e018 100644

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

include/net/ip_fib.h +1 -1
index b4495c38e0a01..318593743b6e1 100644

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

include/net/netfilter/nf_tables.h +7 -4
index 05f57ba622447..c18cffafc9696 100644

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

include/net/sch_generic.h +10 -0
index c3a7268b567e0..d5d55cb21686d 100644

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

include/net/secure_seq.h +38 -7

45 lines not on this page · raw message

include/net/tc_act/tc_ife.h +1 -3
index c7f24a2da1cad..24d4d5a62b3c2 100644

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

include/net/tcp.h +4 -2
index 279ddb923e656..e15e1d0e6f4e2 100644

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

include/net/xdp_sock_drv.h +13 -3
index 242e34f771cca..6b9ebae2dc952 100644

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

include/trace/events/netfs.h +3 -1
index 64a382fbc31a8..2d366be46a1c3 100644

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

include/uapi/drm/drm_fourcc.h +6 -6
index e527b24bd824b..c89aede3cb120 100644

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

include/uapi/linux/pci_regs.h +1 -1
index 3add74ae25948..48b0616ddbbbd 100644

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

io_uring/cmd_net.c +1 -1
index 3db34e2d22ee5..17d499f68fe6d 100644

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

kernel/bpf/cpumap.c +15 -2
index 703e5df1f4ef9..306bf98378041 100644

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

kernel/bpf/devmap.c +38 -9

47 lines not on this page · raw message

kernel/bpf/tnum.c +72 -0

72 lines not on this page · raw message

kernel/bpf/trampoline.c +1 -3
index b9a358d7a78f1..47c70eb451f3a 100644

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

kernel/bpf/verifier.c +97 -6

103 lines not on this page · raw message

kernel/cgroup/cpuset.c +2 -2
index 62e1807b23448..81b3165f1aaa1 100644

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

kernel/events/core.c +62 -21

83 lines not on this page · raw message

kernel/module/main.c +0 -6
index 710ee30b3beab..bcd259505c8b3 100644

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

kernel/rseq.c +3 -2
index 395d8b002350a..6cb5b7e51555d 100644

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

kernel/sched/ext_internal.h +1 -1
index 386c677e4c9a0..11ebb744d8931 100644

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

kernel/sched/fair.c +174 -64

238 lines not on this page · raw message

kernel/sched/sched.h +2 -2
index 1b4283e9edc3b..d3485d48be281 100644

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

kernel/sched/syscalls.c +30 -0
index 6f10db3646e7f..cadb0e9fe19b9 100644

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

kernel/time/jiffies.c +0 -2
index d31a6d40d38dc..11d09cd8037c5 100644

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

kernel/time/timekeeping.c +4 -2
index 91fa2003351c9..c07e562ee4c1a 100644

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

kernel/trace/blktrace.c +1 -2
index c4db5c2e71037..0548e64b08f23 100644

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

kernel/trace/ring_buffer.c +21 -0
index 2f44063c666f2..93f521b89aee1 100644

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

kernel/trace/trace.c +13 -0
index cc93d0e1f1876..bce112e1bbbae 100644

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

kernel/trace/trace_events_trigger.c +3 -0
index 06b75bcfc7b8b..871e7a99d03cb 100644

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

lib/Kconfig.debug +1 -0
index 4bae3b389a9c5..52c7a3a89f088 100644

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

lib/debugobjects.c +18 -1
index 89a1d6745dc2c..12f50de85b621 100644

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

mm/huge_memory.c +3 -0
index 40cf59301c21a..d3beddd8cc30a 100644

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

mm/slub.c +9 -4
index 889c2804bbfeb..b68db0f5a6374 100644

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

net/atm/lec.c +15 -11
index afb8d3eb21850..c39dc5d367979 100644

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

net/bluetooth/hci_sock.c +1 -0
index 4e7bf63af9c5f..0290dea081f62 100644

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

net/bluetooth/hci_sync.c +1 -1
index 334eb4376a266..80b601e344ae3 100644

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

net/bluetooth/iso.c +1 -0
index e36d24a9098b9..0f07f05c15577 100644

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

net/bluetooth/l2cap_sock.c +1 -0
index 66ab2754594d6..bc9760e0abaf8 100644

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

net/bluetooth/sco.c +1 -0
index 87ba90336e803..cccfaf5603174 100644

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

net/bridge/br_device.c +1 -1
index a818fdc22da9a..525d4eccd194a 100644

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

net/bridge/br_input.c +1 -1
index 1405f1061a549..2cbae0f9ae1f0 100644

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

net/bridge/br_private.h +10 -0
index b9b2981c48414..9b55d38ea9edb 100644

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

net/bridge/br_vlan_options.c +23 -3
index 8fa89b04ee942..5514e1fc8d1fa 100644

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

net/can/bcm.c +1 -0
index 7eba8ae01a5b1..ba65e6e8a923a 100644

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

net/core/dev.c +2 -5
index 062415cc3e5a4..994e21a697c39 100644

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

net/core/devmem.c +4 -2
index ec4217d6c0b4f..e9c5d75091800 100644

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

net/core/filter.c +4 -2
index 51318cb40f778..8bbf24c15413e 100644

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

net/core/netpoll.c +1 -1
index 09f72f10813cc..5af14f14a3623 100644

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

net/core/secure_seq.c +29 -51

80 lines not on this page · raw message

net/core/skmsg.c +7 -7
index ddde93dd8bc6d..12fbb0545c712 100644

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

net/ipv4/inet_hashtables.c +4 -4
index f5826ec4bcaa8..46817b4c141b6 100644

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

net/ipv4/syncookies.c +8 -3
index 061751aabc8e1..fc3affd9c8014 100644

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

net/ipv4/sysctl_net_ipv4.c +3 -2
index a1a50a5c80dc1..a96875e32050a 100644

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

net/ipv4/tcp.c +2 -2
index 81666571ecfb5..699212cd6c226 100644

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

net/ipv4/tcp_bpf.c +1 -1
index ca8a5cb8e569d..d3d6a47af5270 100644

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

net/ipv4/tcp_diag.c +1 -1
index d83efd91f461c..7935702e394b2 100644

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

net/ipv4/tcp_input.c +15 -23
index aa4f5bf765596..3e95b36fa2736 100644

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

net/ipv4/tcp_ipv4.c +17 -20
index e4e7bc8782ab6..d27965294aef3 100644

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

net/ipv4/tcp_minisocks.c +1 -1
index 0742a41687ffc..12f69cc285577 100644

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

net/ipv4/udp.c +16 -11
index ee63af0ef42cc..fbdbb65676e0d 100644

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

net/ipv4/udp_bpf.c +1 -1
index 91233e37cd97a..779a3a03762f1 100644

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

net/ipv6/inet6_hashtables.c +2 -1
index 5e1da088d8e11..182d38e6d6d8d 100644

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

net/ipv6/route.c +5 -6
index cd229974b7974..e01331d965313 100644

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

net/ipv6/syncookies.c +8 -3
index 7e007f013ec82..4f6f0d751d6c5 100644

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

net/ipv6/tcp_ipv6.c +17 -20
index 9df81f85ec982..ca68ce16bcbe8 100644

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

net/mac80211/mesh.c +3 -0
index 68901f1def0dd..129e814abe764 100644

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

net/mac80211/mlme.c +3 -0
index 73f57b9e0ebf7..63346ee15069a 100644

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

net/mptcp/pm.c +43 -12

55 lines not on this page · raw message

net/mptcp/pm_kernel.c +9 -0
index 4972c19fc73e2..0ef43993e15ad 100644

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

net/netfilter/nf_tables_api.c +29 -37

66 lines not on this page · raw message

net/netfilter/nft_set_hash.c +1 -0
index 739b992bde591..b0e571c8e3f38 100644

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

net/netfilter/nft_set_pipapo.c +52 -10

62 lines not on this page · raw message

net/netfilter/nft_set_pipapo.h +2 -0
index eaab422aa56ab..9aee9a9eaeb75 100644

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

net/netfilter/nft_set_rbtree.c +15 -64

79 lines not on this page · raw message

net/nfc/nci/core.c +27 -3
index e419e020a70a3..d334b7aa8c172 100644

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

net/nfc/nci/data.c +8 -4
index 78f4131af3cf3..5f98c73db5afd 100644

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

net/nfc/rawsock.c +11 -0
index b049022399aea..f7d7a599fade7 100644

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

net/rds/tcp.c +10 -4
index 3cc2f303bf786..b66dfcc3efaa0 100644

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

net/sched/act_ife.c +44 -49

93 lines not on this page · raw message

net/sched/sch_ets.c +8 -4
index 306e046276d46..a4b07b661b775 100644

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

net/sched/sch_fq.c +1 -0
index 6e5f2f4f24154..b570128ae10a6 100644

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

net/unix/af_unix.c +4 -4
index f6d56e70c7a2c..6965b9a49d68a 100644

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

net/wireless/core.c +1 -0
index 16ccf6fb28b21..381e329e02a4c 100644

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

net/wireless/radiotap.c +2 -2
index 326faea38ca38..c85eaa583a466 100644

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

net/xdp/xsk.c +16 -10
index f093c3453f64c..a6d3938154f21 100644

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

rust/kernel/kunit.rs +8 -0
index 79436509dd73d..8907b6f89ece5 100644

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

sound/hda/codecs/realtek/alc269.c +12 -1
index 36053042ca772..f5719e630d28a 100644

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

sound/hda/codecs/side-codecs/cs35l56_hda.c +1 -1
index f7ba92e119578..32d734bf2fdf8 100644

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

sound/hda/controllers/intel.c +2 -0
index 1b365e0772970..f8919cb521a1a 100644

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

sound/soc/sdca/Kconfig +2 -0
index fabb69a3450d3..87ab2895096c1 100644

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

sound/soc/sdca/sdca_functions.c +4 -1
index e86004c9dea03..d2de9e81b4f9f 100644

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

sound/soc/sdca/sdca_interrupts.c +2 -2
index ff3a7e405fdcb..49b675e601433 100644

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

sound/usb/endpoint.c +6 -3
index 1eaf52d1ae9c7..686f095290673 100644

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

sound/usb/mixer_scarlett2.c +3 -7
index 88b7e42d159e0..7b31504c5f24c 100644

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

sound/usb/qcom/qc_audio_offload.c +1 -1
index cfb30a195364a..297490f0f5874 100644

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

sound/usb/quirks.c +2 -1
index 86c329632e396..a89ea2233180a 100644

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

sound/usb/stream.c +3 -0
index ec7d756d78d17..421e94b233e17 100644

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

sound/usb/usbaudio.h +6 -0
index 79978cae9799c..085530cf62d92 100644

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

sound/usb/validate.c +1 -1
index 4bb4893f6e74f..f62b7cc041dc9 100644

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

tools/objtool/Makefile +5 -3
index 6964175abdfdf..76bcd4e85de34 100644

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

tools/testing/kunit/kunit_kernel.py +4 -2
index 260d8d9aa1db4..2998e1bc088b2 100644

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

tools/testing/kunit/kunit_tool_test.py +26 -0
index bbba921e0eacb..ed45bac1548d9 100755

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

tools/testing/selftests/arm64/abi/hwcap.c +2 -2
index c41640f18e4ec..62ea450f2ccc0 100644

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

tools/testing/selftests/bpf/prog_tests/reg_bounds.c +1 -1
index d93a0c7b1786f..0322f817d07be 100644

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

tools/testing/selftests/bpf/progs/dmabuf_iter.c +1 -1
index 13cdb11fdeb2b..9cbb7442646e5 100644

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

tools/testing/selftests/bpf/progs/exceptions_assert.c +17 -17
index a01c2736890f9..858af5988a38a 100644

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

tools/testing/selftests/bpf/progs/verifier_scalar_ids.c +42 -14

56 lines not on this page · raw message

tools/testing/selftests/bpf/verifier/precise.c +4 -4
index 59a020c356474..ef3ec56672c22 100644

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

tools/testing/selftests/kselftest_harness.h +5 -2
index 16a119a4656c7..4afaef01c22e9 100644

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +49 -0

49 lines not on this page · raw message

tools/testing/selftests/net/mptcp/simult_flows.sh +7 -4
index 806aaa7d2d61d..d11a8b949aab5 100755

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.