Skip to contentSkip to conversation

Linux 6.1.135

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 25, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.135 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

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

 MAINTAINERS                                                       |    1 
 Makefile                                                          |    5 
 arch/arm64/boot/dts/mediatek/mt8173.dtsi                          |    6 
 arch/arm64/include/asm/cputype.h                                  |    4 
 arch/arm64/include/asm/fpsimd.h                                   |    4 
 arch/arm64/include/asm/kvm_host.h                                 |   19 
 arch/arm64/include/asm/kvm_hyp.h                                  |    1 
 arch/arm64/include/asm/processor.h                                |    7 
 arch/arm64/include/asm/spectre.h                                  |    1 
 arch/arm64/kernel/fpsimd.c                                        |   69 ++-
 arch/arm64/kernel/process.c                                       |    2 
 arch/arm64/kernel/proton-pack.c                                   |  218 +++++-----
 arch/arm64/kernel/ptrace.c                                        |    3 
 arch/arm64/kernel/signal.c                                        |    7 
 arch/arm64/kvm/arm.c                                              |    7 
 arch/arm64/kvm/fpsimd.c                                           |   92 +---
 arch/arm64/kvm/hyp/entry.S                                        |    5 
 arch/arm64/kvm/hyp/include/hyp/switch.h                           |  106 +++-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                                |    8 
 arch/arm64/kvm/hyp/nvhe/pkvm.c                                    |   17 
 arch/arm64/kvm/hyp/nvhe/switch.c                                  |   91 ++--
 arch/arm64/kvm/hyp/vhe/switch.c                                   |   12 
 arch/arm64/kvm/reset.c                                            |    3 
 arch/arm64/mm/mmu.c                                               |    3 
 arch/loongarch/kernel/acpi.c                                      |   12 
 arch/loongarch/net/bpf_jit.c                                      |    2 
 arch/loongarch/net/bpf_jit.h                                      |    5 
 arch/mips/dec/prom/init.c                                         |    2 
 arch/mips/include/asm/ds1287.h                                    |    2 
 arch/mips/kernel/cevt-ds1287.c                                    |    1 
 arch/powerpc/kernel/rtas.c                                        |    4 
 arch/riscv/include/asm/kgdb.h                                     |    9 
 arch/riscv/include/asm/syscall.h                                  |    7 
 arch/riscv/kernel/kgdb.c                                          |    6 
 arch/riscv/kernel/setup.c                                         |   36 +
 arch/sparc/mm/tlb.c                                               |    5 
 arch/x86/events/intel/ds.c                                        |    8 
 arch/x86/events/intel/uncore_snbep.c                              |  107 ----
 arch/x86/kernel/cpu/amd.c                                         |    2 
 arch/x86/kernel/cpu/intel.c                                       |   20 
 arch/x86/kernel/e820.c                                            |   17 
 arch/x86/kvm/x86.c                                                |    4 
 arch/x86/platform/pvh/head.S                                      |    7 
 block/blk-cgroup.c                                                |   24 -
 block/blk-cgroup.h                                                |    1 
 block/blk-iocost.c                                                |    7 
 certs/Makefile                                                    |    2 
 certs/extract-cert.c                                              |  138 +++---
 drivers/acpi/platform_profile.c                                   |   20 
 drivers/ata/ahci.c                                                |    2 
 drivers/ata/libata-eh.c                                           |   11 
 drivers/ata/pata_pxa.c                                            |    6 
 drivers/ata/sata_sx4.c                                            |   13 
 drivers/base/devres.c                                             |    7 
 drivers/block/loop.c                                              |    7 
 drivers/bluetooth/btqca.c                                         |   13 
 drivers/bluetooth/btrtl.c                                         |    2 
 drivers/bluetooth/hci_ldisc.c                                     |   19 
 drivers/bluetooth/hci_uart.h                                      |    1 
 drivers/bus/mhi/host/main.c                                       |   16 
 drivers/char/tpm/tpm_tis_core.c                                   |   20 
 drivers/char/tpm/tpm_tis_core.h                                   |    1 
 drivers/clk/qcom/gdsc.c                                           |   61 +-
 drivers/clocksource/timer-stm32-lp.c                              |    4 
 drivers/cpufreq/cpufreq.c                                         |    8 
 drivers/crypto/caam/qi.c                                          |    6 
 drivers/crypto/ccp/sp-pci.c                                       |   15 
 drivers/gpio/gpio-tegra186.c                                      |   27 -
 drivers/gpio/gpio-zynq.c                                          |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                        |   10 
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c                       |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                           |   44 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c                          |   10 
 drivers/gpu/drm/amd/amdkfd/kfd_process.c                          |   17 
 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c            |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                 |   14 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c         |   22 -
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c                 |    2 
 drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c                  |    5 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c             |    4 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c           |    4 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c           |    2 
 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c                 |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c                    |    2 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c                    |    2 
 drivers/gpu/drm/drm_atomic_helper.c                               |    2 
 drivers/gpu/drm/drm_panel.c                                       |    5 
 drivers/gpu/drm/drm_panel_orientation_quirks.c                    |   46 ++
 drivers/gpu/drm/i915/gvt/opregion.c                               |    7 
 drivers/gpu/drm/mediatek/mtk_dpi.c                                |   23 -
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c                             |   72 +--
 drivers/gpu/drm/nouveau/nouveau_bo.c                              |    3 
 drivers/gpu/drm/nouveau/nouveau_gem.c                             |    3 
 drivers/gpu/drm/sti/Makefile                                      |    2 
 drivers/gpu/drm/tiny/repaper.c                                    |    4 
 drivers/hid/usbhid/hid-pidff.c                                    |   60 +-
 drivers/hsi/clients/ssi_protocol.c                                |    1 
 drivers/i2c/busses/i2c-cros-ec-tunnel.c                           |    3 
 drivers/i3c/master.c                                              |    3 
 drivers/i3c/master/svc-i3c-master.c                               |    2 
 drivers/infiniband/core/cma.c                                     |    4 
 drivers/infiniband/core/umem_odp.c                                |    6 
 drivers/infiniband/hw/hns/hns_roce_main.c                         |    2 
 drivers/infiniband/hw/usnic/usnic_ib_main.c                       |   14 
 drivers/iommu/mtk_iommu.c                                         |   26 -
 drivers/md/dm-ebs-target.c                                        |    7 
 drivers/md/dm-integrity.c                                         |    3 
 drivers/md/dm-verity-target.c                                     |    8 
 drivers/md/md-bitmap.c                                            |    5 
 drivers/md/md.c                                                   |   50 +-
 drivers/md/raid10.c                                               |    1 
 drivers/media/common/siano/smsdvb-main.c                          |    2 
 drivers/media/i2c/adv748x/adv748x.h                               |    2 
 drivers/media/i2c/ccs/ccs-core.c                                  |    6 
 drivers/media/i2c/ov7251.c                                        |    4 
 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c |    3 
 drivers/media/platform/qcom/venus/hfi_parser.c                    |  100 +++-
 drivers/media/platform/qcom/venus/hfi_venus.c                     |   18 
 drivers/media/platform/st/stm32/dma2d/dma2d.c                     |    3 
 drivers/media/rc/streamzap.c                                      |   68 +--
 drivers/media/test-drivers/vim2m.c                                |    6 
 drivers/media/v4l2-core/v4l2-dv-timings.c                         |    4 
 drivers/mfd/ene-kb3930.c                                          |    2 
 drivers/misc/pci_endpoint_test.c                                  |    6 
 drivers/mmc/host/dw_mmc.c                                         |   94 ++++
 drivers/mmc/host/dw_mmc.h                                         |   27 +
 drivers/mtd/inftlcore.c                                           |    9 
 drivers/mtd/mtdpstore.c                                           |   12 
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                          |    2 
 drivers/mtd/nand/raw/r852.c                                       |    3 
 drivers/net/dsa/b53/b53_common.c                                  |   10 
 drivers/net/dsa/mv88e6xxx/chip.c                                  |   30 +
 drivers/net/dsa/mv88e6xxx/devlink.c                               |    3 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c                |    1 
 drivers/net/ethernet/google/gve/gve_ethtool.c                     |    4 
 drivers/net/ethernet/intel/igc/igc_defines.h                      |    1 
 drivers/net/ethernet/intel/igc/igc_main.c                         |    1 
 drivers/net/ethernet/intel/igc/igc_ptp.c                          |   93 ++--
 drivers/net/ppp/ppp_synctty.c                                     |    5 
 drivers/net/wireless/atmel/at76c50x-usb.c                         |    2 
 drivers/net/wireless/mediatek/mt76/eeprom.c                       |    4 
 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c                   |    1 
 drivers/net/wireless/ti/wl1251/tx.c                               |    4 
 drivers/ntb/ntb_transport.c                                       |    2 
 drivers/nvme/target/fc.c                                          |   14 
 drivers/nvme/target/fcloop.c                                      |    2 
 drivers/of/irq.c                                                  |   80 ++-
 drivers/pci/controller/pcie-brcmstb.c                             |   13 
 drivers/pci/controller/vmd.c                                      |   12 
 drivers/pci/pci.c                                                 |    4 
 drivers/pci/probe.c                                               |    5 
 drivers/perf/arm_pmu.c                                            |    8 
 drivers/pinctrl/qcom/pinctrl-msm.c                                |   12 
 drivers/platform/x86/asus-laptop.c                                |    9 
 drivers/ptp/ptp_ocp.c                                             |    1 
 drivers/pwm/pwm-fsl-ftm.c                                         |    6 
 drivers/pwm/pwm-mediatek.c                                        |    8 
 drivers/pwm/pwm-rcar.c                                            |   24 -
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c                            |    9 
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c                            |   14 
 drivers/scsi/megaraid/megaraid_sas_base.c                         |    9 
 drivers/scsi/megaraid/megaraid_sas_fusion.c                       |    5 
 drivers/scsi/scsi_transport_iscsi.c                               |    7 
 drivers/scsi/st.c                                                 |    2 
 drivers/soc/samsung/exynos-chipid.c                               |    2 
 drivers/spi/spi-cadence-quadspi.c                                 |    6 
 drivers/thermal/rockchip_thermal.c                                |    1 
 drivers/ufs/host/ufs-exynos.c                                     |    6 
 drivers/vdpa/mlx5/core/mr.c                                       |    7 
 drivers/video/fbdev/omap2/omapfb/dss/dispc.c                      |    6 
 drivers/xen/swiotlb-xen.c                                         |    2 
 drivers/xen/xenfs/xensyms.c                                       |    4 
 fs/Kconfig                                                        |    1 
 fs/btrfs/disk-io.c                                                |   12 
 fs/btrfs/inode.c                                                  |    6 
 fs/btrfs/super.c                                                  |    3 
 fs/btrfs/zoned.c                                                  |    6 
 fs/ext4/inode.c                                                   |   68 ++-
 fs/ext4/namei.c                                                   |    2 
 fs/ext4/super.c                                                   |   17 
 fs/ext4/xattr.c                                                   |   11 
 fs/f2fs/inode.c                                                   |    4 
 fs/f2fs/node.c                                                    |    9 
 fs/file.c                                                         |   26 -
 fs/fuse/virtio_fs.c                                               |    3 
 fs/hfs/bnode.c                                                    |    6 
 fs/hfsplus/bnode.c                                                |    6 
 fs/isofs/export.c                                                 |    2 
 fs/jbd2/journal.c                                                 |    1 
 fs/jfs/jfs_dmap.c                                                 |   10 
 fs/jfs/jfs_imap.c                                                 |    4 
 fs/namespace.c                                                    |    3 
 fs/nfs/Kconfig                                                    |    2 
 fs/nfs/internal.h                                                 |   22 -
 fs/nfs/nfs4session.h                                              |    4 
 fs/nfsd/Kconfig                                                   |    1 
 fs/nfsd/nfs4state.c                                               |    2 
 fs/nfsd/nfsfh.h                                                   |    7 
 fs/smb/client/cifs_dfs_ref.c                                      |   34 +
 fs/smb/client/cifsproto.h                                         |   23 +
 fs/smb/client/connect.c                                           |    2 
 fs/smb/client/dir.c                                               |   21 
 fs/smb/client/file.c                                              |   28 +
 fs/smb/client/fs_context.c                                        |    5 
 fs/smb/client/smb2misc.c                                          |    9 
 fs/smb/server/oplock.c                                            |    2 
 fs/smb/server/smb2pdu.c                                           |    6 
 fs/smb/server/transport_ipc.c                                     |    7 
 fs/smb/server/vfs.c                                               |    3 
 include/linux/backing-dev.h                                       |    1 
 include/linux/bpf.h                                               |    1 
 include/linux/nfs.h                                               |   13 
 include/linux/rtnetlink.h                                         |   22 +
 include/linux/tpm.h                                               |    1 
 include/net/sctp/structs.h                                        |    3 
 include/uapi/linux/kfd_ioctl.h                                    |    2 
 include/uapi/linux/landlock.h                                     |    2 
 include/xen/interface/xen-mca.h                                   |    2 
 io_uring/kbuf.c                                                   |    2 
 io_uring/net.c                                                    |    2 
 kernel/bpf/core.c                                                 |   19 
 kernel/bpf/syscall.c                                              |   17 
 kernel/locking/lockdep.c                                          |    3 
 kernel/sched/cpufreq_schedutil.c                                  |   18 
 kernel/trace/ftrace.c                                             |    1 
 kernel/trace/trace_events.c                                       |    4 
 kernel/trace/trace_events_filter.c                                |    4 
 lib/sg_split.c                                                    |    2 
 lib/string.c                                                      |   13 
 mm/filemap.c                                                      |    1 
 mm/gup.c                                                          |    6 
 mm/memory-failure.c                                               |   11 
 mm/memory.c                                                       |    4 
 mm/rmap.c                                                         |    2 
 mm/vmscan.c                                                       |    2 
 net/8021q/vlan_dev.c                                              |   31 -
 net/bluetooth/hci_event.c                                         |    5 
 net/bluetooth/l2cap_core.c                                        |    3 
 net/bridge/br_vlan.c                                              |    4 
 net/core/filter.c                                                 |   80 ++-
 net/core/page_pool.c                                              |    8 
 net/dsa/tag_8021q.c                                               |    2 
 net/ethtool/netlink.c                                             |    8 
 net/ipv6/route.c                                                  |    8 
 net/mac80211/iface.c                                              |    3 
 net/mac80211/mesh_hwmp.c                                          |   14 
 net/mctp/af_mctp.c                                                |    3 
 net/mptcp/sockopt.c                                               |   28 +
 net/mptcp/subflow.c                                               |   19 
 net/netfilter/nft_set_pipapo_avx2.c                               |    3 
 net/openvswitch/flow_netlink.c                                    |    3 
 net/sched/cls_api.c                                               |   74 ++-
 net/sched/sch_codel.c                                             |    5 
 net/sched/sch_fq_codel.c                                          |    6 
 net/sched/sch_sfq.c                                               |   66 ++-
 net/sctp/socket.c                                                 |   22 -
 net/sctp/transport.c                                              |    2 
 net/tipc/link.c                                                   |    1 
 net/tls/tls_main.c                                                |    6 
 scripts/sign-file.c                                               |  132 +++---
 scripts/ssl-common.h                                              |   32 +
 security/landlock/errata.h                                        |   87 +++
 security/landlock/setup.c                                         |   30 +
 security/landlock/setup.h                                         |    3 
 security/landlock/syscalls.c                                      |   22 -
 sound/pci/hda/hda_intel.c                                         |   44 +-
 sound/pci/hda/patch_realtek.c                                     |    1 
 sound/soc/amd/yc/acp6x-mach.c                                     |    7 
 sound/soc/codecs/lpass-wsa-macro.c                                |  117 +++--
 sound/soc/fsl/fsl_audmix.c                                        |   16 
 sound/soc/qcom/qdsp6/q6apm-dai.c                                  |    9 
 sound/soc/qcom/qdsp6/q6asm-dai.c                                  |   19 
 sound/usb/midi.c                                                  |   80 +++
 tools/power/cpupower/bench/parse.c                                |    4 
 tools/testing/ktest/ktest.pl                                      |    8 
 tools/testing/radix-tree/linux.c                                  |    4 
 tools/testing/selftests/futex/functional/futex_wait_wouldblock.c  |    2 
 tools/testing/selftests/landlock/base_test.c                      |   46 ++
 tools/testing/selftests/net/mptcp/mptcp_connect.c                 |    7 
 279 files changed, 2897 insertions(+), 1409 deletions(-)

Abdun Nihaal (3):

      wifi: at76c50x: fix use after free access in at76_disconnect
      wifi: wl1251: fix memory leak in wl1251_tx_work
      cxgb4: fix memory leak in cxgb4_init_ethtool_filters() error path

Abhinav Kumar (1):
drm: allow encoder mode_set even when connectors change for crtc

Akhil P Oommen (1):
drm/msm/a6xx: Fix stale rpmh votes from GPU

Alex Williamson (2):
Revert "PCI: Avoid reset when disabled via sysfs"
mm: Fix is_zero_page() usage in try_grab_page()

Alexandra Diupina (1):
cifs: avoid NULL pointer dereference in dbg call

Alexandre Torgue (1):
clocksource/drivers/stm32-lptimer: Use wakeup capable instead of init wakeup

Alexey Klimov (1):
ASoC: qdsp6: q6asm-dai: fix q6asm_dai_compr_set_params error path

Andreas Gruenbacher (1):
writeback: fix false warning in inode_to_wb()

Andrew Wyatt (5):
drm: panel-orientation-quirks: Add support for AYANEO 2S
drm: panel-orientation-quirks: Add quirks for AYA NEO Flip DS and KB
drm: panel-orientation-quirks: Add quirk for AYA NEO Slide
drm: panel-orientation-quirks: Add new quirk for GPD Win 2
drm: panel-orientation-quirks: Add quirk for OneXPlayer Mini (Intel)

Andrii Nakryiko (1):
bpf: avoid holding freeze_mutex during mmap operation

AngeloGioacchino Del Regno (2):
drm/mediatek: mtk_dpi: Move the input_2p_en bit to platform data drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off

Ard Biesheuvel (1):
x86/pvh: Call C code via the kernel virtual mapping

Arnaud Lecomte (1):
net: ppp: Add bound checking for skb data on ppp_sync_txmung

Arnd Bergmann (1):
media: mediatek: vcodec: mark vdec_vp9_slice_map_counts_eob_coef noinline

Arseniy Krasnov (2):
Bluetooth: hci_uart: fix race during initialization
Bluetooth: hci_uart: Fix another race during initialization

Artem Sadovnikov (1):
ext4: fix off-by-one error in do_split

Ayush Jain (1):
ktest: Fix Test Failures Due to Missing LOG_FILE Directories

Baoquan He (1):
mm/gup: fix wrongly calculated returned value in fault_in_safe_writeable()

Bhupesh (1):
ext4: ignore xattrs past end

Björn Töpel (1):
riscv: Properly export reserved regions in /proc/iomem

Boqun Feng (1):
locking/lockdep: Decrease nr_unused_locks if lock unused in zap_class()

Boris Burkov (1):
btrfs: fix qgroup reserve leaks in cow_file_range

Bryan O'Donoghue (2):
clk: qcom: gdsc: Release pm subdomains in reverse add order
clk: qcom: gdsc: Capture pm_genpd_add_subdomain result code

Chandrakanth Patil (1):
scsi: megaraid_sas: Block zero-length ATA VPD inquiry

Chao Yu (2):
f2fs: don't retry IO for corrupted data scenario
f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks()

Chen-Yu Tsai (1):
arm64: dts: mediatek: mt8173: Fix disp-pwm compatible string

ChenXiaoSong (1):
smb/server: fix potential null-ptr-deref of lease_ctx_info in smb2_open()

Chengchang Tang (1):
RDMA/hns: Fix wrong maximum DMA segment size

Chenyuan Yang (2):
soc: samsung: exynos-chipid: Add NULL pointer check in exynos_chipid_probe()
mfd: ene-kb3930: Fix a potential NULL pointer dereference

Chris Bainbridge (1):
drm/nouveau: prime: fix ttm_bo_delayed_delete oops

Christian König (1):
drm/amdgpu: grab an additional reference on the gang fence v2

Christopher S M Hall (4):
igc: fix PTM cycle trigger logic
igc: move ktime snapshot into PTM retry loop
igc: handle the IGC_PTP_ENABLED flag correctly
igc: cleanup PTP module if probe fails

Chunjie Zhu (1):
smb3 client: fix open hardlink on deferred close file error

Cong Wang (1):

      codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()

Dan Carpenter (1):
Bluetooth: btrtl: Prevent potential NULL dereference

Daniel Kral (1):
ahci: add PCI ID for Marvell 88SE9215 SATA Controller

Daniel Wagner (1):
nvmet-fcloop: swap list_add_tail arguments

Dapeng Mi (1):
perf/x86/intel: Allow to update user space GPRs from PEBS records

David Hildenbrand (1):
mm/rmap: reject hugetlb folios in folio_make_device_exclusive()

David Yat Sin (1):
drm/amdkfd: clamp queue size to minimum

Denis Arefev (8):
asus-laptop: Fix an uninitialized variable
ksmbd: Prevent integer overflow in calculation of deadtime drm/amd/pm: Prevent division by zero drm/amd/pm/powerplay: Prevent division by zero drm/amd/pm/smu11: Prevent division by zero drm/amd/pm/powerplay/hwmgr/smu7_thermal: Prevent division by zero drm/amd/pm/swsmu/smu13/smu_v13_0: Prevent division by zero drm/amd/pm/powerplay/hwmgr/vega20_thermal: Prevent division by zero

Dmitry Baryshkov (1):
Bluetooth: qca: simplify WCN399x NVM loading

Douglas Anderson (6):
arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
arm64: cputype: Add MIDR_CORTEX_A76AE
arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists

Edward Adam Davis (3):
jfs: Prevent copying of nlink with value 0 from disk inode
jfs: add sanity check for agwidth in dbMount
isofs: Prevent the use of too small fid

Edward Liaw (1):
selftests/futex: futex_waitv wouldblock test should fail

Eric Biggers (1):
nfs: add missing selections of CONFIG_CRC32

Fedor Pchelkin (1):
ntb: use 64-bit arithmetic for the MSI doorbell mask

Filipe Manana (1):
btrfs: fix non-empty delayed iputs list on unmount due to compressed write workers

Florian Westphal (1):
nft_set_pipapo: fix incorrect avx2 match of 5th field octet

Frédéric Danis (1):
Bluetooth: l2cap: Check encryption key size on incoming connection

Fuad Tabba (1):
KVM: arm64: Calculate cptr_el2 traps on activating traps

Gabriele Paoloni (1):
tracing: fix return value in __ftrace_event_enable_disable for TRACE_REG_UNREGISTER

Gang Yan (1):
mptcp: fix NULL pointer in can_accept_new_subflow

Gavrilov Ilia (1):
wifi: mac80211: fix integer overflow in hwmp_route_info_get()

Geliang Tang (1):
selftests: mptcp: close fd_in before returning in main_loop

Greg Kroah-Hartman (3):
Revert "Xen/swiotlb: mark xen_swiotlb_fixup() __init" Revert "LoongArch: BPF: Fix off-by-one error in build_prologue()" Linux 6.1.135

Guixin Liu (1):
gpio: tegra186: fix resource handling in ACPI probe path

Haisu Wang (1):
btrfs: fix the length of reserved qgroup to free

Haoxiang Li (1):
wifi: mt76: Add check for devm_kstrdup()

Henry Martin (1):
ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()

Herbert Xu (1):
crypto: caam/qi - Fix drv_ctx refcount bug

Hersen Wu (1):
drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links

Icenowy Zheng (1):
wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table

Ido Schimmel (1):
ipv6: Align behavior across nexthops during path selection

Ilya Maximets (1):
net: openvswitch: fix nested key length validation in the set() action

Jakub Kicinski (1):
net: tls: explicitly disallow disconnect

Jamal Hadi Salim (1):
rtnl: add helper to check if rtnl group has listeners

Jan Beulich (1):
xenfs/xensyms: respect hypervisor's "next" indication

Jan Kara (1):

      jbd2: remove wrong sb->s_sequence check

Jan Stancek (3):
sign-file,extract-cert: move common SSL helper functions to a header sign-file,extract-cert: avoid using deprecated ERR_get_error_line() sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3

Jani Nikula (1):
drm/i915/gvt: fix unterminated-string-initialization warning

Jann Horn (1):
ext4: don't treat fhandle lookup of ea_inode as FS corruption

Jason Xing (1):
page_pool: avoid infinite loop to schedule delayed worker

Jeff Hugo (1):
bus: mhi: host: Fix race between unprepare and queue_buf

Jeff Layton (1):
nfs: move nfs_fhandle_hash to common include file

Jens Axboe (1):
io_uring/kbuf: reject zero sized provided buffers

Jiasheng Jiang (3):
media: platform: stm32: Add check for clk_enable()
mtd: Add check for devm_kcalloc()
mtd: Replace kcalloc() with devm_kcalloc()

Johannes Berg (1):
Revert "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"

Johannes Kimmel (1):
btrfs: correctly escape subvol in btrfs_show_options()

Johannes Thumshirn (2):
btrfs: zoned: fix zone activation with missing devices
btrfs: zoned: fix zone finishing with missing devices

Jonas Gorski (2):
net: b53: enable BPDU reception for management port
net: bridge: switchdev: do not notify new brentries as changed

Jonathan McDowell (2):
tpm, tpm_tis: Workaround failed command reception on Infineon devices tpm, tpm_tis: Fix timeout handling when waiting for TPM status

Josh Poimboeuf (1):
pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()

Joshua Washington (1):
gve: handle overflow when reporting TX consumed descriptors

Kai Mäkisara (1):
scsi: st: Fix array overflow in st_setup()

Kaixin Wang (1):
HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition

Kamal Dasu (1):
mtd: rawnand: brcmnand: fix PM resume warning

Kan Liang (3):
perf/x86/intel/uncore: Fix the scale of IIO free running counters on SNR perf/x86/intel/uncore: Fix the scale of IIO free running counters on ICX perf/x86/intel/uncore: Fix the scale of IIO free running counters on SPR

Karina Yankevich (1):
media: v4l2-dv-timings: prevent possible overflow in v4l2_detect_gtf()

Kaustabh Chakraborty (1):
mmc: dw_mmc: add a quirk for accessing 64-bit FIFOs in two halves

Kees Cook (1):
xen/mcelog: Add __nonstring annotations for unterminated strings

Kirill A. Shutemov (1):
mm: fix apply_to_existing_page_range()

Krzysztof Kozlowski (1):
gpio: zynq: Fix wakeup source leaks on device unbind

Kunihiko Hayashi (3):
misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error
misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error
misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type

Leonid Arapov (1):
fbdev: omapfb: Add 'plane' value check

Li Lingfeng (1):
nfsd: decrease sc_count directly if fail to queue dl_recall

Li Nan (1):
blk-iocost: do not WARN if iocg was already offlined

Louis-Alexis Eyraud (1):
iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group

Luca Ceresoli (1):
drm/bridge: panel: forbid initializing a panel with unknown connector type

Lucas De Marchi (1):
drivers: base: devres: Allow to release group on device release

Luiz Augusto von Dentz (1):
Bluetooth: hci_event: Fix sending MGMT_EV_DEVICE_FOUND for invalid address

Ma Ke (1):
PCI: Fix reference leak in pci_alloc_child_bus()

Maksim Davydov (1):
x86/split_lock: Fix the delayed detection logic

Manjunatha Venkatesh (1):
i3c: Add NULL pointer check in i3c_master_queue_ibi()

Marek Behún (1):
net: dsa: mv88e6xxx: workaround RGMII transmit delay erratum for 6320 family

Mario Limonciello (1):
drm/amd: Handle being compiled without SI or CIK support better

Mark Brown (4):
KVM: arm64: Discard any SVE state when entering KVM guests arm64/fpsimd: Track the saved FPSIMD state type separately to TIF_SVE arm64/fpsimd: Have KVM explicitly say which FP registers to save arm64/fpsimd: Stop using TIF_SVE to manage register saving in KVM

Mark Rutland (8):
perf: arm_pmu: Don't disable counter in armpmu_add()
KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state
KVM: arm64: Remove host FPSIMD saving for non-protected KVM
KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN
KVM: arm64: Remove VHE host restore of CPACR_EL1.SMEN
KVM: arm64: Refactor exit handlers
KVM: arm64: Mark some header functions as inline
KVM: arm64: Eagerly switch ZCR_EL{1,2}

Mateusz Guzik (1):
fs: consistently deref the files table with rcu_dereference_raw()

Mathieu Desnoyers (1):
mm: add missing release barrier on PGDAT_RECLAIM_LOCKED unlock

Matt Johnston (1):
net: mctp: Set SOCK_RCU_FREE

Matthew Auld (1):
drm/amdgpu/dma_buf: fix page_link check

Matthew Majewski (1):
media: vim2m: print device name after registering device

Matthew Wilcox (Oracle) (1):
test suite: use %zu to print size_t

Matthieu Baerts (NGI0) (3):
mptcp: sockopt: fix getting IPV6_V6ONLY
mptcp: only inc MPJoinAckHMacFailure for HMAC failures
mptcp: sockopt: fix getting freebind & transparent

Max Grobecker (1):
x86/cpu: Don't clear X86_FEATURE_LAHF_LM flag in init_amd_k8() on AMD when running in a virtual machine

Maxim Mikityanskiy (2):
ALSA: hda: intel: Fix Optimus when GPU has no sound
ALSA: hda: intel: Add Lenovo IdeaPad Z570 to probe denylist

Maxime Chevallier (1):
net: ethtool: Don't call .cleanup_data when prepare_data fails

Miaoqian Lin (1):
scsi: iscsi: Fix missing scsi_host_put() in error path

Mickaël Salaün (1):
landlock: Add the errata interface

Mikulas Patocka (3):
dm-ebs: fix prefetch-vs-suspend race
dm-integrity: set ti->error on memory allocation failure
dm-verity: fix prefetch-vs-suspend race

Miquel Raynal (1):
spi: cadence-qspi: Fix probe on AM62A LP SK

Murad Masimov (1):
media: streamzap: prevent processing IR data on URB failure

Myrrh Periwinkle (1):
x86/e820: Fix handling of subpage regions when calculating nosave ranges in e820__register_nosave_regions()

Namjae Jeon (1):
ksmbd: fix the warning from __kernel_write_iter

Nathan Chancellor (3):
ACPI: platform-profile: Fix CFI violation when accessing sysfs files
riscv: Avoid fortify warning in syscall_get_arguments()
kbuild: Add '-fno-builtin-wcslen'

Nathan Lynch (1):
powerpc/rtas: Prevent Spectre v1 gadget construction in sys_rtas()

Nikita Zhandarovich (1):
drm/repaper: fix integer overflows in repeat functions

Niklas Cassel (1):
ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode

Niklas Söderlund (1):
media: i2c: adv748x: Fix test pattern selection mask

Octavian Purdila (2):
net_sched: sch_sfq: use a temporary work area for validating configuration
net_sched: sch_sfq: move the limit validation

Ojaswin Mujoo (1):
ext4: protect ext4_release_dquot against freezing

Paulo Alcantara (1):
cifs: use origin fullpath for automounts

Pavel Begunkov (1):
io_uring/net: fix accept multishot handling

Pedro Tammela (1):
net/sched: cls_api: conditional notification of events

Peter Collingbourne (1):
string: Add load_unaligned_zeropad() code path to sized_strscpy()

Peter Griffin (1):
scsi: ufs: exynos: Ensure consistent phy reference counts

Philip Yang (2):
drm/amdkfd: Fix mode1 reset crash issue drm/amdkfd: Fix pqm_destroy_queue race with GPU reset

Rafael J. Wysocki (2):
cpufreq/sched: Fix the usage of CPUFREQ_NEED_UPDATE_LIMITS
cpufreq: Reference count policy in cpufreq_update_limits()

Rand Deeb (2):
fs/jfs: cast inactags to s64 to prevent potential overflow fs/jfs: Prevent integer overflow in AG size calculation

Remi Pommarel (2):
wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()
wifi: mac80211: Purge vif txq in ieee80211_do_stop()

Ricard Wanderlof (1):
ALSA: usb-audio: Fix CME quirk for UF series keyboards

Ricardo Cañuelo Navarro (1):
sctp: detect and prevent references to a freed transport in sendmsg

Rolf Eike Beer (1):
drm/sti: remove duplicate object names

Roman Smirnov (1):
cifs: fix integer overflow in match_server()

Ryan Roberts (1):
sparc/mm: disable preemption in lazy mmu mode

Ryo Takakura (1):
PCI: vmd: Make vmd_dev::cfg_lock a raw_spinlock_t type

Sagi Maimon (1):
ptp: ocp: fix start time alignment in ptp_ocp_signal_set

Sakari Ailus (4):
media: i2c: ccs: Set the device's runtime PM status correctly in remove
media: i2c: ccs: Set the device's runtime PM status correctly in probe
media: i2c: ov7251: Set enable GPIO low in probe
media: i2c: ov7251: Introduce 1 ms delay between regulators and en GPIO

Sean Christopherson (1):
KVM: x86: Acquire SRCU in KVM_GET_MP_STATE to protect guest memory accesses

Sean Heelan (1):
ksmbd: Fix dangling pointer in krb_authenticate

Sharath Srinivasan (1):
RDMA/cma: Fix workqueue crash in cma_netevent_work_handler

Shay Drory (1):
RDMA/core: Silence oversized kvmalloc() warning

Shengjiu Wang (1):
ASoC: fsl_audmix: register card device depends on 'dais' property

Shuai Xue (1):
mm/hwpoison: do not send SIGBUS to processes with recovered clean pages

Si-Wei Liu (1):
vdpa/mlx5: Fix oversized null mkey longer than 32bit

Srinivas Kandagatla (4):
ASoC: qdsp6: q6apm-dai: set 10 ms period and buffer alignment.
ASoC: qdsp6: q6apm-dai: fix capture pipeline overruns.
ASoC: codecs:lpass-wsa-macro: Fix vi feedback rate
ASoC: codecs:lpass-wsa-macro: Fix logic of enabling vi channels

Stanimir Varbanov (1):
PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe()

Stanislav Fomichev (1):
net: vlan: don't propagate flags on open

Stanley Chu (1):
i3c: master: svc: Use readsb helper for reading MDB

Stephan Gerhold (1):
pinctrl: qcom: Clear latched interrupt status when changing IRQ type

Steve French (1):
smb311 client: fix missing tcon check when mounting with linux/posix extensions

Steven Rostedt (1):
tracing: Fix filter string testing

T Pratham (1):
lib: scatterlist: fix sg_split_phys to preserve original scatterlist offsets

Takashi Iwai (1):
ALSA: hda/realtek: Fix built-in mic on another ASUS VivoBook model

Taniya Das (1):
clk: qcom: gdsc: Set retain_ff before moving to HW CTRL

Thadeu Lima de Souza Cascardo (1):
i2c: cros-ec-tunnel: defer probe if parent EC is not present

Thomas Weißschuh (2):
loop: properly send KOBJ_CHANGED uevent for disk device
loop: LOOP_SET_FD: send uevents for partitions

Toke Høiland-Jørgensen (1):
tc: Ensure we have enough buffer space when sending filter netlink notifications

Tom Lendacky (1):
crypto: ccp - Fix check for the primary ASP device

Tomasz Pakuła (3):
HID: pidff: Convert infinite length from Linux API to PID standard
HID: pidff: Do not send effect envelope if it's empty
HID: pidff: Fix null pointer dereference in pidff_find_fields

Trevor Woerner (1):
thermal/drivers/rockchip: Add missing rk3328 mapping entry

Trond Myklebust (1):
umount: Allow superblock owners to force umount

Tung Nguyen (1):
tipc: fix memory leak in tipc_link_xmit

Uwe Kleine-König (2):
pwm: rcar: Improve register calculation
pwm: fsl-ftm: Handle clk_get_rate() returning 0

Vasiliy Kovalev (1):
hfs/hfsplus: fix slab-out-of-bounds in hfs_bnode_read_key

Victor Nogueira (1):
rtnl: add helper to check if a notification is needed

Vikash Garodia (4):
media: venus: hfi: add a check to handle OOB in sfr region
media: venus: hfi: add check to handle incorrect queue size
media: venus: hfi_parser: add check to avoid out of bound access
media: venus: hfi_parser: refactor hfi packet parsing logic

Vishal Moola (Oracle) (1):
mm: fix filemap_get_folios_contig returning batches of identical folios

Vladimir Oltean (3):
net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered
net: dsa: mv88e6xxx: fix -ENOENT when deleting VLANs and MST is unsupported
net: dsa: avoid refcount warnings when ds->ops->tag_8021q_vlan_del() fails

WangYuli (6):
riscv: KGDB: Do not inline arch_kgdb_breakpoint()
riscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break
nvmet-fc: Remove unused functions
MIPS: dec: Declare which_prom() as static
MIPS: cevt-ds1287: Add missing ds1287.h include
MIPS: ds1287: Match ds1287_set_base_clock() function types

Wentao Liang (4):
ata: sata_sx4: Add error handling in pdc20621_i2c_read() drm/amdgpu: handle amdgpu_cgs_create_device() errors in amd_powerplay_create()
mtd: inftlcore: Add error check for inftl_read_oob()
mtd: rawnand: Add status chack in r852_ready()

Will Deacon (1):
KVM: arm64: Tear down vGIC on failed vCPU creation

Willem de Bruijn (1):
bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags

Xiangsheng Hou (1):
virtiofs: add filesystem context source name check

Xingui Yang (1):
scsi: hisi_sas: Enable force phy when SATA disk directly connected

Xu Kuohai (1):
bpf: Prevent tail call between progs attached to different hooks

Yu Kuai (4):
md/raid10: fix missing discard IO accounting
blk-cgroup: support to track if policy is online
md: factor out a helper from mddev_put()
md: fix mddev uaf while iterating all_mddevs list

Yuan Can (1):
media: siano: Fix error handling in smsdvb_module_init()

Yue Haibing (1):
RDMA/usnic: Fix passing zero to PTR_ERR in usnic_ib_pci_probe()

Yuli Wang (1):
LoongArch: Eliminate superfluous get_numa_distances_cnt()

Zheng Qixing (1):
md/md-bitmap: fix stats collection for external bitmaps

Zhenhua Huang (1):
arm64: mm: Correct the update of max_pfn

Zhikai Zhai (1):
drm/amd/display: Update Cursor request mode to the beginning prefetch always

Zhongqiu Han (2):
pm: cpupower: bench: Prevent NULL dereference on malloc failure
jfs: Fix uninit-value access of imap allocated in the diMount() function

Zijun Hu (5):
of/irq: Fix device node refcount leakage in API of_irq_parse_one() of/irq: Fix device node refcount leakage in API of_irq_parse_raw() of/irq: Fix device node refcount leakages in of_irq_count() of/irq: Fix device node refcount leakage in API irq_of_parse_and_map() of/irq: Fix device node refcount leakages in of_irq_init()

keenplify (1):
ASoC: amd: Add DMI quirk for ACP6X mic support

zhoumin (1):
ftrace: Add cond_resched() to ftrace_graph_set_hash()

author maintainer
#1 lore raw
MAINTAINERS +1 -0
index 4b19dfb5d2fd..428b2259225d 100644
@@ -4833,6 +4833,7 @@ S:	Maintained
 F:	Documentation/admin-guide/module-signing.rst
 F:	certs/
 F:	scripts/sign-file.c
+F:	scripts/ssl-common.h
 F:	tools/certs/
 
 CFAG12864B LCD DRIVER
Makefile +4 -1
index 50f1a283b67d..be531bb0f734 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 134
+SUBLEVEL = 135
 EXTRAVERSION =
 NAME = Curry Ramen
 
@@ -1075,6 +1075,9 @@ KBUILD_CFLAGS   += $(call cc-option,-Werror=incompatible-pointer-types)
 # Require designated initializers for all marked structures
 KBUILD_CFLAGS   += $(call cc-option,-Werror=designated-init)
 
+# Ensure compilers do not transform certain loops into calls to wcslen()
+KBUILD_CFLAGS += -fno-builtin-wcslen
+
 # change __FILE__ to the relative path from the srctree
 KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
 
arch/arm64/boot/dts/mediatek/mt8173.dtsi +2 -4
index 7640b5158ff9..256df3a2d823 100644
@@ -1247,8 +1247,7 @@ dpi0_out: endpoint {
 		};
 
 		pwm0: pwm@1401e000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401e000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM026M>,
@@ -1258,8 +1257,7 @@ pwm0: pwm@1401e000 {
 		};
 
 		pwm1: pwm@1401f000 {
-			compatible = "mediatek,mt8173-disp-pwm",
-				     "mediatek,mt6595-disp-pwm";
+			compatible = "mediatek,mt8173-disp-pwm";
 			reg = <0 0x1401f000 0 0x1000>;
 			#pwm-cells = <2>;
 			clocks = <&mmsys CLK_MM_DISP_PWM126M>,
arch/arm64/include/asm/cputype.h +4 -0
index 8efc3302bf96..cdb024dd33f5 100644
@@ -75,6 +75,7 @@
 #define ARM_CPU_PART_CORTEX_A76		0xD0B
 #define ARM_CPU_PART_NEOVERSE_N1	0xD0C
 #define ARM_CPU_PART_CORTEX_A77		0xD0D
+#define ARM_CPU_PART_CORTEX_A76AE	0xD0E
 #define ARM_CPU_PART_NEOVERSE_V1	0xD40
 #define ARM_CPU_PART_CORTEX_A78		0xD41
 #define ARM_CPU_PART_CORTEX_A78AE	0xD42
@@ -119,6 +120,7 @@
 #define QCOM_CPU_PART_KRYO		0x200
 #define QCOM_CPU_PART_KRYO_2XX_GOLD	0x800
 #define QCOM_CPU_PART_KRYO_2XX_SILVER	0x801
+#define QCOM_CPU_PART_KRYO_3XX_GOLD	0x802
 #define QCOM_CPU_PART_KRYO_3XX_SILVER	0x803
 #define QCOM_CPU_PART_KRYO_4XX_GOLD	0x804
 #define QCOM_CPU_PART_KRYO_4XX_SILVER	0x805
@@ -151,6 +153,7 @@
 #define MIDR_CORTEX_A76	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
 #define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
 #define MIDR_CORTEX_A77	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
+#define MIDR_CORTEX_A76AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76AE)
 #define MIDR_NEOVERSE_V1	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
 #define MIDR_CORTEX_A78	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
 #define MIDR_CORTEX_A78AE	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78AE)
@@ -188,6 +191,7 @@
 #define MIDR_QCOM_KRYO MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO)
 #define MIDR_QCOM_KRYO_2XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_GOLD)
 #define MIDR_QCOM_KRYO_2XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_2XX_SILVER)
+#define MIDR_QCOM_KRYO_3XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_GOLD)
 #define MIDR_QCOM_KRYO_3XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_3XX_SILVER)
 #define MIDR_QCOM_KRYO_4XX_GOLD MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_GOLD)
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
arch/arm64/include/asm/fpsimd.h +3 -1
index 930b0e6c9462..7622782d0bb9 100644
@@ -56,11 +56,13 @@ extern void fpsimd_signal_preserve_current_state(void);
 extern void fpsimd_preserve_current_state(void);
 extern void fpsimd_restore_current_state(void);
 extern void fpsimd_update_current_state(struct user_fpsimd_state const *state);
+extern void fpsimd_kvm_prepare(void);
 
 extern void fpsimd_bind_state_to_cpu(struct user_fpsimd_state *state,
 				     void *sve_state, unsigned int sve_vl,
 				     void *za_state, unsigned int sme_vl,
-				     u64 *svcr);
+				     u64 *svcr, enum fp_type *type,
+				     enum fp_type to_save);
 
 extern void fpsimd_flush_task_state(struct task_struct *target);
 extern void fpsimd_save_and_flush_cpu_state(void);
arch/arm64/include/asm/kvm_host.h +12 -7
index 577cf444c113..0935f9849510 100644
@@ -67,6 +67,7 @@ enum kvm_mode kvm_get_mode(void);
 DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
 
 extern unsigned int kvm_sve_max_vl;
+extern unsigned int kvm_host_sve_max_vl;
 int kvm_arm_init_sve(void);
 
 u32 __attribute_const__ kvm_target_cpu(void);
@@ -309,8 +310,18 @@ struct vcpu_reset_state {
 struct kvm_vcpu_arch {
 	struct kvm_cpu_context ctxt;
 
-	/* Guest floating point state */
+	/*
+	 * Guest floating point state
+	 *
+	 * The architecture has two main floating point extensions,
+	 * the original FPSIMD and SVE.  These have overlapping
+	 * register views, with the FPSIMD V registers occupying the
+	 * low 128 bits of the SVE Z registers.  When the core
+	 * floating point code saves the register state of a task it
+	 * records which view it saved in fp_type.
+	 */
 	void *sve_state;
+	enum fp_type fp_type;
 	unsigned int sve_max_vl;
 	u64 svcr;
 
@@ -320,7 +331,6 @@ struct kvm_vcpu_arch {
 	/* Values of trap registers for the guest. */
 	u64 hcr_el2;
 	u64 mdcr_el2;
-	u64 cptr_el2;
 
 	/* Values of trap registers for the host before guest entry. */
 	u64 mdcr_el2_host;
@@ -370,7 +380,6 @@ struct kvm_vcpu_arch {
 	struct kvm_guest_debug_arch vcpu_debug_state;
 	struct kvm_guest_debug_arch external_debug_state;
 
-	struct user_fpsimd_state *host_fpsimd_state;	/* hyp VA */
 	struct task_struct *parent_task;
 
 	struct {
@@ -547,10 +556,6 @@ struct kvm_vcpu_arch {
 /* Save TRBE context if active  */
 #define DEBUG_STATE_SAVE_TRBE	__vcpu_single_flag(iflags, BIT(6))
 
-/* SVE enabled for host EL0 */
-#define HOST_SVE_ENABLED	__vcpu_single_flag(sflags, BIT(0))
-/* SME enabled for EL0 */
-#define HOST_SME_ENABLED	__vcpu_single_flag(sflags, BIT(1))
 /* Physical CPU not in supported_cpus */
 #define ON_UNSUPPORTED_CPU	__vcpu_single_flag(sflags, BIT(2))
 /* WFIT instruction trapped */
arch/arm64/include/asm/kvm_hyp.h +1 -0
index aa7fa2a08f06..1d0bb7624a1c 100644
@@ -122,5 +122,6 @@ extern u64 kvm_nvhe_sym(id_aa64isar2_el1_sys_val);
 extern u64 kvm_nvhe_sym(id_aa64mmfr0_el1_sys_val);
 extern u64 kvm_nvhe_sym(id_aa64mmfr1_el1_sys_val);
 extern u64 kvm_nvhe_sym(id_aa64mmfr2_el1_sys_val);
+extern unsigned int kvm_nvhe_sym(kvm_host_sve_max_vl);
 
 #endif /* __ARM64_KVM_HYP_H__ */
arch/arm64/include/asm/processor.h +7 -0
index 400f8956328b..1b822e618bb4 100644
@@ -122,6 +122,12 @@ enum vec_type {
 	ARM64_VEC_MAX,
 };
 
+enum fp_type {
+	FP_STATE_CURRENT,	/* Save based on current task state. */
+	FP_STATE_FPSIMD,
+	FP_STATE_SVE,
+};
+
 struct cpu_context {
 	unsigned long x19;
 	unsigned long x20;
@@ -152,6 +158,7 @@ struct thread_struct {
 		struct user_fpsimd_state fpsimd_state;
 	} uw;
 
+	enum fp_type		fp_type;	/* registers FPSIMD or SVE? */
 	unsigned int		fpsimd_cpu;
 	void			*sve_state;	/* SVE registers, if any */
 	void			*za_state;	/* ZA register, if any */
arch/arm64/include/asm/spectre.h +0 -1
index aa3d3607d5c8..6f9f4f68b9e2 100644
@@ -96,7 +96,6 @@ enum mitigation_state arm64_get_meltdown_state(void);
 
 enum mitigation_state arm64_get_spectre_bhb_state(void);
 bool is_spectre_bhb_affected(const struct arm64_cpu_capabilities *entry, int scope);
-u8 spectre_bhb_loop_affected(int scope);
 void spectre_bhb_enable_mitigation(const struct arm64_cpu_capabilities *__unused);
 #endif	/* __ASSEMBLY__ */
 #endif	/* __ASM_SPECTRE_H */
arch/arm64/kernel/fpsimd.c +51 -18

160 lines not on this page · raw message

arch/arm64/kernel/process.c +2 -0
index 3f06e9d45271..7092840deb5c 100644
@@ -331,6 +331,8 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
 		clear_tsk_thread_flag(dst, TIF_SME);
 	}
 
+	dst->thread.fp_type = FP_STATE_FPSIMD;
+
 	/* clear any pending asynchronous tag fault raised by the parent */
 	clear_tsk_thread_flag(dst, TIF_MTE_ASYNC_FAULT);
 
arch/arm64/kernel/proton-pack.c +118 -100

281 lines not on this page · raw message

arch/arm64/kernel/ptrace.c +3 -0
index b178bbdc1c3b..2f1f86d91612 100644
@@ -917,6 +917,7 @@ static int sve_set_common(struct task_struct *target,
 		clear_tsk_thread_flag(target, TIF_SVE);
 		if (type == ARM64_VEC_SME)
 			fpsimd_force_sync_to_sve(target);
+		target->thread.fp_type = FP_STATE_FPSIMD;
 		goto out;
 	}
 
@@ -939,6 +940,7 @@ static int sve_set_common(struct task_struct *target,
 	if (!target->thread.sve_state) {
 		ret = -ENOMEM;
 		clear_tsk_thread_flag(target, TIF_SVE);
+		target->thread.fp_type = FP_STATE_FPSIMD;
 		goto out;
 	}
 
@@ -952,6 +954,7 @@ static int sve_set_common(struct task_struct *target,
 	fpsimd_sync_to_sve(target);
 	if (type == ARM64_VEC_SVE)
 		set_tsk_thread_flag(target, TIF_SVE);
+	target->thread.fp_type = FP_STATE_SVE;
 
 	BUILD_BUG_ON(SVE_PT_SVE_OFFSET != sizeof(header));
 	start = SVE_PT_SVE_OFFSET;
arch/arm64/kernel/signal.c +6 -1
index 82f4572c8ddf..2461bbffe7d4 100644
@@ -207,6 +207,7 @@ static int restore_fpsimd_context(struct fpsimd_context __user *ctx)
 	__get_user_error(fpsimd.fpcr, &ctx->fpcr, err);
 
 	clear_thread_flag(TIF_SVE);
+	current->thread.fp_type = FP_STATE_FPSIMD;
 
 	/* load the hardware registers from the fpsimd_state structure */
 	if (!err)
@@ -297,6 +298,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)
 	if (sve.head.size <= sizeof(*user->sve)) {
 		clear_thread_flag(TIF_SVE);
 		current->thread.svcr &= ~SVCR_SM_MASK;
+		current->thread.fp_type = FP_STATE_FPSIMD;
 		goto fpsimd_only;
 	}
 
@@ -332,6 +334,7 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user)
 		current->thread.svcr |= SVCR_SM_MASK;
 	else
 		set_thread_flag(TIF_SVE);
+	current->thread.fp_type = FP_STATE_SVE;
 
 fpsimd_only:
 	/* copy the FP and status/control registers */
@@ -937,9 +940,11 @@ static void setup_return(struct pt_regs *regs, struct k_sigaction *ka,
 		 * FPSIMD register state - flush the saved FPSIMD
 		 * register state in case it gets loaded.
 		 */
-		if (current->thread.svcr & SVCR_SM_MASK)
+		if (current->thread.svcr & SVCR_SM_MASK) {
 			memset(&current->thread.uw.fpsimd_state, 0,
 			       sizeof(current->thread.uw.fpsimd_state));
+			current->thread.fp_type = FP_STATE_FPSIMD;
+		}
 
 		current->thread.svcr &= ~(SVCR_ZA_MASK |
 					  SVCR_SM_MASK);
arch/arm64/kvm/arm.c +5 -2
index 3a05f364b4b6..6eb992056c67 100644
@@ -371,7 +371,11 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
 	if (err)
 		return err;
 
-	return kvm_share_hyp(vcpu, vcpu + 1);
+	err = kvm_share_hyp(vcpu, vcpu + 1);
+	if (err)
+		kvm_vgic_vcpu_destroy(vcpu);
+
+	return err;
 }
 
 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
@@ -1230,7 +1234,6 @@ static int kvm_arch_vcpu_ioctl_vcpu_init(struct kvm_vcpu *vcpu,
 	}
 
 	vcpu_reset_hcr(vcpu);
-	vcpu->arch.cptr_el2 = CPTR_EL2_DEFAULT;
 
 	/*
 	 * Handle the "start in power-off" case.
arch/arm64/kvm/fpsimd.c +26 -66

137 lines not on this page · raw message

arch/arm64/kvm/hyp/entry.S +5 -0
index 435346ea1504..d8c94c45cb2f 100644
@@ -44,6 +44,11 @@ alternative_if ARM64_HAS_RAS_EXTN
 alternative_else_nop_endif
 	mrs	x1, isr_el1
 	cbz	x1,  1f
+
+	// Ensure that __guest_enter() always provides a context
+	// synchronization event so that callers don't need ISBs for anything
+	// that would usually be synchonized by the ERET.
+	isb
 	mov	x0, #ARM_EXCEPTION_IRQ
 	ret
 
arch/arm64/kvm/hyp/include/hyp/switch.h +69 -37

175 lines not on this page · raw message

arch/arm64/kvm/hyp/nvhe/hyp-main.c +3 -5
index 3cea4b6ac23e..b183cc866404 100644
@@ -5,6 +5,7 @@
  */
 
 #include <hyp/adjust_pc.h>
+#include <hyp/switch.h>
 
 #include <asm/pgtable-types.h>
 #include <asm/kvm_asm.h>
@@ -25,7 +26,9 @@ static void handle___kvm_vcpu_run(struct kvm_cpu_context *host_ctxt)
 {
 	DECLARE_REG(struct kvm_vcpu *, vcpu, host_ctxt, 1);
 
+	fpsimd_lazy_switch_to_guest(kern_hyp_va(vcpu));
 	cpu_reg(host_ctxt, 1) =  __kvm_vcpu_run(kern_hyp_va(vcpu));
+	fpsimd_lazy_switch_to_host(kern_hyp_va(vcpu));
 }
 
 static void handle___kvm_adjust_pc(struct kvm_cpu_context *host_ctxt)
@@ -285,11 +288,6 @@ void handle_trap(struct kvm_cpu_context *host_ctxt)
 	case ESR_ELx_EC_SMC64:
 		handle_host_smc(host_ctxt);
 		break;
-	case ESR_ELx_EC_SVE:
-		sysreg_clear_set(cptr_el2, CPTR_EL2_TZ, 0);
-		isb();
-		sve_cond_update_zcr_vq(ZCR_ELx_LEN_MASK, SYS_ZCR_EL2);
-		break;
 	case ESR_ELx_EC_IABT_LOW:
 	case ESR_ELx_EC_DABT_LOW:
 		handle_host_mem_abort(host_ctxt);
arch/arm64/kvm/hyp/nvhe/pkvm.c +2 -15
index 85d3b7ae720f..6042cdd3d887 100644
@@ -9,6 +9,8 @@
 #include <nvhe/fixed_config.h>
 #include <nvhe/trap_handler.h>
 
+unsigned int kvm_host_sve_max_vl;
+
 /*
  * Set trap register values based on features in ID_AA64PFR0.
  */
@@ -17,7 +19,6 @@ static void pvm_init_traps_aa64pfr0(struct kvm_vcpu *vcpu)
 	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64PFR0_EL1);
 	u64 hcr_set = HCR_RW;
 	u64 hcr_clear = 0;
-	u64 cptr_set = 0;
 
 	/* Protected KVM does not support AArch32 guests. */
 	BUILD_BUG_ON(FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1_EL0),
@@ -44,16 +45,10 @@ static void pvm_init_traps_aa64pfr0(struct kvm_vcpu *vcpu)
 	/* Trap AMU */
 	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1_AMU), feature_ids)) {
 		hcr_clear |= HCR_AMVOFFEN;
-		cptr_set |= CPTR_EL2_TAM;
 	}
 
-	/* Trap SVE */
-	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1_SVE), feature_ids))
-		cptr_set |= CPTR_EL2_TZ;
-
 	vcpu->arch.hcr_el2 |= hcr_set;
 	vcpu->arch.hcr_el2 &= ~hcr_clear;
-	vcpu->arch.cptr_el2 |= cptr_set;
 }
 
 /*
@@ -83,7 +78,6 @@ static void pvm_init_traps_aa64dfr0(struct kvm_vcpu *vcpu)
 	const u64 feature_ids = pvm_read_id_reg(vcpu, SYS_ID_AA64DFR0_EL1);
 	u64 mdcr_set = 0;
 	u64 mdcr_clear = 0;
-	u64 cptr_set = 0;
 
 	/* Trap/constrain PMU */
 	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_EL1_PMUVer), feature_ids)) {
@@ -110,13 +104,8 @@ static void pvm_init_traps_aa64dfr0(struct kvm_vcpu *vcpu)
 	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_EL1_TraceFilt), feature_ids))
 		mdcr_set |= MDCR_EL2_TTRF;
 
-	/* Trap Trace */
-	if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_EL1_TraceVer), feature_ids))
-		cptr_set |= CPTR_EL2_TTA;
-
 	vcpu->arch.mdcr_el2 |= mdcr_set;
 	vcpu->arch.mdcr_el2 &= ~mdcr_clear;
-	vcpu->arch.cptr_el2 |= cptr_set;
 }
 
 /*
@@ -167,8 +156,6 @@ static void pvm_init_trap_regs(struct kvm_vcpu *vcpu)
 	/* Clear res0 and set res1 bits to trap potential new features. */
 	vcpu->arch.hcr_el2 &= ~(HCR_RES0);
 	vcpu->arch.mdcr_el2 &= ~(MDCR_EL2_RES0);
-	vcpu->arch.cptr_el2 |= CPTR_NVHE_EL2_RES1;
-	vcpu->arch.cptr_el2 &= ~(CPTR_NVHE_EL2_RES0);
 }
 
 /*
arch/arm64/kvm/hyp/nvhe/switch.c +59 -32

129 lines not on this page · raw message

arch/arm64/kvm/hyp/vhe/switch.c +7 -5
index 45ac4a59cc2c..179152bb9e42 100644
@@ -114,13 +114,11 @@ static const exit_handler_fn hyp_exit_handlers[] = {
 	[ESR_ELx_EC_PAC]		= kvm_hyp_handle_ptrauth,
 };
 
-static const exit_handler_fn *kvm_get_exit_handler_array(struct kvm_vcpu *vcpu)
+static inline bool fixup_guest_exit(struct kvm_vcpu *vcpu, u64 *exit_code)
 {
-	return hyp_exit_handlers;
-}
+	synchronize_vcpu_pstate(vcpu, exit_code);
 
-static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code)
-{
+	return __fixup_guest_exit(vcpu, exit_code, hyp_exit_handlers);
 }
 
 /* Switch to the guest for VHE systems running in EL2 */
@@ -136,6 +134,8 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
 
 	sysreg_save_host_state_vhe(host_ctxt);
 
+	fpsimd_lazy_switch_to_guest(vcpu);
+
 	/*
 	 * ARM erratum 1165522 requires us to configure both stage 1 and
 	 * stage 2 translation for the guest context before we clear
@@ -166,6 +166,8 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
 
 	__deactivate_traps(vcpu);
 
+	fpsimd_lazy_switch_to_host(vcpu);
+
 	sysreg_restore_host_state_vhe(host_ctxt);
 
 	if (vcpu->arch.fp_state == FP_STATE_GUEST_OWNED)
arch/arm64/kvm/reset.c +3 -0
index f9d070473614..54e00ee631a0 100644
@@ -42,11 +42,14 @@ static u32 kvm_ipa_limit;
 				 PSR_AA32_I_BIT | PSR_AA32_F_BIT)
 
 unsigned int kvm_sve_max_vl;
+unsigned int kvm_host_sve_max_vl;
 
 int kvm_arm_init_sve(void)
 {
 	if (system_supports_sve()) {
 		kvm_sve_max_vl = sve_max_virtualisable_vl();
+		kvm_host_sve_max_vl = sve_max_vl();
+		kvm_nvhe_sym(kvm_host_sve_max_vl) = kvm_host_sve_max_vl;
 
 		/*
 		 * The get_sve_reg()/set_sve_reg() ioctl interface will need
arch/arm64/mm/mmu.c +2 -1
index f095b99bb214..cd14c3c22320 100644
@@ -1578,7 +1578,8 @@ int arch_add_memory(int nid, u64 start, u64 size,
 		__remove_pgd_mapping(swapper_pg_dir,
 				     __phys_to_virt(start), size);
 	else {
-		max_pfn = PFN_UP(start + size);
+		/* Address of hotplugged memory can be smaller */
+		max_pfn = max(max_pfn, PFN_UP(start + size));
 		max_low_pfn = max_pfn;
 	}
 
arch/loongarch/kernel/acpi.c +0 -12
index 8319cc409009..4dd55a50d89e 100644
@@ -173,18 +173,6 @@ static __init int setup_node(int pxm)
 	return acpi_map_pxm_to_node(pxm);
 }
 
-/*
- * Callback for SLIT parsing.  pxm_to_node() returns NUMA_NO_NODE for
- * I/O localities since SRAT does not list them.  I/O localities are
- * not supported at this point.
- */
-unsigned int numa_distance_cnt;
-
-static inline unsigned int get_numa_distances_cnt(struct acpi_table_slit *slit)
-{
-	return slit->locality_count;
-}
-
 void __init numa_set_distance(int from, int to, int distance)
 {
 	if ((u8)distance != distance || (from == to && distance != LOCAL_DISTANCE)) {
arch/loongarch/net/bpf_jit.c +0 -2
index d53919729f92..93e9110aafa1 100644
@@ -142,8 +142,6 @@ static void build_prologue(struct jit_ctx *ctx)
 	 */
 	if (seen_tail_call(ctx) && seen_call(ctx))
 		move_reg(ctx, TCC_SAVED, REG_TCC);
-	else
-		emit_insn(ctx, nop);
 
 	ctx->stack_size = stack_adjust;
 }
arch/loongarch/net/bpf_jit.h +0 -5
index d9421469a731..684b22f54ccc 100644
@@ -25,11 +25,6 @@ struct jit_data {
 	struct jit_ctx ctx;
 };
 
-static inline void emit_nop(union loongarch_instruction *insn)
-{
-	insn->word = INSN_NOP;
-}
-
 #define emit_insn(ctx, func, ...)						\
 do {										\
 	if (ctx->image != NULL) {						\
arch/mips/dec/prom/init.c +1 -1
index cb12eb211a49..8d74d7d6c05b 100644
@@ -42,7 +42,7 @@ int (*__pmax_close)(int);
  * Detect which PROM the DECSTATION has, and set the callback vectors
  * appropriately.
  */
-void __init which_prom(s32 magic, s32 *prom_vec)
+static void __init which_prom(s32 magic, s32 *prom_vec)
 {
 	/*
 	 * No sign of the REX PROM's magic number means we assume a non-REX
arch/mips/include/asm/ds1287.h +1 -1
index 46cfb01f9a14..51cb61fd4c03 100644
@@ -8,7 +8,7 @@
 #define __ASM_DS1287_H
 
 extern int ds1287_timer_state(void);
-extern void ds1287_set_base_clock(unsigned int clock);
+extern int ds1287_set_base_clock(unsigned int hz);
 extern int ds1287_clockevent_init(int irq);
 
 #endif
arch/mips/kernel/cevt-ds1287.c +1 -0
index 9a47fbcd4638..de64d6bb7ba3 100644
@@ -10,6 +10,7 @@
 #include <linux/mc146818rtc.h>
 #include <linux/irq.h>
 
+#include <asm/ds1287.h>
 #include <asm/time.h>
 
 int ds1287_timer_state(void)
arch/powerpc/kernel/rtas.c +4 -0
index f8d3caad4cf3..3c06c8389e05 100644
@@ -25,6 +25,7 @@
 #include <linux/reboot.h>
 #include <linux/security.h>
 #include <linux/syscalls.h>
+#include <linux/nospec.h>
 #include <linux/of.h>
 #include <linux/of_fdt.h>
 
@@ -1178,6 +1179,9 @@ SYSCALL_DEFINE1(rtas, struct rtas_args __user *, uargs)
 	    || nargs + nret > ARRAY_SIZE(args.args))
 		return -EINVAL;
 
+	nargs = array_index_nospec(nargs, ARRAY_SIZE(args.args));
+	nret = array_index_nospec(nret, ARRAY_SIZE(args.args) - nargs);
+
 	/* Copy in args. */
 	if (copy_from_user(args.args, uargs->args,
 			   nargs * sizeof(rtas_arg_t)) != 0)
arch/riscv/include/asm/kgdb.h +1 -8
index 46677daf708b..cc11c4544cff 100644
@@ -19,16 +19,9 @@
 
 #ifndef	__ASSEMBLY__
 
+void arch_kgdb_breakpoint(void);
 extern unsigned long kgdb_compiled_break;
 
-static inline void arch_kgdb_breakpoint(void)
-{
-	asm(".global kgdb_compiled_break\n"
-	    ".option norvc\n"
-	    "kgdb_compiled_break: ebreak\n"
-	    ".option rvc\n");
-}
-
 #endif /* !__ASSEMBLY__ */
 
 #define DBG_REG_ZERO "zero"
arch/riscv/include/asm/syscall.h +5 -2
index 384a63b86420..8426c4510d31 100644
@@ -61,8 +61,11 @@ static inline void syscall_get_arguments(struct task_struct *task,
 					 unsigned long *args)
 {
 	args[0] = regs->orig_a0;
-	args++;
-	memcpy(args, &regs->a1, 5 * sizeof(args[0]));
+	args[1] = regs->a1;
+	args[2] = regs->a2;
+	args[3] = regs->a3;
+	args[4] = regs->a4;
+	args[5] = regs->a5;
 }
 
 static inline int syscall_get_arch(struct task_struct *task)
arch/riscv/kernel/kgdb.c +6 -0
index 963ed7edcff2..1d83b3696721 100644
@@ -273,6 +273,12 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
 	regs->epc = pc;
 }
 
+noinline void arch_kgdb_breakpoint(void)
+{
+	asm(".global kgdb_compiled_break\n"
+	    "kgdb_compiled_break: ebreak\n");
+}
+
 void kgdb_arch_handle_qxfer_pkt(char *remcom_in_buffer,
 				char *remcom_out_buffer)
 {
arch/riscv/kernel/setup.c +35 -1
index 2acf51c23567..f4c3252abce4 100644
@@ -76,6 +76,9 @@ static struct resource bss_res = { .name = "Kernel bss", };
 static struct resource elfcorehdr_res = { .name = "ELF Core hdr", };
 #endif
 
+static int num_standard_resources;
+static struct resource *standard_resources;
+
 static int __init add_resource(struct resource *parent,
 				struct resource *res)
 {
@@ -149,7 +152,7 @@ static void __init init_resources(void)
 	struct resource *res = NULL;
 	struct resource *mem_res = NULL;
 	size_t mem_res_sz = 0;
-	int num_resources = 0, res_idx = 0;
+	int num_resources = 0, res_idx = 0, non_resv_res = 0;
 	int ret = 0;
 
 	/* + 1 as memblock_alloc() might increase memblock.reserved.cnt */
@@ -213,6 +216,7 @@ static void __init init_resources(void)
 	/* Add /memory regions to the resource tree */
 	for_each_mem_region(region) {
 		res = &mem_res[res_idx--];
+		non_resv_res++;
 
 		if (unlikely(memblock_is_nomap(region))) {
 			res->name = "Reserved";
@@ -230,6 +234,9 @@ static void __init init_resources(void)
 			goto error;
 	}
 
+	num_standard_resources = non_resv_res;
+	standard_resources = &mem_res[res_idx + 1];
+
 	/* Clean-up any unused pre-allocated resources */
 	if (res_idx >= 0)
 		memblock_free(mem_res, (res_idx + 1) * sizeof(*mem_res));
@@ -241,6 +248,33 @@ static void __init init_resources(void)
 	memblock_free(mem_res, mem_res_sz);
 }
 
+static int __init reserve_memblock_reserved_regions(void)
+{
+	u64 i, j;
+
+	for (i = 0; i < num_standard_resources; i++) {
+		struct resource *mem = &standard_resources[i];
+		phys_addr_t r_start, r_end, mem_size = resource_size(mem);
+
+		if (!memblock_is_region_reserved(mem->start, mem_size))
+			continue;
+
+		for_each_reserved_mem_range(j, &r_start, &r_end) {
+			resource_size_t start, end;
+
+			start = max(PFN_PHYS(PFN_DOWN(r_start)), mem->start);
+			end = min(PFN_PHYS(PFN_UP(r_end)) - 1, mem->end);
+
+			if (start > mem->end || end < mem->start)
+				continue;
+
+			reserve_region_with_split(mem, start, end, "Reserved");
+		}
+	}
+
+	return 0;
+}
+arch_initcall(reserve_memblock_reserved_regions);
 
 static void __init parse_dtb(void)
 {
arch/sparc/mm/tlb.c +4 -1
index 946f33c1b032..4b762c35b608 100644
@@ -52,8 +52,10 @@ void flush_tlb_pending(void)
 
 void arch_enter_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
+	struct tlb_batch *tb;
 
+	preempt_disable();
+	tb = this_cpu_ptr(&tlb_batch);
 	tb->active = 1;
 }
 
@@ -64,6 +66,7 @@ void arch_leave_lazy_mmu_mode(void)
 	if (tb->tlb_nr)
 		flush_tlb_pending();
 	tb->active = 0;
+	preempt_enable();
 }
 
 static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
arch/x86/events/intel/ds.c +5 -3
index 413f9dcff601..4b7faa3180e5 100644
@@ -1149,8 +1149,10 @@ static u64 pebs_update_adaptive_cfg(struct perf_event *event)
 	 * + precise_ip < 2 for the non event IP
 	 * + For RTM TSX weight we need GPRs for the abort code.
 	 */
-	gprs = (sample_type & PERF_SAMPLE_REGS_INTR) &&
-	       (attr->sample_regs_intr & PEBS_GP_REGS);
+	gprs = ((sample_type & PERF_SAMPLE_REGS_INTR) &&
+		(attr->sample_regs_intr & PEBS_GP_REGS)) ||
+	       ((sample_type & PERF_SAMPLE_REGS_USER) &&
+		(attr->sample_regs_user & PEBS_GP_REGS));
 
 	tsx_weight = (sample_type & PERF_SAMPLE_WEIGHT_TYPE) &&
 		     ((attr->config & INTEL_ARCH_EVENT_MASK) ==
@@ -1792,7 +1794,7 @@ static void setup_pebs_adaptive_sample_data(struct perf_event *event,
 			regs->flags &= ~PERF_EFLAGS_EXACT;
 		}
 
-		if (sample_type & PERF_SAMPLE_REGS_INTR)
+		if (sample_type & (PERF_SAMPLE_REGS_INTR | PERF_SAMPLE_REGS_USER))
 			adaptive_pebs_save_regs(regs, gprs);
 	}
 
arch/x86/events/intel/uncore_snbep.c +10 -97

151 lines not on this page · raw message

arch/x86/kernel/cpu/amd.c +1 -1
index 37796a1d0715..9ac93b4ba67b 100644
@@ -787,7 +787,7 @@ static void init_amd_k8(struct cpuinfo_x86 *c)
 	 * (model = 0x14) and later actually support it.
 	 * (AMD Erratum #110, docId: 25759).
 	 */
-	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM)) {
+	if (c->x86_model < 0x14 && cpu_has(c, X86_FEATURE_LAHF_LM) && !cpu_has(c, X86_FEATURE_HYPERVISOR)) {
 		clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
 		if (!rdmsrl_amd_safe(0xc001100d, &value)) {
 			value &= ~BIT_64(32);
arch/x86/kernel/cpu/intel.c +16 -4
index b91f3d72bcdd..2c43a1423b09 100644
@@ -1204,7 +1204,13 @@ static void __split_lock_reenable(struct work_struct *work)
 {
 	sld_update_msr(true);
 }
-static DECLARE_DELAYED_WORK(sl_reenable, __split_lock_reenable);
+/*
+ * In order for each CPU to schedule its delayed work independently of the
+ * others, delayed work struct must be per-CPU. This is not required when
+ * sysctl_sld_mitigate is enabled because of the semaphore that limits
+ * the number of simultaneously scheduled delayed works to 1.
+ */
+static DEFINE_PER_CPU(struct delayed_work, sl_reenable);
 
 /*
  * If a CPU goes offline with pending delayed work to re-enable split lock
@@ -1225,7 +1231,7 @@ static int splitlock_cpu_offline(unsigned int cpu)
 
 static void split_lock_warn(unsigned long ip)
 {
-	struct delayed_work *work;
+	struct delayed_work *work = NULL;
 	int cpu;
 
 	if (!current->reported_split_lock)
@@ -1247,11 +1253,17 @@ static void split_lock_warn(unsigned long ip)
 		if (down_interruptible(&buslock_sem) == -EINTR)
 			return;
 		work = &sl_reenable_unlock;
-	} else {
-		work = &sl_reenable;
 	}
 
 	cpu = get_cpu();
+
+	if (!work) {
+		work = this_cpu_ptr(&sl_reenable);
+		/* Deferred initialization of per-CPU struct */
+		if (!work->work.func)
+			INIT_DELAYED_WORK(work, __split_lock_reenable);
+	}
+
 	schedule_delayed_work_on(cpu, work, 2);
 
 	/* Disable split lock detection on this CPU to make progress */
arch/x86/kernel/e820.c +8 -9
index 993734e96615..b87a3f8ccb32 100644
@@ -753,22 +753,21 @@ void __init e820__memory_setup_extended(u64 phys_addr, u32 data_len)
 void __init e820__register_nosave_regions(unsigned long limit_pfn)
 {
 	int i;
-	unsigned long pfn = 0;
+	u64 last_addr = 0;
 
 	for (i = 0; i < e820_table->nr_entries; i++) {
 		struct e820_entry *entry = &e820_table->entries[i];
 
-		if (pfn < PFN_UP(entry->addr))
-			register_nosave_region(pfn, PFN_UP(entry->addr));
-
-		pfn = PFN_DOWN(entry->addr + entry->size);
-
 		if (entry->type != E820_TYPE_RAM && entry->type != E820_TYPE_RESERVED_KERN)
-			register_nosave_region(PFN_UP(entry->addr), pfn);
+			continue;
 
-		if (pfn >= limit_pfn)
-			break;
+		if (last_addr < entry->addr)
+			register_nosave_region(PFN_DOWN(last_addr), PFN_UP(entry->addr));
+
+		last_addr = entry->addr + entry->size;
 	}
+
+	register_nosave_region(PFN_DOWN(last_addr), limit_pfn);
 }
 
 #ifdef CONFIG_ACPI
arch/x86/kvm/x86.c +4 -0
index 19ce8199f347..4d5be4956c48 100644
@@ -11460,6 +11460,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 	if (kvm_mpx_supported())
 		kvm_load_guest_fpu(vcpu);
 
+	kvm_vcpu_srcu_read_lock(vcpu);
+
 	r = kvm_apic_accept_events(vcpu);
 	if (r < 0)
 		goto out;
@@ -11473,6 +11475,8 @@ int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
 		mp_state->mp_state = vcpu->arch.mp_state;
 
 out:
+	kvm_vcpu_srcu_read_unlock(vcpu);
+
 	if (kvm_mpx_supported())
 		kvm_put_guest_fpu(vcpu);
 	vcpu_put(vcpu);
arch/x86/platform/pvh/head.S +6 -1
index 7fe564eaf228..9e6a27018d0f 100644
@@ -100,7 +100,12 @@ SYM_CODE_START_LOCAL(pvh_start_xen)
 	xor %edx, %edx
 	wrmsr
 
-	call xen_prepare_pvh
+	/* Call xen_prepare_pvh() via the kernel virtual mapping */
+	leaq xen_prepare_pvh(%rip), %rax
+	subq phys_base(%rip), %rax
+	addq $__START_KERNEL_map, %rax
+	ANNOTATE_RETPOLINE_SAFE
+	call *%rax
 
 	/* startup_64 expects boot_params in %rsi. */
 	mov $_pa(pvh_bootparams), %rsi
block/blk-cgroup.c +17 -7
index cced5a2d5fb6..ef596fc10465 100644
@@ -255,6 +255,7 @@ static struct blkcg_gq *blkg_alloc(struct blkcg *blkcg, struct gendisk *disk,
 		blkg->pd[i] = pd;
 		pd->blkg = blkg;
 		pd->plid = i;
+		pd->online = false;
 	}
 
 	return blkg;
@@ -326,8 +327,11 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg, struct gendisk *disk,
 		for (i = 0; i < BLKCG_MAX_POLS; i++) {
 			struct blkcg_policy *pol = blkcg_policy[i];
 
-			if (blkg->pd[i] && pol->pd_online_fn)
-				pol->pd_online_fn(blkg->pd[i]);
+			if (blkg->pd[i]) {
+				if (pol->pd_online_fn)
+					pol->pd_online_fn(blkg->pd[i]);
+				blkg->pd[i]->online = true;
+			}
 		}
 	}
 	blkg->online = true;
@@ -432,8 +436,11 @@ static void blkg_destroy(struct blkcg_gq *blkg)
 	for (i = 0; i < BLKCG_MAX_POLS; i++) {
 		struct blkcg_policy *pol = blkcg_policy[i];
 
-		if (blkg->pd[i] && pol->pd_offline_fn)
-			pol->pd_offline_fn(blkg->pd[i]);
+		if (blkg->pd[i] && blkg->pd[i]->online) {
+			if (pol->pd_offline_fn)
+				pol->pd_offline_fn(blkg->pd[i]);
+			blkg->pd[i]->online = false;
+		}
 	}
 
 	blkg->online = false;
@@ -1422,6 +1429,7 @@ int blkcg_activate_policy(struct request_queue *q,
 		blkg->pd[pol->plid] = pd;
 		pd->blkg = blkg;
 		pd->plid = pol->plid;
+		pd->online = false;
 	}
 
 	/* all allocated, init in the same order */
@@ -1429,9 +1437,11 @@ int blkcg_activate_policy(struct request_queue *q,
 		list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
 			pol->pd_init_fn(blkg->pd[pol->plid]);
 
-	if (pol->pd_online_fn)
-		list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
+	list_for_each_entry_reverse(blkg, &q->blkg_list, q_node) {
+		if (pol->pd_online_fn)
 			pol->pd_online_fn(blkg->pd[pol->plid]);
+		blkg->pd[pol->plid]->online = true;
+	}
 
 	__set_bit(pol->plid, q->blkcg_pols);
 	ret = 0;
@@ -1493,7 +1503,7 @@ void blkcg_deactivate_policy(struct request_queue *q,
 
 		spin_lock(&blkcg->lock);
 		if (blkg->pd[pol->plid]) {
-			if (pol->pd_offline_fn)
+			if (blkg->pd[pol->plid]->online && pol->pd_offline_fn)
 				pol->pd_offline_fn(blkg->pd[pol->plid]);
 			pol->pd_free_fn(blkg->pd[pol->plid]);
 			blkg->pd[pol->plid] = NULL;
block/blk-cgroup.h +1 -0
index aa2b286bc825..59815b269a20 100644
@@ -125,6 +125,7 @@ struct blkg_policy_data {
 	/* the blkg and policy id this per-policy data belongs to */
 	struct blkcg_gq			*blkg;
 	int				plid;
+	bool				online;
 };
 
 /*
block/blk-iocost.c +5 -2
index e270e64ba342..20993d79d5cc 100644
@@ -1430,8 +1430,11 @@ static void iocg_pay_debt(struct ioc_gq *iocg, u64 abs_vpay,
 	lockdep_assert_held(&iocg->ioc->lock);
 	lockdep_assert_held(&iocg->waitq.lock);
 
-	/* make sure that nobody messed with @iocg */
-	WARN_ON_ONCE(list_empty(&iocg->active_list));
+	/*
+	 * make sure that nobody messed with @iocg. Check iocg->pd.online
+	 * to avoid warn when removing blkcg or disk.
+	 */
+	WARN_ON_ONCE(list_empty(&iocg->active_list) && iocg->pd.online);
 	WARN_ON_ONCE(iocg->inuse > 1);
 
 	iocg->abs_vdebt -= min(abs_vpay, iocg->abs_vdebt);
certs/Makefile +1 -1
index 799ad7b9e68a..67e1f2707c2f 100644
@@ -84,5 +84,5 @@ targets += x509_revocation_list
 
 hostprogs := extract-cert
 
-HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null)
+HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) -I$(srctree)/scripts
 HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto)
certs/extract-cert.c +74 -64

163 lines not on this page · raw message

drivers/acpi/platform_profile.c +10 -10
index d418462ab791..89f34310237c 100644
@@ -22,8 +22,8 @@ static const char * const profile_names[] = {
 };
 static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
 
-static ssize_t platform_profile_choices_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_choices_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	int len = 0;
@@ -49,8 +49,8 @@ static ssize_t platform_profile_choices_show(struct device *dev,
 	return len;
 }
 
-static ssize_t platform_profile_show(struct device *dev,
-					struct device_attribute *attr,
+static ssize_t platform_profile_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
 					char *buf)
 {
 	enum platform_profile_option profile = PLATFORM_PROFILE_BALANCED;
@@ -77,8 +77,8 @@ static ssize_t platform_profile_show(struct device *dev,
 	return sysfs_emit(buf, "%s\n", profile_names[profile]);
 }
 
-static ssize_t platform_profile_store(struct device *dev,
-			    struct device_attribute *attr,
+static ssize_t platform_profile_store(struct kobject *kobj,
+			    struct kobj_attribute *attr,
 			    const char *buf, size_t count)
 {
 	int err, i;
@@ -115,12 +115,12 @@ static ssize_t platform_profile_store(struct device *dev,
 	return count;
 }
 
-static DEVICE_ATTR_RO(platform_profile_choices);
-static DEVICE_ATTR_RW(platform_profile);
+static struct kobj_attribute attr_platform_profile_choices = __ATTR_RO(platform_profile_choices);
+static struct kobj_attribute attr_platform_profile = __ATTR_RW(platform_profile);
 
 static struct attribute *platform_profile_attrs[] = {
-	&dev_attr_platform_profile_choices.attr,
-	&dev_attr_platform_profile.attr,
+	&attr_platform_profile_choices.attr,
+	&attr_platform_profile.attr,
 	NULL
 };
 
drivers/ata/ahci.c +2 -0
index 20f53ae4d204..a4b0a499b67d 100644
@@ -592,6 +592,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
 	  .driver_data = board_ahci_yes_fbs },
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9215),
+	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
 	  .driver_data = board_ahci_yes_fbs },
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9235),
drivers/ata/libata-eh.c +9 -2
index 3f327ba759fd..586982a2a61f 100644
@@ -1510,8 +1510,15 @@ unsigned int atapi_eh_request_sense(struct ata_device *dev,
 	tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE;
 	tf.command = ATA_CMD_PACKET;
 
-	/* is it pointless to prefer PIO for "safety reasons"? */
-	if (ap->flags & ATA_FLAG_PIO_DMA) {
+	/*
+	 * Do not use DMA if the connected device only supports PIO, even if the
+	 * port prefers PIO commands via DMA.
+	 *
+	 * Ideally, we should call atapi_check_dma() to check if it is safe for
+	 * the LLD to use DMA for REQUEST_SENSE, but we don't have a qc.
+	 * Since we can't check the command, perhaps we should only use pio?
+	 */
+	if ((ap->flags & ATA_FLAG_PIO_DMA) && !(dev->flags & ATA_DFLAG_PIO)) {
 		tf.protocol = ATAPI_PROT_DMA;
 		tf.feature |= ATAPI_PKT_DMA;
 	} else {
drivers/ata/pata_pxa.c +6 -0
index 985f42c4fd70..9113b74b2b67 100644
@@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev)
 
 	ap->ioaddr.cmd_addr	= devm_ioremap(&pdev->dev, cmd_res->start,
 						resource_size(cmd_res));
+	if (!ap->ioaddr.cmd_addr)
+		return -ENOMEM;
 	ap->ioaddr.ctl_addr	= devm_ioremap(&pdev->dev, ctl_res->start,
 						resource_size(ctl_res));
+	if (!ap->ioaddr.ctl_addr)
+		return -ENOMEM;
 	ap->ioaddr.bmdma_addr	= devm_ioremap(&pdev->dev, dma_res->start,
 						resource_size(dma_res));
+	if (!ap->ioaddr.bmdma_addr)
+		return -ENOMEM;
 
 	/*
 	 * Adjust register offsets
drivers/ata/sata_sx4.c +10 -3
index fa1966638c06..c524634fd926 100644
@@ -1118,9 +1118,14 @@ static int pdc20621_prog_dimm0(struct ata_host *host)
 	mmio += PDC_CHIP0_OFS;
 
 	for (i = 0; i < ARRAY_SIZE(pdc_i2c_read_data); i++)
-		pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
-				  pdc_i2c_read_data[i].reg,
-				  &spd0[pdc_i2c_read_data[i].ofs]);
+		if (!pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS,
+				       pdc_i2c_read_data[i].reg,
+				       &spd0[pdc_i2c_read_data[i].ofs])) {
+			dev_err(host->dev,
+				"Failed in i2c read at index %d: device=%#x, reg=%#x\n",
+				i, PDC_DIMM0_SPD_DEV_ADDRESS, pdc_i2c_read_data[i].reg);
+			return -EIO;
+		}
 
 	data |= (spd0[4] - 8) | ((spd0[21] != 0) << 3) | ((spd0[3]-11) << 4);
 	data |= ((spd0[17] / 4) << 6) | ((spd0[5] / 2) << 7) |
@@ -1285,6 +1290,8 @@ static unsigned int pdc20621_dimm_init(struct ata_host *host)
 
 	/* Programming DIMM0 Module Control Register (index_CID0:80h) */
 	size = pdc20621_prog_dimm0(host);
+	if (size < 0)
+		return size;
 	dev_dbg(host->dev, "Local DIMM Size = %dMB\n", size);
 
 	/* Programming DIMM Module Global Control Register (index_CID0:88h) */
drivers/base/devres.c +7 -0
index 35d1e2864696..9d0ea5c14bc5 100644
@@ -684,6 +684,13 @@ int devres_release_group(struct device *dev, void *id)
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
 
 		release_nodes(dev, &todo);
+	} else if (list_empty(&dev->devres_head)) {
+		/*
+		 * dev is probably dying via devres_release_all(): groups
+		 * have already been removed and are on the process of
+		 * being released - don't touch and don't warn.
+		 */
+		spin_unlock_irqrestore(&dev->devres_lock, flags);
 	} else {
 		WARN_ON(1);
 		spin_unlock_irqrestore(&dev->devres_lock, flags);
drivers/block/loop.c +4 -3
index 041d307a2f28..1c356bda9dfa 100644
@@ -624,19 +624,20 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,
 	 * dependency.
 	 */
 	fput(old_file);
+	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
 	if (partscan)
 		loop_reread_partitions(lo);
 
 	error = 0;
 done:
-	/* enable and uncork uevent now that we are done */
-	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
+	kobject_uevent(&disk_to_dev(lo->lo_disk)->kobj, KOBJ_CHANGE);
 	return error;
 
 out_err:
 	loop_global_unlock(lo, is_loop);
 out_putf:
 	fput(file);
+	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
 	goto done;
 }
 
@@ -1104,8 +1105,8 @@ static int loop_configure(struct loop_device *lo, fmode_t mode,
 	if (partscan)
 		clear_bit(GD_SUPPRESS_PART_SCAN, &lo->lo_disk->state);
 
-	/* enable and uncork uevent now that we are done */
 	dev_set_uevent_suppress(disk_to_dev(lo->lo_disk), 0);
+	kobject_uevent(&disk_to_dev(lo->lo_disk)->kobj, KOBJ_CHANGE);
 
 	loop_global_unlock(lo, is_loop);
 	if (partscan)
drivers/bluetooth/btqca.c +6 -7
index 892e2540f008..5651f40db173 100644
@@ -807,6 +807,7 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		   const char *firmware_name)
 {
 	struct qca_fw_config config = {};
+	const char *variant = "";
 	int err;
 	u8 rom_ver = 0;
 	u32 soc_ver;
@@ -901,13 +902,11 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		case QCA_WCN3990:
 		case QCA_WCN3991:
 		case QCA_WCN3998:
-			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID) {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02xu.bin", rom_ver);
-			} else {
-				snprintf(config.fwname, sizeof(config.fwname),
-					 "qca/crnv%02x.bin", rom_ver);
-			}
+			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
+				variant = "u";
+
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/crnv%02x%s.bin", rom_ver, variant);
 			break;
 		case QCA_WCN3988:
 			snprintf(config.fwname, sizeof(config.fwname),
drivers/bluetooth/btrtl.c +2 -0
index 5671f0d9ab28..1c122613e562 100644
@@ -817,6 +817,8 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
 			rtl_dev_err(hdev, "mandatory config file %s not found",
 				    btrtl_dev->ic_info->cfg_name);
 			ret = btrtl_dev->cfg_len;
+			if (!ret)
+				ret = -EINVAL;
 			goto err_free;
 		}
 	}
drivers/bluetooth/hci_ldisc.c +14 -5
index c1feebd9e3a0..6a90fc69ef44 100644
@@ -102,7 +102,8 @@ static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)
 	if (!skb) {
 		percpu_down_read(&hu->proto_lock);
 
-		if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+		    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 			skb = hu->proto->dequeue(hu);
 
 		percpu_up_read(&hu->proto_lock);
@@ -124,7 +125,8 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)
 	if (!percpu_down_read_trylock(&hu->proto_lock))
 		return 0;
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		goto no_schedule;
 
 	set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
@@ -278,7 +280,8 @@ static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return -EUNATCH;
 	}
@@ -582,7 +585,8 @@ static void hci_uart_tty_wakeup(struct tty_struct *tty)
 	if (tty != hu->tty)
 		return;
 
-	if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
+	if (test_bit(HCI_UART_PROTO_READY, &hu->flags) ||
+	    test_bit(HCI_UART_PROTO_INIT, &hu->flags))
 		hci_uart_tx_wakeup(hu);
 }
 
@@ -608,7 +612,8 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data,
 
 	percpu_down_read(&hu->proto_lock);
 
-	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags)) {
+	if (!test_bit(HCI_UART_PROTO_READY, &hu->flags) &&
+	    !test_bit(HCI_UART_PROTO_INIT, &hu->flags)) {
 		percpu_up_read(&hu->proto_lock);
 		return;
 	}
@@ -709,12 +714,16 @@ static int hci_uart_set_proto(struct hci_uart *hu, int id)
 
 	hu->proto = p;
 
+	set_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	err = hci_uart_register_dev(hu);
 	if (err) {
 		return err;
 	}
 
 	set_bit(HCI_UART_PROTO_READY, &hu->flags);
+	clear_bit(HCI_UART_PROTO_INIT, &hu->flags);
+
 	return 0;
 }
 
drivers/bluetooth/hci_uart.h +1 -0
index fb4a2d0d8cc8..c6f13d7c22a2 100644
@@ -90,6 +90,7 @@ struct hci_uart {
 #define HCI_UART_REGISTERED		1
 #define HCI_UART_PROTO_READY		2
 #define HCI_UART_NO_SUSPEND_NOTIFIER	3
+#define HCI_UART_PROTO_INIT		4
 
 /* TX states  */
 #define HCI_UART_SENDING	1
drivers/bus/mhi/host/main.c +10 -6
index 8378c3319cd5..b4bb4f8b8f44 100644
@@ -1201,11 +1201,16 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	struct mhi_ring_element *mhi_tre;
 	struct mhi_buf_info *buf_info;
 	int eot, eob, chain, bei;
-	int ret;
+	int ret = 0;
 
 	/* Protect accesses for reading and incrementing WP */
 	write_lock_bh(&mhi_chan->lock);
 
+	if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) {
+		ret = -ENODEV;
+		goto out;
+	}
+
 	buf_ring = &mhi_chan->buf_ring;
 	tre_ring = &mhi_chan->tre_ring;
 
@@ -1223,10 +1228,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 
 	if (!info->pre_mapped) {
 		ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
-		if (ret) {
-			write_unlock_bh(&mhi_chan->lock);
-			return ret;
-		}
+		if (ret)
+			goto out;
 	}
 
 	eob = !!(flags & MHI_EOB);
@@ -1243,9 +1246,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
 	mhi_add_ring_element(mhi_cntrl, tre_ring);
 	mhi_add_ring_element(mhi_cntrl, buf_ring);
 
+out:
 	write_unlock_bh(&mhi_chan->lock);
 
-	return 0;
+	return ret;
 }
 
 int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir,
drivers/char/tpm/tpm_tis_core.c +15 -5
index 5889d9edaf94..caf9ba2dc0b1 100644
@@ -104,11 +104,10 @@ static int wait_for_tpm_stat(struct tpm_chip *chip, u8 mask,
 		return 0;
 	/* process status changes without irq support */
 	do {
+		usleep_range(priv->timeout_min, priv->timeout_max);
 		status = chip->ops->status(chip);
 		if ((status & mask) == mask)
 			return 0;
-		usleep_range(priv->timeout_min,
-			     priv->timeout_max);
 	} while (time_before(jiffies, stop));
 	return -ETIME;
 }
@@ -433,7 +432,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 		if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 					&priv->int_queue, false) < 0) {
-			rc = -ETIME;
+			if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+				rc = -EAGAIN;
+			else
+				rc = -ETIME;
 			goto out_err;
 		}
 		status = tpm_tis_status(chip);
@@ -450,7 +452,10 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len)
 
 	if (wait_for_tpm_stat(chip, TPM_STS_VALID, chip->timeout_c,
 				&priv->int_queue, false) < 0) {
-		rc = -ETIME;
+		if (test_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags))
+			rc = -EAGAIN;
+		else
+			rc = -ETIME;
 		goto out_err;
 	}
 	status = tpm_tis_status(chip);
@@ -505,9 +510,11 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len)
 		if (rc >= 0)
 			/* Data transfer done successfully */
 			break;
-		else if (rc != -EIO)
+		else if (rc != -EAGAIN && rc != -EIO)
 			/* Data transfer failed, not recoverable */
 			return rc;
+
+		usleep_range(priv->timeout_min, priv->timeout_max);
 	}
 
 	rc = tpm_tis_verify_crc(priv, len, buf);
@@ -1044,6 +1051,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
 		priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
 	}
 
+	if (priv->manufacturer_id == TPM_VID_IFX)
+		set_bit(TPM_TIS_STATUS_VALID_RETRY, &priv->flags);
+
 	if (is_bsw()) {
 		priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
 					ILB_REMAP_SIZE);
drivers/char/tpm/tpm_tis_core.h +1 -0
index 610bfadb6acf..be72681ab8ea 100644
@@ -88,6 +88,7 @@ enum tpm_tis_flags {
 	TPM_TIS_INVALID_STATUS		= 1,
 	TPM_TIS_DEFAULT_CANCELLATION	= 2,
 	TPM_TIS_IRQ_TESTED		= 3,
+	TPM_TIS_STATUS_VALID_RETRY	= 4,
 };
 
 struct tpm_tis_data {
drivers/clk/qcom/gdsc.c +38 -23

108 lines not on this page · raw message

drivers/clocksource/timer-stm32-lp.c +1 -3
index db2841d0beb8..90c10f378df2 100644
@@ -168,9 +168,7 @@ static int stm32_clkevent_lp_probe(struct platform_device *pdev)
 	}
 
 	if (of_property_read_bool(pdev->dev.parent->of_node, "wakeup-source")) {
-		ret = device_init_wakeup(&pdev->dev, true);
-		if (ret)
-			goto out_clk_disable;
+		device_set_wakeup_capable(&pdev->dev, true);
 
 		ret = dev_pm_set_wake_irq(&pdev->dev, irq);
 		if (ret)
drivers/cpufreq/cpufreq.c +8 -0
index 04d89cf0d71d..779ec6e510f7 100644
@@ -2673,10 +2673,18 @@ EXPORT_SYMBOL(cpufreq_update_policy);
  */
 void cpufreq_update_limits(unsigned int cpu)
 {
+	struct cpufreq_policy *policy;
+
+	policy = cpufreq_cpu_get(cpu);
+	if (!policy)
+		return;
+
 	if (cpufreq_driver->update_limits)
 		cpufreq_driver->update_limits(cpu);
 	else
 		cpufreq_update_policy(cpu);
+
+	cpufreq_cpu_put(policy);
 }
 EXPORT_SYMBOL_GPL(cpufreq_update_limits);
 
drivers/crypto/caam/qi.c +3 -3
index 9f6db61e5c0d..df12b562ad3b 100644
@@ -115,12 +115,12 @@ int caam_qi_enqueue(struct device *qidev, struct caam_drv_req *req)
 	qm_fd_addr_set64(&fd, addr);
 
 	do {
+		refcount_inc(&req->drv_ctx->refcnt);
 		ret = qman_enqueue(req->drv_ctx->req_fq, &fd);
-		if (likely(!ret)) {
-			refcount_inc(&req->drv_ctx->refcnt);
+		if (likely(!ret))
 			return 0;
-		}
 
+		refcount_dec(&req->drv_ctx->refcnt);
 		if (ret != -EBUSY)
 			break;
 		num_retries++;
drivers/crypto/ccp/sp-pci.c +9 -6
index 55411b494d69..32c0b2744654 100644
@@ -179,14 +179,17 @@ static bool sp_pci_is_master(struct sp_device *sp)
 	pdev_new = to_pci_dev(dev_new);
 	pdev_cur = to_pci_dev(dev_cur);
 
-	if (pdev_new->bus->number < pdev_cur->bus->number)
-		return true;
+	if (pci_domain_nr(pdev_new->bus) != pci_domain_nr(pdev_cur->bus))
+		return pci_domain_nr(pdev_new->bus) < pci_domain_nr(pdev_cur->bus);
 
-	if (PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn))
-		return true;
+	if (pdev_new->bus->number != pdev_cur->bus->number)
+		return pdev_new->bus->number < pdev_cur->bus->number;
 
-	if (PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn))
-		return true;
+	if (PCI_SLOT(pdev_new->devfn) != PCI_SLOT(pdev_cur->devfn))
+		return PCI_SLOT(pdev_new->devfn) < PCI_SLOT(pdev_cur->devfn);
+
+	if (PCI_FUNC(pdev_new->devfn) != PCI_FUNC(pdev_cur->devfn))
+		return PCI_FUNC(pdev_new->devfn) < PCI_FUNC(pdev_cur->devfn);
 
 	return false;
 }
drivers/gpio/gpio-tegra186.c +14 -13
index 54d9fa7da9c1..7185554b025e 100644
@@ -753,6 +753,7 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	struct gpio_irq_chip *irq;
 	struct tegra_gpio *gpio;
 	struct device_node *np;
+	struct resource *res;
 	char **names;
 	int err;
 
@@ -772,19 +773,19 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
 	gpio->num_banks++;
 
 	/* get register apertures */
-	gpio->secure = devm_platform_ioremap_resource_byname(pdev, "security");
-	if (IS_ERR(gpio->secure)) {
-		gpio->secure = devm_platform_ioremap_resource(pdev, 0);
-		if (IS_ERR(gpio->secure))
-			return PTR_ERR(gpio->secure);
-	}
-
-	gpio->base = devm_platform_ioremap_resource_byname(pdev, "gpio");
-	if (IS_ERR(gpio->base)) {
-		gpio->base = devm_platform_ioremap_resource(pdev, 1);
-		if (IS_ERR(gpio->base))
-			return PTR_ERR(gpio->base);
-	}
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "security");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	gpio->secure = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->secure))
+		return PTR_ERR(gpio->secure);
+
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpio");
+	if (!res)
+		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	gpio->base = devm_ioremap_resource(&pdev->dev, res);
+	if (IS_ERR(gpio->base))
+		return PTR_ERR(gpio->base);
 
 	err = platform_irq_count(pdev);
 	if (err < 0)
drivers/gpio/gpio-zynq.c +1 -0
index 06c6401f02b8..1d8168153a1c 100644
@@ -1012,6 +1012,7 @@ static int zynq_gpio_remove(struct platform_device *pdev)
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
 		dev_warn(&pdev->dev, "pm_runtime_get_sync() Failed\n");
+	device_init_wakeup(&pdev->dev, 0);
 	gpiochip_remove(&gpio->chip);
 	clk_disable_unprepare(gpio->clk);
 	device_set_wakeup_capable(&pdev->dev, 0);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +9 -1
index b41a97185823..fcd0c61499f8 100644
@@ -6186,6 +6186,7 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
 {
 	struct dma_fence *old = NULL;
 
+	dma_fence_get(gang);
 	do {
 		dma_fence_put(old);
 		rcu_read_lock();
@@ -6195,12 +6196,19 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
 		if (old == gang)
 			break;
 
-		if (!dma_fence_is_signaled(old))
+		if (!dma_fence_is_signaled(old)) {
+			dma_fence_put(gang);
 			return old;
+		}
 
 	} while (cmpxchg((struct dma_fence __force **)&adev->gang_submit,
 			 old, gang) != old);
 
+	/*
+	 * Drop it once for the exchanged reference in adev and once for the
+	 * thread local reference acquired in amdgpu_device_get_gang().
+	 */
+	dma_fence_put(old);
 	dma_fence_put(old);
 	return NULL;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +1 -1
index e8b3e9520cf6..ab06cb4d7b35 100644
@@ -210,7 +210,7 @@ static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach,
 				 struct sg_table *sgt,
 				 enum dma_data_direction dir)
 {
-	if (sgt->sgl->page_link) {
+	if (sg_page(sgt->sgl)) {
 		dma_unmap_sgtable(attach->dev, sgt, dir, 0);
 		sg_free_table(sgt);
 		kfree(sgt);
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +24 -20

84 lines not on this page · raw message

drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +10 -0
index f83574107eb8..773913a7d6e9 100644
@@ -208,6 +208,11 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	if (!access_ok((const void __user *) args->read_pointer_address,
 			sizeof(uint32_t))) {
 		pr_err("Can't access read pointer\n");
@@ -464,6 +469,11 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,
 		return -EINVAL;
 	}
 
+	if (args->ring_size < KFD_MIN_QUEUE_RING_SIZE) {
+		args->ring_size = KFD_MIN_QUEUE_RING_SIZE;
+		pr_debug("Size lower. clamped to KFD_MIN_QUEUE_RING_SIZE");
+	}
+
 	properties.queue_address = args->ring_base_address;
 	properties.queue_size = args->ring_size;
 	properties.queue_percent = args->queue_percentage;
drivers/gpu/drm/amd/amdkfd/kfd_process.c +17 -0
index 99e2aef52ef2..bc01c5173ab9 100644
@@ -36,6 +36,7 @@
 #include <linux/pm_runtime.h>
 #include "amdgpu_amdkfd.h"
 #include "amdgpu.h"
+#include "amdgpu_reset.h"
 
 struct mm_struct;
 
@@ -1114,6 +1115,17 @@ static void kfd_process_remove_sysfs(struct kfd_process *p)
 	p->kobj = NULL;
 }
 
+/*
+ * If any GPU is ongoing reset, wait for reset complete.
+ */
+static void kfd_process_wait_gpu_reset_complete(struct kfd_process *p)
+{
+	int i;
+
+	for (i = 0; i < p->n_pdds; i++)
+		flush_workqueue(p->pdds[i]->dev->adev->reset_domain->wq);
+}
+
 /* No process locking is needed in this function, because the process
  * is not findable any more. We must assume that no other thread is
  * using it any more, otherwise we couldn't safely free the process
@@ -1127,6 +1139,11 @@ static void kfd_process_wq_release(struct work_struct *work)
 	kfd_process_dequeue_from_all_devices(p);
 	pqm_uninit(&p->pqm);
 
+	/*
+	 * If GPU in reset, user queues may still running, wait for reset complete.
+	 */
+	kfd_process_wait_gpu_reset_complete(p);
+
 	/* Signal the eviction fence after user mode queues are
 	 * destroyed. This allows any BOs to be freed without
 	 * triggering pointless evictions or waiting for fences.
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -1
index 1918a3c06ac8..a15bf1e38276 100644
@@ -429,7 +429,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
 			pr_err("Pasid 0x%x destroy queue %d failed, ret %d\n",
 				pqm->process->pasid,
 				pqn->q->properties.queue_id, retval);
-			if (retval != -ETIME)
+			if (retval != -ETIME && retval != -EIO)
 				goto err_destroy_queue;
 		}
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +7 -7
index 5a837e3df7f3..f4db6c13049d 100644
@@ -4499,17 +4499,17 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
 		}
 	}
 
+	if (link_cnt > (MAX_PIPES * 2)) {
+		DRM_ERROR(
+			"KMS: Cannot support more than %d display indexes\n",
+				MAX_PIPES * 2);
+		goto fail;
+	}
+
 	/* loops over all connectors on the board */
 	for (i = 0; i < link_cnt; i++) {
 		struct dc_link *link = NULL;
 
-		if (i > AMDGPU_DM_MAX_DISPLAY_INDEX) {
-			DRM_ERROR(
-				"KMS: Cannot support more than %d display indexes\n",
-					AMDGPU_DM_MAX_DISPLAY_INDEX);
-			continue;
-		}
-
 		aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
 		if (!aconnector)
 			goto fail;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +9 -13
index 416168c7dcc5..b120aa67d26c 100644
@@ -1947,20 +1947,11 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 	dc->hwss.get_position(&pipe_ctx, 1, &position);
 	vpos = position.vertical_count;
 
-	/* Avoid wraparound calculation issues */
-	vupdate_start += stream->timing.v_total;
-	vupdate_end += stream->timing.v_total;
-	vpos += stream->timing.v_total;
-
 	if (vpos <= vupdate_start) {
 		/* VPOS is in VACTIVE or back porch. */
 		lines_to_vupdate = vupdate_start - vpos;
-	} else if (vpos > vupdate_end) {
-		/* VPOS is in the front porch. */
-		return;
 	} else {
-		/* VPOS is in VUPDATE. */
-		lines_to_vupdate = 0;
+		lines_to_vupdate = stream->timing.v_total - vpos + vupdate_start;
 	}
 
 	/* Calculate time until VUPDATE in microseconds. */
@@ -1968,13 +1959,18 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
 		stream->timing.h_total * 10000u / stream->timing.pix_clk_100hz;
 	us_to_vupdate = lines_to_vupdate * us_per_line;
 
+	/* Stall out until the cursor update completes. */
+	if (vupdate_end < vupdate_start)
+		vupdate_end += stream->timing.v_total;
+
+	/* Position is in the range of vupdate start and end*/
+	if (lines_to_vupdate > stream->timing.v_total - vupdate_end + vupdate_start)
+		us_to_vupdate = 0;
+
 	/* 70 us is a conservative estimate of cursor update time*/
 	if (us_to_vupdate > 70)
 		return;
 
-	/* Stall out until the cursor update completes. */
-	if (vupdate_end < vupdate_start)
-		vupdate_end += stream->timing.v_total;
 	us_vupdate = (vupdate_end - vupdate_start + 1) * us_per_line;
 	udelay(us_to_vupdate + us_vupdate);
 }
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c +1 -1
index 39a57bcd7866..576acf2ce10d 100644
@@ -44,7 +44,7 @@ void hubp31_set_unbounded_requesting(struct hubp *hubp, bool enable)
 	struct dcn20_hubp *hubp2 = TO_DCN20_HUBP(hubp);
 
 	REG_UPDATE(DCHUBP_CNTL, HUBP_UNBOUNDED_REQ_MODE, enable);
-	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, enable);
+	REG_UPDATE(CURSOR_CONTROL, CURSOR_REQ_MODE, 1);
 }
 
 void hubp31_soft_reset(struct hubp *hubp, bool reset)
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +5 -0
index eae4b4826f04..ab8ae7464664 100644
@@ -51,6 +51,11 @@ static int amd_powerplay_create(struct amdgpu_device *adev)
 	hwmgr->adev = adev;
 	hwmgr->not_vf = !amdgpu_sriov_vf(adev);
 	hwmgr->device = amdgpu_cgs_create_device(adev);
+	if (!hwmgr->device) {
+		kfree(hwmgr);
+		return -ENOMEM;
+	}
+
 	mutex_init(&hwmgr->msg_lock);
 	hwmgr->chip_family = adev->family;
 	hwmgr->chip_id = adev->asic_type;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c +2 -2
index a6c3610db23e..7209e965dc52 100644
@@ -267,10 +267,10 @@ int smu7_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
 			(hwmgr->thermal_controller.fanInfo.
 			ucTachometerPulsesPerRevolution == 0) ||
-			speed == 0 ||
+			(!speed || speed > UINT_MAX/8) ||
 			(speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 			(speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return 0;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		smu7_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +2 -2
index 190af79f3236..e93b7c4aa8c9 100644
@@ -307,10 +307,10 @@ int vega10_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	int result = 0;
 
 	if (hwmgr->thermal_controller.fanInfo.bNoFan ||
-	    speed == 0 ||
+	    (!speed || speed > UINT_MAX/8) ||
 	    (speed < hwmgr->thermal_controller.fanInfo.ulMinRPM) ||
 	    (speed > hwmgr->thermal_controller.fanInfo.ulMaxRPM))
-		return -1;
+		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
 		result = vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c +1 -1
index f4f4efdbda79..56526f489902 100644
@@ -191,7 +191,7 @@ int vega20_fan_ctrl_set_fan_speed_rpm(struct pp_hwmgr *hwmgr, uint32_t speed)
 	uint32_t tach_period, crystal_clock_freq;
 	int result = 0;
 
-	if (!speed)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 
 	if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl)) {
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +3 -0
index 9cd005131f56..ff4447702b12 100644
@@ -1273,6 +1273,9 @@ static int arcturus_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t crystal_clock_freq = 2500;
 	uint32_t tach_period;
 
+	if (!speed || speed > UINT_MAX/8)
+		return -EINVAL;
+
 	tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed);
 	WREG32_SOC15(THM, 0, mmCG_TACH_CTRL_ARCT,
 		     REG_SET_FIELD(RREG32_SOC15(THM, 0, mmCG_TACH_CTRL_ARCT),
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +1 -1
index 2e061a74a0b7..6c10140b15cc 100644
@@ -1228,7 +1228,7 @@ int smu_v11_0_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t crystal_clock_freq = 2500;
 	uint32_t tach_period;
 
-	if (speed == 0)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 	/*
 	 * To prevent from possible overheat, some ASICs may have requirement
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +1 -1
index e159f715c1c2..00af9edb9eba 100644
@@ -1265,7 +1265,7 @@ int smu_v13_0_set_fan_speed_rpm(struct smu_context *smu,
 	uint32_t tach_period;
 	int ret;
 
-	if (!speed)
+	if (!speed || speed > UINT_MAX/8)
 		return -EINVAL;
 
 	ret = smu_v13_0_auto_fan_control(smu, 0);
drivers/gpu/drm/drm_atomic_helper.c +1 -1
index b097bff1cd18..66d223c2d9ab 100644
@@ -1389,7 +1389,7 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
 		mode = &new_crtc_state->mode;
 		adjusted_mode = &new_crtc_state->adjusted_mode;
 
-		if (!new_crtc_state->mode_changed)
+		if (!new_crtc_state->mode_changed && !new_crtc_state->connectors_changed)
 			continue;
 
 		drm_dbg_atomic(dev, "modeset on [ENCODER:%d:%s]\n",
drivers/gpu/drm/drm_panel.c +4 -1
index 7fd3de89ed07..acd29b4f43f8 100644
@@ -49,7 +49,7 @@ static LIST_HEAD(panel_list);
  * @dev: parent device of the panel
  * @funcs: panel operations
  * @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
- *	the panel interface
+ *	the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
  *
  * Initialize the panel structure for subsequent registration with
  * drm_panel_add().
@@ -57,6 +57,9 @@ static LIST_HEAD(panel_list);
 void drm_panel_init(struct drm_panel *panel, struct device *dev,
 		    const struct drm_panel_funcs *funcs, int connector_type)
 {
+	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
+		DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
+
 	INIT_LIST_HEAD(&panel->list);
 	panel->dev = dev;
 	panel->funcs = funcs;
drivers/gpu/drm/drm_panel_orientation_quirks.c +44 -2

58 lines not on this page · raw message

drivers/gpu/drm/i915/gvt/opregion.c +4 -3
index d2bed466540a..3da476dec1da 100644

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

drivers/gpu/drm/mediatek/mtk_dpi.c +16 -7
index 1f5d39a4077c..1fa958e8c40a 100644

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

drivers/gpu/drm/msm/adreno/a6xx_gmu.c +39 -33

72 lines not on this page · raw message

drivers/gpu/drm/nouveau/nouveau_bo.c +3 -0
index f2dca41e46c5..2953d6a6d390 100644

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

drivers/gpu/drm/nouveau/nouveau_gem.c +0 -3
index fab542a758ff..a14728427ee4 100644

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

drivers/gpu/drm/sti/Makefile +0 -2
index f203ac5514ae..f778a4eee7c9 100644

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

drivers/gpu/drm/tiny/repaper.c +2 -2
index 7e2b0e224135..ebb9b1f782f9 100644

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

drivers/hid/usbhid/hid-pidff.c +41 -19

60 lines not on this page · raw message

drivers/hsi/clients/ssi_protocol.c +1 -0
index 274ad8443f8c..b3f1b7746eab 100644

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

drivers/i2c/busses/i2c-cros-ec-tunnel.c +3 -0
index 4e787dc709f9..d13b5f804540 100644

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

drivers/i3c/master.c +3 -0
index 7bb005de974e..18103c1e8d76 100644

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

drivers/i3c/master/svc-i3c-master.c +1 -1
index 157ff26d40be..38095649ed27 100644

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

drivers/infiniband/core/cma.c +3 -1
index 067d7f42871f..bb3c361bd8d4 100644

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

drivers/infiniband/core/umem_odp.c +4 -2
index e9fa22d31c23..c48ef6083020 100644

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

drivers/infiniband/hw/hns/hns_roce_main.c +1 -1
index 5106b3ce89f0..eae22ac42e05 100644

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

drivers/infiniband/hw/usnic/usnic_ib_main.c +7 -7
index 46653ad56f5a..ec2d8f78c898 100644

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

drivers/iommu/mtk_iommu.c +13 -13
index 576163f88a4a..d4cb09b2e267 100644

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

drivers/md/dm-ebs-target.c +7 -0
index 828a98acf2a6..9f0ce838d512 100644

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

drivers/md/dm-integrity.c +3 -0
index e0ffac93f900..c1f1f4ad608d 100644

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

drivers/md/dm-verity-target.c +8 -0
index 52585e2c61aa..a3c1682a2298 100644

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

drivers/md/md-bitmap.c +2 -3
index e18e21b24210..02629516748e 100644

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

drivers/md/md.c +30 -20

50 lines not on this page · raw message

drivers/md/raid10.c +1 -0
index f608f30c7d6a..24427eddf61b 100644

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

drivers/media/common/siano/smsdvb-main.c +2 -0
index f80caaa333da..67c47e3d671d 100644

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

drivers/media/i2c/adv748x/adv748x.h +1 -1
index d75eb3d8be5a..2e827bec5823 100644

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

drivers/media/i2c/ccs/ccs-core.c +4 -2
index eb9ad5a50d95..0579fae3d014 100644

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

drivers/media/i2c/ov7251.c +3 -1
index 88e987435285..a418edae893a 100644

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

drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c +2 -1
index cf16cf2807f0..f0e207044bf3 100644

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

drivers/media/platform/qcom/venus/hfi_parser.c +74 -26

100 lines not on this page · raw message

drivers/media/platform/qcom/venus/hfi_venus.c +16 -2
index d46938aab26b..92ea4642d898 100644

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

drivers/media/platform/st/stm32/dma2d/dma2d.c +2 -1
index 9706aa41b5d2..1a8c4b76df0d 100644

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

drivers/media/rc/streamzap.c +38 -30

68 lines not on this page · raw message

drivers/media/test-drivers/vim2m.c +3 -3
index 7964426bf2f7..3367cdf9f104 100644

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

drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
index 2cf5dcee0ce8..4d05873892c1 100644

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

drivers/mfd/ene-kb3930.c +1 -1
index 3eff98e26bea..6f8e39fe44ab 100644

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

drivers/misc/pci_endpoint_test.c +5 -1
index 18059a12d4e1..7b5fc0a50231 100644

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

drivers/mmc/host/dw_mmc.c +92 -2

94 lines not on this page · raw message

drivers/mmc/host/dw_mmc.h +27 -0
index 4ed81f94f7ca..af16dbb37f26 100644

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

drivers/mtd/inftlcore.c +5 -4
index 58ca1c21ebe6..cd1eeb7a8cf1 100644

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

drivers/mtd/mtdpstore.c +6 -6
index 7ac8ac901306..9cf3872e37ae 100644

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

drivers/mtd/nand/raw/brcmnand/brcmnand.c +1 -1
index 39661e23d7d4..20c6aeef107c 100644

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

drivers/mtd/nand/raw/r852.c +3 -0
index ed0cf732d20e..36cfe03cd4ac 100644

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

drivers/net/dsa/b53/b53_common.c +10 -0
index 463c6d84ae1b..ea7d2c01e672 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +29 -1
index b485176e53cd..4c60f79ce269 100644

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

drivers/net/dsa/mv88e6xxx/devlink.c +2 -1
index 1266eabee086..2ab2eb2cb47b 100644

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

drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +1 -0
index 8477a93cee6b..b77897aa06c4 100644

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

drivers/net/ethernet/google/gve/gve_ethtool.c +3 -1
index 033f17cb96be..7e60139f8ac5 100644

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

drivers/net/ethernet/intel/igc/igc_defines.h +1 -0
index 8187a658dcbd..17a7e3c875cc 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +1 -0
index 6ae2d0b723c8..082f78beeb4e 100644

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

drivers/net/ethernet/intel/igc/igc_ptp.c +56 -37

93 lines not on this page · raw message

drivers/net/ppp/ppp_synctty.c +5 -0
index 94ef6f9ca510..fb533c43deee 100644

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

drivers/net/wireless/atmel/at76c50x-usb.c +1 -1
index 24e609c1f523..4a15c22cf348 100644

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

drivers/net/wireless/mediatek/mt76/eeprom.c +4 -0
index 0a88048b8976..d35f31378ac1 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +1 -0
index 55068f3252ef..d80430999219 100644

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

drivers/net/wireless/ti/wl1251/tx.c +3 -1
index e9dc3c72bb11..06dc74cc6cb5 100644

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

drivers/ntb/ntb_transport.c +1 -1
index 5b25260e5925..43b387ba9eb1 100644

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

drivers/nvme/target/fc.c +0 -14
index 8a02ed63b156..d40d5a4ea932 100644

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

drivers/nvme/target/fcloop.c +1 -1
index f5b8442b653d..787dfb3859a0 100644

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

drivers/of/irq.c +46 -34

80 lines not on this page · raw message

drivers/pci/controller/pcie-brcmstb.c +9 -4
index 3056e9b7223e..425db793080d 100644

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

drivers/pci/controller/vmd.c +6 -6
index a1dd614bdc32..09995b6e73bc 100644

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

drivers/pci/pci.c +0 -4
index f411cef0186e..8a35a9887302 100644

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

drivers/pci/probe.c +4 -1
index bd3532764877..b4ed95c4a5a6 100644

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

drivers/perf/arm_pmu.c +3 -5
index 3f07df5a7e95..d351d6ce750b 100644

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

drivers/pinctrl/qcom/pinctrl-msm.c +6 -6
index 8bf8b21954fe..7d25d95e156c 100644

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

drivers/platform/x86/asus-laptop.c +6 -3
index 47b2f8bb6fb5..c60744d97d5b 100644

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

drivers/ptp/ptp_ocp.c +1 -0
index 87b960e941ba..b6f66a9886ce 100644

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

drivers/pwm/pwm-fsl-ftm.c +6 -0
index 0247757f9a72..6751f3d00560 100644

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

drivers/pwm/pwm-mediatek.c +6 -2
index a337b47dc2f7..10c2ed23f551 100644

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

drivers/pwm/pwm-rcar.c +13 -11
index 55f46d09602b..b2e75d870532 100644

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

drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +7 -2
index 50697672146a..ae39f6b5dc9a 100644

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

drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +12 -2
index 05dcd925a3fa..20b4d76e0714 100644

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

drivers/scsi/megaraid/megaraid_sas_base.c +7 -2
index f4b32ce45ce0..247e84e989aa 100644

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

drivers/scsi/megaraid/megaraid_sas_fusion.c +4 -1
index 1475f3e259c1..4c79d699543e 100644

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

drivers/scsi/scsi_transport_iscsi.c +5 -2
index 687487ea4fd3..7f0fd03dd03b 100644

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

drivers/scsi/st.c +1 -1
index b3caa3b9722d..7f107be34423 100644

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

drivers/soc/samsung/exynos-chipid.c +2 -0
index 0fb3631e7346..b80bd80aa012 100644

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

drivers/spi/spi-cadence-quadspi.c +6 -0
index b371e4eb41ec..42861bc45073 100644

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

drivers/thermal/rockchip_thermal.c +1 -0
index 819e059cde71..9fc375cee5a6 100644

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

drivers/ufs/host/ufs-exynos.c +6 -0
index c0030a03dd34..064829640c18 100644

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

drivers/vdpa/mlx5/core/mr.c +5 -2
index b6ac21b0322d..8cc84840efe8 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -1
index 92fb6b7e1f68..a6225f962190 100644

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

drivers/xen/swiotlb-xen.c +1 -1
index fe52c8cbf136..0893c1012de6 100644

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

drivers/xen/xenfs/xensyms.c +2 -2
index c6c73a33c44d..18bc11756ad3 100644

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

fs/Kconfig +1 -0
index 703a1cea0fc0..7104e3eb38eb 100644

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

fs/btrfs/disk-io.c +12 -0
index 30fe5ebc3650..de4f590fe30f 100644

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

fs/btrfs/inode.c +5 -1
index a13ab3abef12..2195e07803b8 100644

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

fs/btrfs/super.c +1 -2
index c0ff0c2fc01d..91b19d66449b 100644

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

fs/btrfs/zoned.c +6 -0
index 794526ab90d2..1dff64e62047 100644

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

fs/ext4/inode.c +48 -20

68 lines not on this page · raw message

fs/ext4/namei.c +1 -1
index b6a8b6c851cc..b8683c5acffe 100644

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

fs/ext4/super.c +17 -0
index 1568baedab07..7f0231b34905 100644

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

fs/ext4/xattr.c +10 -1
index 5598aec75775..95dbc7c9843b 100644

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

fs/f2fs/inode.c +4 -0
index 0f350368dea7..b8296b0414fc 100644

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

fs/f2fs/node.c +8 -1
index 745ecf5523c9..ccc72781e0c6 100644

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

fs/file.c +17 -9
index bc0c087b31bb..2eccbb5dcd86 100644

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

fs/fuse/virtio_fs.c +3 -0
index 92d41269f1d3..9e4f2ba0ef9d 100644

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

fs/hfs/bnode.c +6 -0
index 6add6ebfef89..cb823a8a6ba9 100644

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

fs/hfsplus/bnode.c +6 -0
index 87974d5e6791..079ea80534f7 100644

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

fs/isofs/export.c +1 -1
index 35768a63fb1d..421d247fae52 100644

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

fs/jbd2/journal.c +0 -1
index 55ada2b88146..41ab2dfd1ac2 100644

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

fs/jfs/jfs_dmap.c +7 -3
index 6509102e581a..5e32526174e8 100644

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

fs/jfs/jfs_imap.c +2 -2
index c72e97f06579..155f66812934 100644

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

fs/namespace.c +2 -1
index 59a9f877738b..57166cc7e511 100644

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

fs/nfs/Kconfig +1 -1
index 14a72224b657..899e25e9b4eb 100644

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

fs/nfs/internal.h +0 -22
index 7fa23a6368e0..ece517ebcca0 100644

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

fs/nfs/nfs4session.h +0 -4
index 351616c61df5..f9c291e2165c 100644

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

fs/nfsd/Kconfig +1 -0
index 7c441f2bd444..4f704f868d9c 100644

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

fs/nfsd/nfs4state.c +1 -1
index 628d20574a91..bdee95d714d0 100644

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

fs/nfsd/nfsfh.h +0 -7
index 513e028b0bbe..40aee06ebd95 100644

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

fs/smb/client/cifs_dfs_ref.c +32 -2
index 020e71fe1454..876f9a43a99d 100644

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

fs/smb/client/cifsproto.h +23 -0
index f37e4da0fe40..d1fd54fb3cc1 100644

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

fs/smb/client/connect.c +2 -0
index 01ce81f77e89..6aeb25006db8 100644

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

fs/smb/client/dir.c +15 -6
index 863c7bc3db86..477302157ab3 100644

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

fs/smb/client/file.c +28 -0
index d23dfc83de50..9b0919d9e337 100644

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

fs/smb/client/fs_context.c +5 -0
index de2366d05767..e6d2e4162b08 100644

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

fs/smb/client/smb2misc.c +5 -4
index 8c149cb531d3..01352d7c10f1 100644

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

fs/smb/server/oplock.c +1 -1
index a3c016a11e27..2fcfabc35b06 100644

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

fs/smb/server/smb2pdu.c +4 -2
index dbe272970c25..8c9857b36add 100644

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

fs/smb/server/transport_ipc.c +6 -1
index d1a432af43fb..7fc4b33b89e3 100644

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

fs/smb/server/vfs.c +2 -1
index 396d4ea77d34..25e8004a5905 100644

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

include/linux/backing-dev.h +1 -0
index 439815cc1ab9..c451adbe82f0 100644

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

include/linux/bpf.h +1 -0
index 2189c0d18fa7..e9c1338851e3 100644

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

include/linux/nfs.h +13 -0
index b06375e88e58..095a95c1fae8 100644

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

include/linux/rtnetlink.h +22 -0
index ae2c6a3cec5d..f532d1eda761 100644

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

include/linux/tpm.h +1 -0
index df5cd4245f29..dd0784a6e07d 100644

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

include/net/sctp/structs.h +2 -1
index 00ee9eb601a6..8995914916ca 100644

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

include/uapi/linux/kfd_ioctl.h +2 -0
index 42b60198b6c5..deed930ed305 100644

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

include/uapi/linux/landlock.h +2 -0
index 9c4bcc37a455..17bdfaa9eb87 100644

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

include/xen/interface/xen-mca.h +1 -1
index 464aa6b3a5f9..1c9afbe8cc26 100644

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

io_uring/kbuf.c +2 -0
index 55902303d7dc..147ada2ce747 100644

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

io_uring/net.c +2 -0
index d56e8a47e50f..898990e71367 100644

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

kernel/bpf/core.c +17 -2
index 83b416af4da1..c281f5b8705e 100644

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

kernel/bpf/syscall.c +10 -7
index 7a4004f09bae..27fdf1b2fc46 100644

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

kernel/locking/lockdep.c +3 -0
index 7fb9731bc5f5..5f8ce961cd9a 100644

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

kernel/sched/cpufreq_schedutil.c +15 -3
index 542c0e82a900..4dcb48973318 100644

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

kernel/trace/ftrace.c +1 -0
index ce8a8eae7e83..bd19c83c0e5e 100644

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

kernel/trace/trace_events.c +3 -1
index 94bb5f9251b1..ed0d0c8a2b4b 100644

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

kernel/trace/trace_events_filter.c +2 -2
index 86a0531efd43..23fbd1b10712 100644

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

lib/sg_split.c +0 -2
index 60a0babebf2e..0f89aab5c671 100644

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

lib/string.c +10 -3
index 3371d26a0e39..c4b8349ff058 100644

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

mm/filemap.c +1 -0
index 78bf403473fb..6649a853dc5f 100644

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

mm/gup.c +3 -3
index b1daaa9d89aa..37c55e61460e 100644

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

mm/memory-failure.c +8 -3
index 56b2dcc2c0d6..9ca2b58aceec 100644

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

mm/memory.c +2 -2
index 2e776ea38348..454d918449b3 100644

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

mm/rmap.c +1 -1
index 7da2d8d097d9..7d7bacd37ff4 100644

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

mm/vmscan.c +1 -1
index be863204d7c8..1f7a90ecc700 100644

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

net/8021q/vlan_dev.c +4 -27
index d3e511e1eba8..c08228d48834 100644

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

net/bluetooth/hci_event.c +3 -2
index 6cfd61628cd7..8667723d4e96 100644

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

net/bluetooth/l2cap_core.c +2 -1
index 21a79ef7092d..222105e24d2d 100644

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

net/bridge/br_vlan.c +3 -1
index 9ffd40b8270c..23a82567fe62 100644

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

net/core/filter.c +44 -36

80 lines not on this page · raw message

net/core/page_pool.c +7 -1
index caf6d950d54a..acc1d0d055cd 100644

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

net/dsa/tag_8021q.c +1 -1
index 89371b16416e..6a33f35a0f74 100644

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

net/ethtool/netlink.c +5 -3
index e5efdf2817ef..98c064113882 100644

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

net/ipv6/route.c +4 -4
index d6de164720a0..4e6b833dc40b 100644

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

net/mac80211/iface.c +3 -0
index 8861f63e2cfb..fc60e80088a3 100644

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

net/mac80211/mesh_hwmp.c +10 -4
index 9b1ce7c3925a..47eb67dc11cf 100644

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

net/mctp/af_mctp.c +3 -0
index 2316e7772b78..6a963eac1cc2 100644

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

net/mptcp/sockopt.c +28 -0
index 766797ace942..129c9e9ee396 100644

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

net/mptcp/subflow.c +12 -7
index c3e0ad7beb57..a6237eb55537 100644

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

net/netfilter/nft_set_pipapo_avx2.c +2 -1
index b8d3c3213efe..c15db28c5ebc 100644

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

net/openvswitch/flow_netlink.c +2 -1
index 5ebbec656895..0ed3953dbe52 100644

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

net/sched/cls_api.c +55 -19

74 lines not on this page · raw message

net/sched/sch_codel.c +1 -4
index d7a4874543de..5f2e06815745 100644

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

net/sched/sch_fq_codel.c +2 -4
index 8c4fee063436..9330923a624c 100644

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

net/sched/sch_sfq.c +50 -16

66 lines not on this page · raw message

net/sctp/socket.c +14 -8
index 0b201cd811a1..65162d67c3a3 100644

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

net/sctp/transport.c +2 -0
index 2990365c2f2c..87ed33b9db1b 100644

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

net/tipc/link.c +1 -0
index 8715c9b05f90..d6a8f0aa531b 100644

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

net/tls/tls_main.c +6 -0
index 75cd20c0e3fd..14d01558311d 100644

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

scripts/sign-file.c +68 -64

132 lines not on this page · raw message

scripts/ssl-common.h new file +32 -0
new file mode 100644
index 000000000000..2db0e181143c

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

security/landlock/errata.h new file +87 -0

87 lines not on this page · raw message

security/landlock/setup.c +30 -0
index f8e8e980454c..cdee579901da 100644

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

security/landlock/setup.h +3 -0
index 1daffab1ab4b..420dceca35d2 100644

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

security/landlock/syscalls.c +18 -4
index d0cb3d0cbf98..7590a74a55e5 100644

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

sound/pci/hda/hda_intel.c +43 -1

44 lines not on this page · raw message

sound/pci/hda/patch_realtek.c +1 -0
index 93e8990c23bc..61b48f2418bf 100644

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

sound/soc/amd/yc/acp6x-mach.c +7 -0
index 77ea8a6c2d6d..1f94269e121a 100644

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

sound/soc/codecs/lpass-wsa-macro.c +84 -33

117 lines not on this page · raw message

sound/soc/fsl/fsl_audmix.c +11 -5
index 672148dd4b23..acb499a5043c 100644

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

sound/soc/qcom/qdsp6/q6apm-dai.c +5 -4
index 7f02f5b2c33f..de99c6920df8 100644

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

sound/soc/qcom/qdsp6/q6asm-dai.c +13 -6
index 5fc8088e63c8..9d314f412abc 100644

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

sound/usb/midi.c +74 -6

80 lines not on this page · raw message

tools/power/cpupower/bench/parse.c +4 -0
index e63dc11fa3a5..48e25be6e163 100644

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

tools/testing/ktest/ktest.pl +8 -0
index aecea16cbd02..2109bd42c144 100755

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

tools/testing/radix-tree/linux.c +2 -2
index d587a558997f..11149bd12a1f 100644

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

tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +1 -1
index 7d7a6a06cdb7..2d8230da9064 100644

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

tools/testing/selftests/landlock/base_test.c +45 -1

46 lines not on this page · raw message

tools/testing/selftests/net/mptcp/mptcp_connect.c +5 -2
index ae2d76d4b404..a842f5ade6e3 100644

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

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

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