Linux 6.17.4
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.17.4 kernel.
All users of the 6.17 kernel series must upgrade.
The updated 6.17.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.17.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/kernel-parameters.txt | 3 Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml | 15 Makefile | 2 arch/arm/mach-omap2/am33xx-restart.c | 36 arch/arm/mach-omap2/pm33xx-core.c | 6 arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 arch/arm64/boot/dts/qcom/msm8939.dtsi | 2 arch/arm64/boot/dts/qcom/qcs615.dtsi | 6 arch/arm64/boot/dts/qcom/sdm845.dtsi | 4 arch/arm64/boot/dts/qcom/x1e80100-pmics.dtsi | 2 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 2 arch/arm64/boot/dts/ti/k3-am62p5.dtsi | 2 arch/arm64/include/asm/ftrace.h | 1 arch/arm64/kernel/cpufeature.c | 10 arch/arm64/kernel/mte.c | 2 arch/arm64/kernel/pi/map_kernel.c | 6 arch/arm64/kernel/probes/kprobes.c | 12 arch/arm64/kernel/setup.c | 4 arch/arm64/kvm/hyp/nvhe/mem_protect.c | 9 arch/arm64/kvm/mmu.c | 9 arch/arm64/mm/init.c | 2 arch/arm64/mm/mmu.c | 14 arch/loongarch/Makefile | 4 arch/loongarch/kernel/setup.c | 1 arch/parisc/include/uapi/asm/ioctls.h | 8 arch/parisc/lib/memcpy.c | 1 arch/powerpc/platforms/powernv/pci-ioda.c | 2 arch/powerpc/platforms/pseries/msi.c | 2 arch/s390/Makefile | 1 arch/s390/include/asm/pgtable.h | 22 arch/s390/kernel/vmlinux.lds.S | 54 - arch/s390/mm/gmap_helpers.c | 12 arch/s390/mm/pgtable.c | 23 arch/sparc/kernel/of_device_32.c | 1 arch/sparc/kernel/of_device_64.c | 1 arch/sparc/mm/hugetlbpage.c | 20 arch/x86/entry/entry_64_fred.S | 2 arch/x86/include/asm/kvm_host.h | 1 arch/x86/include/asm/msr-index.h | 1 arch/x86/kernel/kvm.c | 21 arch/x86/kernel/umip.c | 15 arch/x86/kvm/pmu.c | 5 arch/x86/kvm/svm/pmu.c | 1 arch/x86/kvm/svm/sev.c | 10 arch/x86/kvm/svm/svm.c | 25 arch/x86/kvm/svm/svm.h | 2 arch/x86/kvm/vmx/tdx.c | 10 arch/x86/kvm/x86.c | 8 arch/xtensa/platforms/iss/simdisk.c | 6 block/blk-crypto-fallback.c | 3 crypto/essiv.c | 14 crypto/skcipher.c | 2 drivers/acpi/acpi_dbg.c | 26 drivers/acpi/acpi_tad.c | 3 drivers/acpi/acpica/acdebug.h | 2 drivers/acpi/acpica/evglock.c | 4 drivers/acpi/battery.c | 43 drivers/acpi/property.c | 137 +- drivers/base/base.h | 9 drivers/base/core.c | 2 drivers/base/power/main.c | 24 drivers/base/power/runtime.c | 3 drivers/block/loop.c | 8 drivers/bus/mhi/ep/main.c | 37 drivers/bus/mhi/host/init.c | 5 drivers/cdx/cdx_msi.c | 1 drivers/char/ipmi/ipmi_kcs_sm.c | 16 drivers/char/ipmi/ipmi_msghandler.c | 484 ++++------ drivers/char/tpm/tpm_tis_core.c | 4 drivers/clk/Kconfig | 1 drivers/clk/at91/clk-peripheral.c | 7 drivers/clk/mediatek/clk-mt8195-infra_ao.c | 2 drivers/clk/mediatek/clk-mux.c | 4 drivers/clk/nxp/clk-lpc18xx-cgu.c | 20 drivers/clk/qcom/Kconfig | 2 drivers/clk/qcom/common.c | 4 drivers/clk/qcom/tcsrcc-x1e80100.c | 4 drivers/clk/renesas/r9a08g045-cpg.c | 3 drivers/clk/renesas/renesas-cpg-mssr.c | 7 drivers/clk/samsung/clk-exynos990.c | 52 - drivers/clk/tegra/clk-bpmp.c | 2 drivers/clk/thead/clk-th1520-ap.c | 394 ++++---- drivers/clocksource/clps711x-timer.c | 23 drivers/cpufreq/cppc_cpufreq.c | 14 drivers/cpufreq/cpufreq-dt.c | 2 drivers/cpufreq/imx6q-cpufreq.c | 2 drivers/cpufreq/intel_pstate.c | 8 drivers/cpufreq/mediatek-cpufreq-hw.c | 2 drivers/cpufreq/rcpufreq_dt.rs | 2 drivers/cpufreq/scmi-cpufreq.c | 2 drivers/cpufreq/scpi-cpufreq.c | 2 drivers/cpufreq/spear-cpufreq.c | 2 drivers/cpufreq/tegra186-cpufreq.c | 8 drivers/crypto/aspeed/aspeed-hace-crypto.c | 2 drivers/crypto/atmel-tdes.c | 2 drivers/crypto/rockchip/rk3288_crypto_ahash.c | 2 drivers/firmware/arm_scmi/quirks.c | 15 drivers/firmware/meson/meson_sm.c | 7 drivers/firmware/samsung/exynos-acpm-pmic.c | 25 drivers/gpio/gpio-mpfs.c | 2 drivers/gpio/gpio-wcd934x.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 9 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 21 drivers/gpu/drm/amd/display/dc/dce/dce_transform.h | 4 drivers/gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 4 drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c | 6 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c | 4 drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c | 4 drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c | 16 drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c | 17 drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c | 16 drivers/gpu/drm/amd/display/dc/sspl/dc_spl.c | 10 drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_d.h | 7 drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h | 2 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 36 drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 28 drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 6 drivers/gpu/drm/nouveau/nouveau_bo.c | 2 drivers/gpu/drm/panthor/panthor_drv.c | 11 drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c | 5 drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h | 8 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 17 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 6 drivers/gpu/drm/xe/xe_hw_engine_group.c | 6 drivers/gpu/drm/xe/xe_pm.c | 2 drivers/gpu/drm/xe/xe_query.c | 15 drivers/hv/mshv_common.c | 2 drivers/hv/mshv_root_main.c | 3 drivers/i3c/master.c | 2 drivers/iio/adc/pac1934.c | 20 drivers/iio/adc/xilinx-ams.c | 47 drivers/iio/dac/ad5360.c | 2 drivers/iio/dac/ad5421.c | 2 drivers/iio/frequency/adf4350.c | 20 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 39 drivers/iommu/intel/iommu.c | 2 drivers/irqchip/irq-sifive-plic.c | 6 drivers/mailbox/mtk-cmdq-mailbox.c | 12 drivers/mailbox/zynqmp-ipi-mailbox.c | 24 drivers/md/md-linear.c | 1 drivers/md/raid0.c | 4 drivers/md/raid1.c | 4 drivers/md/raid10.c | 8 drivers/md/raid5.c | 2 drivers/media/cec/usb/extron-da-hd-4k-plus/Makefile | 6 drivers/media/i2c/mt9p031.c | 4 drivers/media/i2c/mt9v111.c | 2 drivers/media/mc/mc-devnode.c | 6 drivers/media/mc/mc-entity.c | 2 drivers/media/pci/cx18/cx18-queue.c | 13 drivers/media/pci/ivtv/ivtv-irq.c | 2 drivers/media/pci/ivtv/ivtv-yuv.c | 8 drivers/media/pci/mgb4/mgb4_trigger.c | 2 drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c | 3 drivers/media/platform/qcom/iris/iris_buffer.c | 31 drivers/media/platform/qcom/iris/iris_buffer.h | 1 drivers/media/platform/qcom/iris/iris_core.c | 10 drivers/media/platform/qcom/iris/iris_firmware.c | 15 drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c | 45 drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c | 4 drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c | 5 drivers/media/platform/qcom/iris/iris_state.c | 5 drivers/media/platform/qcom/iris/iris_state.h | 1 drivers/media/platform/qcom/iris/iris_vb2.c | 8 drivers/media/platform/qcom/iris/iris_vdec.c | 2 drivers/media/platform/qcom/iris/iris_vidc.c | 1 drivers/media/platform/qcom/iris/iris_vpu3x.c | 32 drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 drivers/media/platform/qcom/venus/firmware.c | 8 drivers/media/platform/qcom/venus/pm_helpers.c | 9 drivers/media/platform/renesas/vsp1/vsp1_vspx.c | 1 drivers/media/platform/samsung/s5p-mfc/s5p_mfc_cmd_v6.c | 35 drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 9 drivers/media/rc/lirc_dev.c | 9 drivers/media/test-drivers/vivid/vivid-cec.c | 12 drivers/media/usb/uvc/uvc_ctrl.c | 3 drivers/memory/samsung/exynos-srom.c | 10 drivers/memory/stm32_omm.c | 2 drivers/mmc/core/sdio.c | 6 drivers/mmc/host/mmc_spi.c | 2 drivers/mtd/nand/raw/fsmc_nand.c | 6 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 14 drivers/net/ethernet/airoha/airoha_eth.c | 4 drivers/net/ethernet/airoha/airoha_regs.h | 3 drivers/net/ethernet/freescale/fsl_pq_mdio.c | 2 drivers/net/ethernet/intel/ice/ice_adapter.c | 10 drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 38 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c | 32 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 5 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 18 drivers/net/ethernet/microchip/sparx5/sparx5_main.c | 5 drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c | 12 drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c | 10 drivers/net/ethernet/mscc/ocelot_stats.c | 2 drivers/net/mdio/mdio-i2c.c | 39 drivers/net/pse-pd/tps23881.c | 2 drivers/net/usb/lan78xx.c | 11 drivers/net/wireless/ath/ath11k/core.c | 6 drivers/net/wireless/ath/ath11k/hal.c | 16 drivers/net/wireless/ath/ath11k/hal.h | 1 drivers/net/wireless/intel/iwlwifi/mld/debugfs.c | 6 drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 3 drivers/net/wireless/mediatek/mt76/mt7925/usb.c | 3 drivers/net/wireless/realtek/rtw89/core.c | 39 drivers/net/wireless/realtek/rtw89/core.h | 3 drivers/net/wireless/realtek/rtw89/pci.c | 2 drivers/nvme/host/pci.c | 2 drivers/of/unittest.c | 1 drivers/pci/bus.c | 14 drivers/pci/controller/cadence/pci-j721e.c | 26 drivers/pci/controller/dwc/pci-keystone.c | 4 drivers/pci/controller/dwc/pcie-rcar-gen4.c | 2 drivers/pci/controller/dwc/pcie-tegra194.c | 32 drivers/pci/controller/pci-tegra.c | 27 drivers/pci/controller/pcie-rcar-host.c | 40 drivers/pci/controller/pcie-xilinx-nwl.c | 7 drivers/pci/iov.c | 5 drivers/pci/pci-driver.c | 1 drivers/pci/pci-sysfs.c | 20 drivers/pci/pcie/aer.c | 12 drivers/pci/pcie/err.c | 8 drivers/pci/probe.c | 19 drivers/pci/remove.c | 2 drivers/pci/setup-bus.c | 37 drivers/perf/arm-cmn.c | 9 drivers/pinctrl/samsung/pinctrl-samsung.h | 4 drivers/power/supply/max77976_charger.c | 12 drivers/pwm/core.c | 2 drivers/pwm/pwm-berlin.c | 4 drivers/rtc/interface.c | 27 drivers/rtc/rtc-isl12022.c | 1 drivers/rtc/rtc-optee.c | 1 drivers/rtc/rtc-x1205.c | 2 drivers/s390/block/dasd.c | 17 drivers/s390/cio/device.c | 37 drivers/s390/cio/ioasm.c | 7 drivers/scsi/hpsa.c | 21 drivers/scsi/mvsas/mv_init.c | 2 drivers/scsi/sd.c | 50 - drivers/spi/spi-cadence-quadspi.c | 18 drivers/staging/media/ipu7/ipu7-isys-video.c | 1 drivers/ufs/core/ufs-sysfs.c | 2 drivers/ufs/core/ufs-sysfs.h | 1 drivers/ufs/core/ufshcd.c | 2 drivers/video/fbdev/core/fb_cmdline.c | 2 drivers/xen/events/events_base.c | 37 drivers/xen/manage.c | 14 fs/attr.c | 44 fs/btrfs/export.c | 8 fs/btrfs/extent_io.c | 14 fs/cramfs/inode.c | 11 fs/eventpoll.c | 139 -- fs/ext4/ext4.h | 2 fs/ext4/fsmap.c | 14 fs/ext4/indirect.c | 2 fs/ext4/inode.c | 45 fs/ext4/move_extent.c | 2 fs/ext4/orphan.c | 17 fs/ext4/super.c | 26 fs/ext4/xattr.c | 19 fs/file.c | 5 fs/fs-writeback.c | 32 fs/fsopen.c | 70 - fs/fuse/dev.c | 2 fs/fuse/file.c | 8 fs/iomap/buffered-io.c | 15 fs/iomap/direct-io.c | 3 fs/minix/inode.c | 8 fs/namei.c | 8 fs/namespace.c | 110 +- fs/nfsd/export.c | 82 + fs/nfsd/export.h | 3 fs/nfsd/lockd.c | 15 fs/nfsd/nfs4proc.c | 33 fs/nfsd/nfs4state.c | 44 fs/nfsd/nfs4xdr.c | 5 fs/nfsd/nfsfh.c | 24 fs/nfsd/state.h | 8 fs/nfsd/vfs.c | 2 fs/nsfs.c | 4 fs/ntfs3/bitmap.c | 1 fs/pidfs.c | 2 fs/quota/dquot.c | 10 fs/read_write.c | 14 fs/smb/client/dir.c | 1 fs/smb/client/smb1ops.c | 62 + fs/smb/client/smb2inode.c | 22 fs/smb/client/smb2ops.c | 10 fs/squashfs/inode.c | 24 fs/xfs/scrub/reap.c | 9 include/acpi/acpixf.h | 6 include/asm-generic/io.h | 98 +- include/asm-generic/vmlinux.lds.h | 2 include/linux/cpufreq.h | 3 include/linux/fs.h | 15 include/linux/iio/frequency/adf4350.h | 2 include/linux/ksm.h | 8 include/linux/memcontrol.h | 26 include/linux/mm.h | 22 include/linux/pm_runtime.h | 56 - include/linux/rseq.h | 11 include/linux/sunrpc/svc_xprt.h | 3 include/media/v4l2-subdev.h | 30 include/trace/events/dma.h | 1 init/main.c | 12 io_uring/zcrx.c | 1 kernel/bpf/inode.c | 4 kernel/fork.c | 2 kernel/kexec_handover.c | 2 kernel/padata.c | 6 kernel/pid.c | 2 kernel/power/energy_model.c | 11 kernel/power/hibernate.c | 6 kernel/rseq.c | 10 kernel/sched/deadline.c | 73 + kernel/sys.c | 22 lib/genalloc.c | 5 mm/damon/lru_sort.c | 2 mm/damon/vaddr.c | 8 mm/huge_memory.c | 15 mm/hugetlb.c | 3 mm/memcontrol.c | 7 mm/migrate.c | 23 mm/page_alloc.c | 2 mm/slab.h | 8 mm/slub.c | 3 mm/util.c | 3 net/bridge/br_vlan.c | 2 net/core/filter.c | 2 net/core/page_pool.c | 76 + net/ipv4/tcp.c | 5 net/ipv4/tcp_input.c | 1 net/mptcp/ctrl.c | 2 net/mptcp/pm.c | 7 net/mptcp/pm_kernel.c | 50 + net/mptcp/protocol.h | 8 net/netfilter/nft_objref.c | 39 net/sctp/sm_make_chunk.c | 3 net/sctp/sm_statefuns.c | 6 net/sunrpc/svc_xprt.c | 13 net/sunrpc/svcsock.c | 2 net/xdp/xsk_queue.h | 45 rust/kernel/cpufreq.rs | 7 scripts/Makefile.vmlinux | 51 - scripts/mksysmap | 3 security/keys/trusted-keys/trusted_tpm1.c | 7 sound/soc/sof/intel/hda-pcm.c | 29 sound/soc/sof/intel/hda-stream.c | 29 sound/soc/sof/ipc4-topology.c | 9 sound/soc/sof/ipc4-topology.h | 7 tools/build/feature/Makefile | 4 tools/lib/perf/include/perf/event.h | 1 tools/perf/Makefile.perf | 2 tools/perf/builtin-trace.c | 4 tools/perf/perf.h | 2 tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json | 10 tools/perf/tests/perf-record.c | 4 tools/perf/tests/shell/amd-ibs-swfilt.sh | 51 - tools/perf/tests/shell/record_lbr.sh | 26 tools/perf/tests/shell/stat+event_uniquifying.sh | 109 +- tools/perf/tests/shell/trace_btf_enum.sh | 11 tools/perf/util/arm-spe.c | 6 tools/perf/util/bpf-filter.c | 8 tools/perf/util/bpf_counter.c | 26 tools/perf/util/bpf_counter_cgroup.c | 3 tools/perf/util/bpf_skel/kwork_top.bpf.c | 2 tools/perf/util/build-id.c | 7 tools/perf/util/disasm.c | 7 tools/perf/util/drm_pmu.c | 4 tools/perf/util/evsel.c | 42 tools/perf/util/lzma.c | 2 tools/perf/util/parse-events.c | 116 +- tools/perf/util/session.c | 2 tools/perf/util/setup.py | 5 tools/perf/util/zlib.c | 2 tools/power/acpi/tools/acpidump/apfiles.c | 2 tools/testing/selftests/net/mptcp/mptcp_join.sh | 11 tools/testing/selftests/net/netfilter/nf_nat_edemux.sh | 58 - tools/testing/selftests/net/netfilter/nft_fib.sh | 13 tools/testing/selftests/net/ovpn/ovpn-cli.c | 2 tools/testing/selftests/rseq/rseq.c | 8 384 files changed, 3685 insertions(+), 2233 deletions(-)
Aaron Kling (1):
cpufreq: tegra186: Set target frequency for all cpus in policy
Abel Vesa (1):
clk: qcom: tcsrcc-x1e80100: Set the bi_tcxo as parent to eDP refclk
Abinash Singh (1):
scsi: sd: Fix build warning in sd_revalidate_disk()
Adam Xue (1):
bus: mhi: host: Do not use uninitialized 'dev' pointer in mhi_init_irq_setup()
Ahmed Salem (2):
ACPICA: acpidump: drop ACPI_NONSTRING attribute from file_name
ACPICA: Debugger: drop ACPI_NONSTRING attribute from name_seg
Ahmet Eray Karadag (1):
ext4: guard against EA inode refcount underflow in xattr update
Akhil P Oommen (1):
drm/msm/a6xx: Fix PDC sleep sequence
Al Viro (1):
mnt_ns_tree_remove(): DTRT if mnt_ns had never been added to mnt_ns_list
Aleksa Sarai (1):
fscontext: do not consume log entries when returning -EMSGSIZE
Aleksandar Gerasimovski (1):
iio/adc/pac1934: fix channel disable configuration
Aleksandrs Vinarskis (1):
arm64: dts: qcom: x1e80100-pmics: Disable pm8010 by default
Alex Deucher (1):
drm/amdgpu: Add additional DCE6 SCL registers
Alexander Lobakin (1):
xsk: Harden userspace-supplied xdp_desc validation
Alexander Sverdlin (1):
ARM: AM33xx: Implement TI advisory 1.0.36 (EMU0/EMU1 pins state on reset)
Alexandr Sapozhnikov (1):
net/sctp: fix a null dereference in sctp_disposition sctp_sf_do_5_1D_ce()
Alexey Gladkov (1):
s390: vmlinux.lds.S: Reorder sections
Alok Tiwari (1):
clk: nxp: Fix pll0 rate check condition in LPC18xx CGU driver
Amir Mohammad Jahangirzad (1):
ACPI: debug: fix signedness issues in read/write helpers
Anderson Nascimento (1):
btrfs: avoid potential out-of-bounds in btrfs_encode_fh()
AngeloGioacchino Del Regno (1):
clk: mediatek: mt8195-infra_ao: Fix parent for infra_ao_hdmi_26m
Anthony Yznaga (1):
sparc64: fix hugetlb for sun4u
Ard Biesheuvel (1):
drm/amd/display: Fix unsafe uses of kernel mode FPU
Arnd Bergmann (2):
clk: npcm: select CONFIG_AUXILIARY_BUS
media: s5p-mfc: remove an unused/uninitialized variable
Askar Safin (1):
openat2: don't trigger automounts with RESOLVE_NO_XDEV
Baokun Li (1):
ext4: add ext4_sb_bread_nofail() helper function for ext4_free_branches()
Bartosz Golaszewski (1):
gpio: wcd934x: mark the GPIO controller as sleeping
Ben Horgan (1):
KVM: arm64: Fix debug checking for np-guests using huge mappings
Bhanu Seshu Kumar Valluri (1):
net: usb: lan78xx: Fix lost EEPROM read timeout error(-ETIMEDOUT) in lan78xx_read_raw_eeprom
Bharath SM (1):
smb client: fix bug with newly created file in cached dir
Bingbu Cao (1):
media: staging/ipu7: fix isys device runtime PM usage in firmware closing
Brian Masney (2):
clk: at91: peripheral: fix return value
clk: nxp: lpc18xx-cgu: convert from round_rate() to determine_rate()
Brian Norris (2):
PM: runtime: Update kerneldoc return codes PCI/sysfs: Ensure devices are powered for config reads
Carolina Jubran (2):
net/mlx5: Prevent tunnel mode conflicts between FDB and NIC IPsec tables net/mlx5e: Prevent tunnel reformat when tunnel mode not allowed
Catalin Marinas (1):
arm64: mte: Do not flag the zero page as PG_mte_tagged
Chen-Yu Tsai (1):
clk: mediatek: clk-mux: Do not pass flags to clk_mux_determine_rate_flags()
Christian Brauner (5):
statmount: don't call path_put() under namespace semaphore
listmount: don't call path_put() under namespace semaphore
nsfs: validate extensible ioctls
pidfs: validate extensible ioctls
mount: handle NULL values in mnt_ns_release()
Christian Loehle (1):
PM: EM: Fix late boot with holes in CPU topology
Christophe Leroy (1):
perf: Completely remove possibility to override MAX_NR_CPUS
Claudiu Beznea (1):
clk: renesas: r9a08g045: Add MSTOP for GPIO
Clément Le Goffic (1):
rtc: optee: fix memory leak on driver removal
Colin Ian King (1):
pwm: Fix incorrect variable used in error message
Conor Dooley (1):
gpio: mpfs: fix setting gpio direction to output
Corey Minyard (3):
ipmi: Rework user message limit handling ipmi:msghandler:Change seq_lock to a mutex Revert "ipmi: fix msg stack when IPMI is disconnected"
Dan Carpenter (2):
clk: qcom: common: Fix NULL vs IS_ERR() check in qcom_cc_icc_register() net/mlx4: prevent potential use after free in mlx4_en_do_uc_filter()
Daniel Borkmann (1):
bpf: Fix metadata_dst leak __bpf_redirect_neigh_v{4,6}Daniel Lee (1):
scsi: ufs: sysfs: Make HID attributes visible
Daniel Machon (1):
net: sparx5/lan969x: fix flooding configuration on bridge join/leave
Daniel Tang (1):
ACPI: TAD: Add missing sysfs_remove_group() for ACPI_TAD_RT
Darrick J. Wong (3):
fuse: fix livelock in synchronous file put from fuseblk workers
xfs: use deferred intent items for reaping crosslinked blocks
iomap: error out on file IO when there is no inline_data buffer
David Lechner (1):
media: pci: mg4b: fix uninitialized iio scan data
Deepanshu Kartikey (1):
ext4: validate ea_ino and size in check_xattrs
Denzeel Oliva (3):
clk: samsung: exynos990: Use PLL_CON0 for PLL parent muxes
clk: samsung: exynos990: Fix CMU_TOP mux/div bit widths
clk: samsung: exynos990: Replace bogus divs with fixed-factor clocks
Desnes Nunes (1):
media: uvcvideo: Avoid variable shadowing in uvc_ctrl_cleanup_fh
Dikshita Agarwal (11):
media: iris: vpu3x: Add MNoC low power handshake during hardware power-off
media: iris: Fix port streaming handling
media: iris: Fix buffer count reporting in internal buffer check
media: iris: Allow substate transition to load resources during output streaming
media: iris: Always destroy internal buffers on firmware release response
media: iris: Simplify session stop logic by relying on vb2 checks
media: iris: Update vbuf flags before v4l2_m2m_buf_done
media: iris: Send dummy buffer address for all codecs during drain
media: iris: Fix missing LAST flag handling during drain
media: iris: Fix format check for CAPTURE plane in try_fmt
media: iris: Allow stop on firmware only if start was issued.
Donet Tom (1):
mm/ksm: fix incorrect KSM counter handling in mm_struct during fork
Duoming Zhou (2):
scsi: mvsas: Fix use-after-free bugs in mvs_work_queue
net: mscc: ocelot: Fix use-after-free caused by cyclic delayed work
Dzmitry Sankouski (1):
power: supply: max77976_charger: fix constant current reporting
Edward Adam Davis (1):
media: mc: Clear minor number before put device
Eric Biggers (2):
KEYS: trusted_tpm1: Compare HMAC values in constant time
sctp: Fix MAC comparison to be constant-time
Eric Dumazet (1):
tcp: take care of zero tp->window_clamp in tcp_set_rcvlowat()
Eric Woudstra (1):
bridge: br_vlan_fill_forward_path_pvid: use br_vlan_group_rcu()
Erick Karanja (1):
net: fsl_pq_mdio: Fix device node reference leak in fsl_pq_mdio_probe
Esben Haabendal (3):
rtc: isl12022: Fix initial enable_irq/disable_irq balance
rtc: interface: Ensure alarm irq is enabled when UIE is enabled
rtc: interface: Fix long-standing race when setting alarm
Fangzhi Zuo (1):
drm/amd/display: Enable Dynamic DTBCLK Switch
Fedor Pchelkin (2):
clk: tegra: do not overallocate memory for bpmp clocks
wifi: rtw89: avoid possible TX wait initialization race
Feng Yang (1):
tracing: Fix the bug where bpf_get_stackid returns -EFAULT on the ARM64
Fernando Fernandez Mancera (1):
netfilter: nft_objref: validate objref and objrefmap expressions
Finn Thain (1):
fbdev: Fix logic error in "offb" name match
Florian Westphal (2):
selftests: netfilter: nft_fib.sh: fix spurious test failures
selftests: netfilter: query conntrack state to check for port clash resolution
Fuad Tabba (1):
KVM: arm64: Fix page leak in user_mem_abort()
Fushuai Wang (2):
perf trace: Fix IS_ERR() vs NULL check bug
cifs: Fix copy_to_iter return value check
Gautam Gala (1):
KVM: s390: Fix to clear PTE when discarding a swapped page
Georg Gottleuber (1):
nvme-pci: Add TUXEDO IBS Gen8 to Samsung sleep quirk
Greg Kroah-Hartman (1):
Linux 6.17.4
Guenter Roeck (1):
ipmi: Fix handling of messages with provided receive message pointer
Gunnar Kudrjavets (1):
tpm_tis: Fix incorrect arguments in tpm_tis_probe_irq_single
GuoHan Zhao (1):
perf drm_pmu: Fix fd_dir leaks in for_each_drm_fdinfo_in_dir()
Hans Verkuil (2):
media: i2c: mt9p031: fix mbus code initialization
media: vivid: fix disappearing <Vendor Command With ID> messages
Haotian Zhang (1):
ice: ice_adapter: release xa entry on adapter allocation failure
Haoxiang Li (1):
fs/ntfs3: Fix a resource leak bug in wnd_extend()
Harini T (4):
mailbox: zynqmp-ipi: Remove redundant mbox_controller_unregister() call
mailbox: zynqmp-ipi: Remove dev.parent check in zynqmp_ipi_free_mboxes
mailbox: zynqmp-ipi: Fix out-of-bounds access in mailbox cleanup loop
mailbox: zynqmp-ipi: Fix SGI cleanup on unbind
Harshit Agarwal (1):
sched/deadline: Fix race in push_dl_task()
Heiko Carstens (2):
s390/cio/ioasm: Fix __xsch() condition code handling
s390: Add -Wno-pointer-sign to KBUILD_CFLAGS_DECOMPRESSOR
Herbert Xu (1):
crypto: essiv - Check ssize for decryption and in-place encryption
Hou Wenlong (2):
KVM: x86: Add helper to retrieve current value of user return MSR
KVM: SVM: Re-load current, not host, TSC_AUX on #VMEXIT from SEV-ES guest
Huacai Chen (4):
LoongArch: Fix build error for LTO with LLVM-18
LoongArch: Init acpi_gbl_use_global_lock to false
init: handle bootloader identifier in kernel parameters
ACPICA: Allow to skip Global Lock initialization
Ian Forbes (2):
drm/vmwgfx: Fix Use-after-free in validation drm/vmwgfx: Fix copy-paste typo in validation
Ian Rogers (14):
perf disasm: Avoid undefined behavior in incrementing NULL perf test trace_btf_enum: Skip if permissions are insufficient perf evsel: Avoid container_of on a NULL leader libperf event: Ensure tracing data is multiple of 8 sized perf parse-events: Handle fake PMUs in CPU terms perf test: AMD IBS swfilt skip kernel tests if paranoia is >1 perf test shell lbr: Avoid failures with perf event paranoia perf test: Don't leak workload gopipe in PERF_RECORD_* perf evsel: Fix uniquification when PMU given without suffix perf test: Avoid uncore_imc/clockticks in uniquification test perf evsel: Ensure the fallback message is always written to perf build-id: Ensure snprintf string is empty when size is 0 perf bpf-filter: Fix opts declaration on older libbpfs perf bpf_counter: Fix handling of cpumap fixing hybrid
Icenowy Zheng (2):
clk: thead: th1520-ap: describe gate clocks with clk_gate
clk: thead: th1520-ap: fix parent of padctrl0 clock
Ilkka Koskinen (1):
perf vendor events arm64 AmpereOneX: Fix typo - should be l1d_cache_access_prefetches
Ilpo Järvinen (2):
PCI: Ensure relaxed tail alignment does not increase min_align
PCI: Fix failure detection during resource resize
Jaehoon Kim (2):
s390/dasd: enforce dma_alignment to ensure proper buffer validation s390/dasd: Return BLK_STS_INVAL for EINVAL from do_dasd_request
Jai Luthra (2):
media: ti: j721e-csi2rx: Use devm_of_platform_populate
media: ti: j721e-csi2rx: Fix source subdev link creation
Jan Kara (5):
ext4: fail unaligned direct IO write with EINVAL
ext4: verify orphan file size is not too big
ext4: free orphan info with kvfree
writeback: Avoid softlockup when switching many inodes
writeback: Avoid excessively long inode switching times
Jani Nurminen (1):
PCI: xilinx-nwl: Fix ECAM programming
Jann Horn (1):
drm/panthor: Fix memory leak in panthor_ioctl_group_create()
Jarkko Nikula (1):
i3c: Fix default I2C adapter timeout value
Jason Andryuk (3):
xen/events: Cleanup find_virq() return codes xen/events: Return -EEXIST for bound VIRQs xen/events: Update virq_to_irq on migration
Jason-JH Lin (1):
mailbox: mtk-cmdq: Remove pm_runtime APIs from cmdq_mbox_send_data()
Jeff Layton (7):
nfsd: fix assignment of ia_ctime.tv_nsec on delegated mtime update
nfsd: ignore ATTR_DELEG when checking ia_valid before notify_change()
vfs: add ATTR_CTIME_SET flag
nfsd: use ATTR_CTIME_SET for delegated ctime updates
nfsd: track original timestamps in nfs4_delegation
nfsd: fix SETATTR updates for delegated timestamps
nfsd: fix timestamp updates in CB_GETATTR
Jesse Agate (1):
drm/amd/display: Incorrect Mirror Cositing
Jisheng Zhang (1):
pwm: berlin: Fix wrong register in suspend/resume
Johan Hovold (6):
firmware: arm_scmi: quirk: Prevent writes to string constants
firmware: meson_sm: fix device leak at probe lib/genalloc: fix device leak in of_gen_pool_get() PCI/pwrctrl: Fix device leak at registration PCI/pwrctrl: Fix device and OF node leak at bus scan PCI/pwrctrl: Fix device leak at device stop
John David Anglin (1):
parisc: Remove spurious if statement from raw_copy_from_user()
Judith Mendez (1):
arm64: dts: ti: k3-am62p: Fix supported hardware for 1GHz OPP
KaFai Wan (1):
bpf: Avoid RCU context warning when unpinning htab with internal structs
Kaustabh Chakraborty (1):
drm/exynos: exynos7_drm_decon: remove ctx->suspended
Krzysztof Kozlowski (2):
pinctrl: samsung: Drop unused S3C24xx driver data
media: iris: Call correct power off callback in cleanup path
Kuniyuki Iwashima (1):
tcp: Don't call reqsk_fastopen_remove() in tcp_conn_request().
Lance Yang (2):
mm/thp: fix MTE tag mismatch when replacing zero-filled subpages
mm/rmap: fix soft-dirty and uffd-wp bit loss when remapping zero-filled mTHP subpage to shared zeropage
Laurent Pinchart (2):
media: mc: Fix MUST_CONNECT handling for pads with no links
media: vsp1: Export missing vsp1_isp_free_buffer symbol
Leo Yan (5):
perf arm_spe: Correct setting remote access perf arm_spe: Correct memory level for remote access perf session: Fix handling when buffer exceeds 2 GiB tools build: Align warning options with perf perf python: split Clang options when invoking Popen
Li Chen (1):
loop: fix backing file reference leak on validation error
Li RongQing (1):
mm/hugetlb: early exit from hugetlb_pages_alloc_boot() when max_huge_pages=0
Lichen Liu (1):
fs: Add 'initramfs_options' to set initramfs mount options
Linus Walleij (1):
mtd: rawnand: fsmc: Default to autodetect buswidth
Lorenzo Bianconi (1):
net: airoha: Fix loopback mode configuration for GDM2 port
Lu Baolu (1):
iommu/vt-d: PRS isn't usable if PDS isn't supported
Lucas Zampieri (1):
irqchip/sifive-plic: Avoid interrupt ID 0 handling during suspend/resume
Lukas Bulwahn (1):
clk: qcom: Select the intended config in QCS_DISPCC_615
Lukas Wunner (3):
xen/manage: Fix suspend error path PCI/ERR: Fix uevent on failure to recover PCI/AER: Support errors introduced by PCIe r6.0
Ma Ke (3):
media: lirc: Fix error handling in lirc_register()
of: unittest: Fix device reference count leak in of_unittest_pci_node_verify
sparc: fix error handling in scan_one_device()
Maarten Zanders (1):
mtd: nand: raw: gpmi: fix clocks when CONFIG_PM=N
Marek Marczykowski-Górecki (1):
xen: take system_transition_mutex on suspend
Marek Vasut (5):
drm/rcar-du: dsi: Fix 1/2/3 lane support
PCI: tegra: Convert struct tegra_msi mask_lock into raw spinlock
PCI: rcar-gen4: Fix PHY initialization
PCI: rcar-host: Drop PMSR spinlock
PCI: rcar-host: Convert struct rcar_msi mask_lock into raw spinlock
Mario Limonciello (AMD) (1):
PM: hibernate: Fix hybrid-sleep
Masahiro Yamada (2):
kbuild: always create intermediate vmlinux.unstripped
kbuild: keep .modinfo section in vmlinux.unstripped
Matthew Auld (1):
drm/xe/uapi: loosen used tracking restriction
Matthieu Baerts (NGI0) (3):
mptcp: pm: in-kernel: usable client side with C-flag
mptcp: reset blackhole on success with non-loopback ifaces
selftests: mptcp: join: validate C-flag + def limit
Maxime Chevallier (1):
net: mdio: mdio-i2c: Hold the i2c bus lock during smbus transactions
Miaoqian Lin (4):
ARM: OMAP2+: pm33xx-core: ix device node reference leaks in amx3_idle_init
cdx: Fix device node reference leak in cdx_msi_domain_init
xtensa: simdisk: add input size check in proc_write_simdisk
wifi: iwlwifi: Fix dentry reference leak in iwl_mld_add_link_debugfs
Michael Hennerich (2):
iio: frequency: adf4350: Fix ADF4350_REG3_12BIT_CLKDIV_MODE
iio: frequency: adf4350: Fix prescaler usage.
Michael Riesch (1):
dt-bindings: phy: rockchip-inno-csi-dphy: make power-domains non-required
Michal Wilczynski (1):
clk: thead: Correct parent for DPU pixel clocks
Miklos Szeredi (2):
fuse: fix possibly missing fuse_copy_finish() call in fuse_notify()
copy_file_range: limit size if in compat mode
Muhammad Usama Anjum (1):
wifi: ath11k: HAL SRNG: don't deinitialize and re-initialize again
Nam Cao (3):
eventpoll: Replace rwlock with spinlock powerpc/powernv/pci: Fix underflow and leak issue powerpc/pseries/msi: Fix potential underflow and leak issue
Nathan Chancellor (3):
kbuild: Restore pattern to avoid stripping .rela.dyn from vmlinux
kbuild: Add '.rel.*' strip pattern for vmlinux s390/vmlinux.lds.S: Move .vmlinux.info to end of allocatable sections
Neil Armstrong (1):
media: iris: fix module removal if firmware download failed
Nick Morrow (2):
wifi: mt76: mt7925u: Add VID/PID for Netgear A9000
wifi: mt76: mt7921u: Add VID/PID for Netgear A7500Niklas Cassel (2):
PCI: tegra194: Fix broken tegra_pcie_ep_raise_msi_irq()
PCI: tegra194: Reset BARs when running in PCIe endpoint mode
Niklas Schnelle (2):
PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV PCI/AER: Fix missing uevent on recovery when a reset is requested
Nícolas F. R. A. Prado (1):
media: platform: mtk-mdp3: Add missing MT8188 compatible to comp_dt_ids
Ojaswin Mujoo (1):
ext4: correctly handle queries for metadata mappings
Oleg Nesterov (1):
kernel/sys.c: fix the racy usage of task_lock(tsk->group_leader) in sys_prlimit64() paths
Olga Kornievskaia (2):
nfsd: unregister with rpcbind when deleting a transport
nfsd: nfserr_jukebox in nlm_fopen should lead to a retry
Omar Sandoval (1):
arm64: map [_text, _stext) virtual address range non-executable+read-only
Pali Rohár (1):
cifs: Query EA $LXMOD in cifs_query_path_info() for WSL reparse points
Patrice Chotard (1):
memory: stm32_omm: Fix req2ack update test
Paulo Alcantara (1):
smb: client: fix missing timestamp updates after utime(2)
Pavel Begunkov (1):
io_uring/zcrx: increment fallback loop src offset
Peter Ujfalusi (4):
ASoC: SOF: ipc4-topology: Correct the minimum host DMA buffer size
ASoC: SOF: ipc4-topology: Account for different ChainDMA host buffer size
ASoC: SOF: Intel: hda-pcm: Place the constraint on period time instead of buffer time
ASoC: SOF: Intel: Read the LLP via the associated Link DMA channel
Petr Tesarik (1):
dma-mapping: fix direction in dma_alloc direction traces
Philip Yang (1):
drm/amdkfd: Fix kfd process ref leaking when userptr unmapping
Phillip Lougher (2):
Squashfs: add additional inode sanity checking
Squashfs: reject negative file sizes in squashfs_read_inode()
Pin-yen Lin (1):
PM: sleep: Do not wait on SYNC_STATE_ONLY device links
Pratyush Yadav (3):
kho: only fill kimage if KHO is finalized
spi: cadence-quadspi: Flush posted register writes before INDAC access
spi: cadence-quadspi: Flush posted register writes before DAC access
Qianfeng Rong (3):
media: i2c: mt9v111: fix incorrect type for ret
iio: dac: ad5360: use int type to store negative error codes
iio: dac: ad5421: use int type to store negative error codes
Qu Wenruo (1):
btrfs: fix the incorrect max_bytes value for find_lock_delalloc_range()
Raag Jadav (1):
drm/xe/i2c: Don't rely on d3cold.allowed flag in system PM path
Rafael J. Wysocki (11):
cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency
PM: core: Annotate loops walking device links as _srcu
PM: core: Add two macros for walking device links
ACPI: property: Fix buffer properties extraction for subnodes
ACPI: battery: Add synchronization between interface updates
cpufreq: CPPC: Avoid using CPUFREQ_ETERNAL as transition delay
cpufreq: intel_pstate: Fix object lifecycle issue in update_qos_request()
PM: hibernate: Restrict GFP mask in power_down()
ACPI: property: Disregard references in data-only subnode lists
ACPI: property: Add code comments explaining what is going on
ACPI: property: Do not pass NULL handles to acpi_attach_data()
Randy Dunlap (1):
media: cec: extron-da-hd-4k-plus: drop external-module make commands
Renjiang Han (1):
media: venus: pm_helpers: add fallback for the opp-table
Rex Chen (2):
mmc: core: SPI mode remove cmd7
mmc: mmc_spi: multiple block read remove read crc ack
Rob Herring (Arm) (1):
rtc: x1205: Fix Xicor X1205 vendor prefix
Robin Murphy (1):
perf/arm-cmn: Fix CMN S3 DTM offset
Ryan Roberts (1):
fsnotify: pass correct offset to fsnotify_mmap_perm()
Sam James (1):
parisc: don't reference obsolete termio struct for TC* constants
Santhosh Kumar K (1):
spi: cadence-quadspi: Fix cqspi_setup_flash()
Scott Mayhew (1):
nfsd: decouple the xprtsec policy check from check_nfsd_access()
Sean Anderson (2):
iio: xilinx-ams: Fix AMS_ALARM_THR_DIRECT_MASK
iio: xilinx-ams: Unmask interrupts after updating alarms
Sean Christopherson (6):
KVM: SVM: Emulate PERF_CNTR_GLOBAL_STATUS_SET for PerfMonV2
mshv: Handle NEED_RESCHED_LAZY before transferring to guest x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP rseq/selftests: Use weak symbol reference, not definition, to link with glibc x86/umip: Check that the instruction opcode is at least two bytes x86/umip: Fix decoding of register forms of 0F 01 (SGDT and SIDT aliases)
Sean Nyekjaer (3):
iio: imu: inv_icm42600: Simplify pm_runtime setup
iio: imu: inv_icm42600: Drop redundant pm_runtime reinitialization in resume
iio: imu: inv_icm42600: Avoid configuring if already pm_runtime suspended
SeongJae Park (2):
mm/damon/vaddr: do not repeat pte_offset_map_lock() until success mm/damon/lru_sort: use param_ctx for damon_attrs staging
Shakeel Butt (1):
memcg: skip cgroup_file_notify if spinning is not allowed
Shashank A P (1):
fs: quota: create dedicated workqueue for quota_release_work
Shuhao Fu (1):
drm/nouveau: fix bad ret code in nouveau_bo_move_prep
Shuicheng Lin (1):
drm/xe/hw_engine_group: Fix double write lock release in error path
Siddharth Vadapalli (3):
PCI: j721e: Fix module autoloading
PCI: j721e: Fix programming sequence of "strap" settings
PCI: keystone: Use devm_request_irq() to free "ks-pcie-error-irq" on exit
Sidharth Seela (1):
selftest: net: ovpn: Fix uninit return values
Simon Schuster (1):
copy_sighand: Handle architectures where sizeof(unsigned long) < sizeof(u64)
Stephan Gerhold (5):
arm64: dts: qcom: msm8916: Add missing MDSS reset
arm64: dts: qcom: msm8939: Add missing MDSS reset
arm64: dts: qcom: sdm845: Fix slimbam num-channels/ees
media: venus: firmware: Use correct reset sequence for IRIS2
media: iris: Fix firmware reference leak and unmap memory after load
Sumit Kumar (1):
bus: mhi: ep: Fix chained transfer handling in read path
Suren Baghdasaryan (2):
slab: prevent warnings when slab obj_exts vector allocation fails
slab: mark slab->obj_exts allocation failures unconditionally
T Pratham (1):
crypto: skcipher - Fix reqsize handling
Tetsuo Handa (2):
minixfs: Verify inode mode when loading from disk
cramfs: Verify inode mode when loading from disk
Thadeu Lima de Souza Cascardo (1):
mm/page_alloc: only set ALLOC_HIGHATOMIC for __GPF_HIGH allocations
Theodore Ts'o (1):
ext4: avoid potential buffer over-read in parse_apply_sb_mount_options()
Thomas Fourier (5):
media: cx18: Add missing check after DMA map
media: pci: ivtv: Add missing check after DMA map
crypto: aspeed - Fix dma_unmap_sg() direction
crypto: atmel - Fix dma_unmap_sg() direction
crypto: rockchip - Fix dma_unmap_sg() nents value
Thomas Gleixner (1):
rseq: Protect event mask against membarrier IPI
Thomas Weißschuh (1):
fs: always return zero on success from replace_fd()
Thomas Wismer (1):
net: pse-pd: tps23881: Fix current measurement scaling
Thorsten Blum (2):
scsi: hpsa: Fix potential memory leak in hpsa_big_passthru_ioctl()
NFSD: Fix destination buffer size in nfsd4_ssc_setup_dul()
Tiezhu Yang (1):
LoongArch: Add cflag -fno-isolate-erroneous-paths-dereference
Timur Kristóf (4):
drm/amd/display: Add missing DCE6 SCL_HORZ_FILTER_INIT* SRIs drm/amd/display: Properly clear SCL_*_FILTER_CONTROL on DCE6 drm/amd/display: Properly disable scaling on DCE6 drm/amd/display: Disable scaling on DCE6 for now
Toke Høiland-Jørgensen (1):
page_pool: Fix PP_MAGIC_MASK to avoid crashing on some 32-bit arches
Tomi Valkeinen (1):
media: v4l2-subdev: Fix alloc failure check in v4l2_subdev_call_state_try()
Tony Lindgren (1):
KVM: TDX: Fix uninitialized error code for __tdx_bringup()
Tudor Ambarus (1):
firmware: exynos-acpm: fix PMIC returned errno
Varad Gautam (1):
asm-generic/io.h: Skip trace helpers if rwmmio events are disabled
Vibhore Vardhan (1):
arm64: dts: ti: k3-am62a-main: Fix main padcfg length
Vidya Sagar (1):
PCI: tegra194: Handle errors in BPMP response
Viken Dadhaniya (1):
arm64: dts: qcom: qcs615: add missing dt property in QUP SEs
Vincent Minet (1):
perf tools: Fix arm64 libjvmti build by generating unistd_64.h
Vineeth Vijayan (1):
s390/cio: Update purge function to unregister the unused subchannels
Xiao Liang (1):
padata: Reset next CPU when reorder sequence wraps around
Xin Li (Intel) (1):
x86/fred: Remove ENDBR64 from FRED entry points
Yang Shi (1):
arm64: kprobes: call set_memory_rox() for kprobe page
Yongjian Sun (1):
ext4: increase i_disksize to offset + len in ext4_update_disksize_before_punch()
Yu Kuai (2):
blk-crypto: fix missing blktrace bio split events
md: fix mssing blktrace bio split events
Yuan CHen (1):
clk: renesas: cpg-mssr: Fix memory leak in cpg_mssr_reserved_init()
Yunseong Kim (1):
perf util: Fix compression checks returning -1 as bool
Zack Rusin (1):
drm/vmwgfx: Fix a null-ptr access in the cursor snooper
Zhang Yi (1):
ext4: fix an off-by-one issue during moving extents
Zhen Ni (2):
clocksource/drivers/clps711x: Fix resource leaks in error paths
memory: samsung: exynos-srom: Fix of_iomap leak in exynos_srom_probe
gaoxiang17 (1):
pid: Add a judgment for ns null in pid_nr_ns
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +3 -0
@@ -6429,6 +6429,9 @@ rootflags= [KNL] Set root filesystem mount option string + initramfs_options= [KNL] + Specify mount options for for the initramfs mount. + rootfstype= [KNL] Set root filesystem type rootwait [KNL] Wait (indefinitely) for root device to show up.
Documentation/devicetree/bindings/phy/rockchip-inno-csi-dphy.yaml +14 -1
@@ -57,11 +57,24 @@ required: - clocks - clock-names - '#phy-cells' - - power-domains - resets - reset-names - rockchip,grf +allOf: + - if: + properties: + compatible: + contains: + enum: + - rockchip,px30-csi-dphy + - rockchip,rk1808-csi-dphy + - rockchip,rk3326-csi-dphy + - rockchip,rk3368-csi-dphy + then: + required: + - power-domains + additionalProperties: false examples:
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 17 -SUBLEVEL = 3 +SUBLEVEL = 4 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm/mach-omap2/am33xx-restart.c +36 -0
@@ -2,12 +2,46 @@/* * am33xx-restart.c - Code common to all AM33xx machines. */ +#include <dt-bindings/pinctrl/am33xx.h> +#include <linux/delay.h> #include <linux/kernel.h> #include <linux/reboot.h> #include "common.h" +#include "control.h" #include "prm.h" +/* +* Advisory 1.0.36 EMU0 and EMU1: Terminals Must be Pulled High Before +* ICEPick Samples +* +* If EMU0/EMU1 pins have been used as GPIO outputs and actively driving low +* level, the device might not reboot in normal mode. We are in a bad position +* to override GPIO state here, so just switch the pins into EMU input mode +* (that's what reset will do anyway) and wait a bit, because the state will be +* latched 190 ns after reset. +*/ +static void am33xx_advisory_1_0_36 (void ) +{ +u32 emu0 =omap_ctrl_readl (AM335X_PIN_EMU0 ); +u32 emu1 =omap_ctrl_readl (AM335X_PIN_EMU1 ); + +/* If both pins are in EMU mode, nothing to do */ +if (!(emu0 &7 ) && !(emu1 &7 )) +return ; + +/* Switch GPIO3_7/GPIO3_8 into EMU0/EMU1 modes respectively */ +omap_ctrl_writel (emu0 & ~7 ,AM335X_PIN_EMU0 ); +omap_ctrl_writel (emu1 & ~7 ,AM335X_PIN_EMU1 ); + +/* +* Give pull-ups time to load the pin/PCB trace capacity. +* 5 ms shall be enough to load 1 uF (would be huge capacity for these +* pins) with TI-recommended 4k7 external pull-ups. +*/ +mdelay (5 ); +} +/** * am33xx_restart - trigger a software restart of the SoC * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c
@@ -18,6 +52,8 @@*/ void am33xx_restart (enum reboot_mode mode,const char *cmd) { +am33xx_advisory_1_0_36 (); +/* TODO: Handle cmd if necessary */ prm_reboot_mode = mode;
arch/arm/mach-omap2/pm33xx-core.c +5 -1
@@ -388,12 +388,15 @@ static int __init amx3_idle_init(struct device_node *cpu_node, int cpu)if (!state_node)break ; -if (!of_device_is_available (state_node)) +if (!of_device_is_available (state_node)) { +of_node_put (state_node);continue ; + }if (i ==CPUIDLE_STATE_MAX ) {pr_warn ("%s: cpuidle states reached max possible\n" , __func__); +of_node_put (state_node);break ; }
@@ -403,6 +406,7 @@ static int __init amx3_idle_init(struct device_node *cpu_node, int cpu) states[state_count].wfi_flags |=WFI_FLAG_WAKE_M3 |WFI_FLAG_FLUSH_CACHE ; +of_node_put (state_node); state_count++; }
arch/arm64/boot/dts/qcom/msm8916.dtsi +2 -0
@@ -1562,6 +1562,8 @@ mdss: display-subsystem@1a00000 { interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + resets = <&gcc GCC_MDSS_BCR>; + interrupt-controller; #interrupt-cells = <1>;
arch/arm64/boot/dts/qcom/msm8939.dtsi +2 -0
@@ -1249,6 +1249,8 @@ mdss: display-subsystem@1a00000 { power-domains = <&gcc MDSS_GDSC>; + resets = <&gcc GCC_MDSS_BCR>; + #address-cells = <1>; #size-cells = <1>; #interrupt-cells = <1>;
arch/arm64/boot/dts/qcom/qcs615.dtsi +6 -0
@@ -631,6 +631,7 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, interconnect-names = "qup-core", "qup-config"; power-domains = <&rpmhpd RPMHPD_CX>; + operating-points-v2 = <&qup_opp_table>; status = "disabled"; };
@@ -654,6 +655,7 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>, "qup-config", "qup-memory"; power-domains = <&rpmhpd RPMHPD_CX>; + required-opps = <&rpmhpd_opp_low_svs>; dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>, <&gpi_dma0 1 1 QCOM_GPI_I2C>; dma-names = "tx",
@@ -681,6 +683,7 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>, "qup-config", "qup-memory"; power-domains = <&rpmhpd RPMHPD_CX>; + required-opps = <&rpmhpd_opp_low_svs>; dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>, <&gpi_dma0 1 2 QCOM_GPI_I2C>; dma-names = "tx",
@@ -703,6 +706,7 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, interconnect-names = "qup-core", "qup-config"; power-domains = <&rpmhpd RPMHPD_CX>; + operating-points-v2 = <&qup_opp_table>; dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>, <&gpi_dma0 1 2 QCOM_GPI_SPI>; dma-names = "tx",
@@ -728,6 +732,7 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, interconnect-names = "qup-core", "qup-config"; power-domains = <&rpmhpd RPMHPD_CX>; + operating-points-v2 = <&qup_opp_table>; status = "disabled"; };
@@ -751,6 +756,7 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>, "qup-config", "qup-memory"; power-domains = <&rpmhpd RPMHPD_CX>; + required-opps = <&rpmhpd_opp_low_svs>; dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>, <&gpi_dma0 1 3 QCOM_GPI_I2C>; dma-names = "tx",
arch/arm64/boot/dts/qcom/sdm845.dtsi +2 -2
@@ -5404,11 +5404,11 @@ slimbam: dma-controller@17184000 { compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0"; qcom,controlled-remotely; reg = <0 0x17184000 0 0x2a000>; - num-channels = <31>; + num-channels = <23>; interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; #dma-cells = <1>; qcom,ee = <1>; - qcom,num-ees = <2>; + qcom,num-ees = <4>; iommus = <&apps_smmu 0x1806 0x0>; };
arch/arm64/boot/dts/qcom/x1e80100-pmics.dtsi +2 -0
@@ -475,6 +475,8 @@ pm8010: pmic@c { #address-cells = <1>; #size-cells = <0>; + status = "disabled"; + pm8010_temp_alarm: temp-alarm@2400 { compatible = "qcom,spmi-temp-alarm"; reg = <0x2400>;
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi +1 -1
@@ -267,7 +267,7 @@ secure_proxy_sa3: mailbox@43600000 { main_pmx0: pinctrl@f4000 { compatible = "pinctrl-single"; - reg = <0x00 0xf4000 0x00 0x2ac>; + reg = <0x00 0xf4000 0x00 0x25c>; #pinctrl-cells = <1>; pinctrl-single,register-width = <32>; pinctrl-single,function-mask = <0xffffffff>;
arch/arm64/boot/dts/ti/k3-am62p5.dtsi +1 -1
@@ -135,7 +135,7 @@ opp-800000000 { opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; - opp-supported-hw = <0x01 0x0006>; + opp-supported-hw = <0x01 0x0007>; clock-latency-ns = <6000000>; };
arch/arm64/include/asm/ftrace.h +1 -0
@@ -153,6 +153,7 @@ ftrace_partial_regs(const struct ftrace_regs *fregs, struct pt_regs *regs) regs->pc = afregs->pc; regs->regs[29 ] = afregs->fp; regs->regs[30 ] = afregs->lr; + regs->pstate = PSR_MODE_EL1h;return regs; }
arch/arm64/kernel/cpufeature.c +7 -3
@@ -2408,17 +2408,21 @@ static void bti_enable(const struct arm64_cpu_capabilities *__unused)#ifdef CONFIG_ARM64_MTE static void cpu_enable_mte (struct arm64_cpu_capabilities const *cap) { +static bool cleared_zero_page = false; +sysreg_clear_set (sctlr_el1,0 , SCTLR_ELx_ATA |SCTLR_EL1_ATA0 );mte_cpu_setup ();/* * Clear the tags in the zero page. This needs to be done via the -* linear map which has the Tagged attribute. +* linear map which has the Tagged attribute. Since this page is +* always mapped as pte_special(), set_pte_at() will not attempt to +* clear the tags or set PG_mte_tagged. */ -if (try_page_mte_tagging (ZERO_PAGE (0 ))) { +if (!cleared_zero_page) { + cleared_zero_page = true;mte_clear_page_tags (lm_alias (empty_zero_page)); -set_page_mte_tagged (ZERO_PAGE (0 )); }kasan_init_hw_tags_cpu ();
arch/arm64/kernel/mte.c +1 -1
@@ -460,7 +460,7 @@ static int __access_remote_tags(struct mm_struct *mm, unsigned long addr,if (folio_test_hugetlb (folio))WARN_ON_ONCE (!folio_test_hugetlb_mte_tagged (folio));else -WARN_ON_ONCE (!page_mte_tagged (page)); +WARN_ON_ONCE (!page_mte_tagged (page) && !is_zero_page (page));/* limit access to the end of the page */ offset =offset_in_page (addr);
arch/arm64/kernel/pi/map_kernel.c +6 -0
@@ -78,6 +78,12 @@ static void __init map_kernel(u64 kaslr_offset, u64 va_offset, int root_level) twopass |= enable_scs; prot = twopass ? data_prot : text_prot; +/* +* [_stext, _text) isn't executed after boot and contains some +* non-executable, unpredictable data, so map it non-executable. +*/ +map_segment (init_pg_dir, &pgdp, va_offset, _text, _stext, data_prot, + false, root_level);map_segment (init_pg_dir, &pgdp, va_offset, _stext, _etext, prot, !twopass, root_level); map_segment(init_pg_dir, &pgdp, va_offset, __start_rodata,
arch/arm64/kernel/probes/kprobes.c +12 -0
@@ -10,6 +10,7 @@#define pr_fmt (fmt) "kprobes: " fmt +#include <linux/execmem.h> #include <linux/extable.h> #include <linux/kasan.h> #include <linux/kernel.h>
@@ -41,6 +42,17 @@ DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);static void __kprobes post_kprobe_handler (struct kprobe *,struct kprobe_ctlblk *,struct pt_regs *); +void *alloc_insn_page (void ) +{ +void *addr; + + addr =execmem_alloc (EXECMEM_KPROBES ,PAGE_SIZE ); +if (!addr) +return NULL ; +set_memory_rox ((unsigned long )addr,1 ); +return addr; +} +static void __kprobes arch_prepare_ss_slot (struct kprobe *p) {kprobe_opcode_t *addr = p->ainsn.xol_insn;
arch/arm64/kernel/setup.c +2 -2
@@ -214,7 +214,7 @@ static void __init request_standard_resources(void)unsigned long i =0 ;size_t res_size; - kernel_code.start =__pa_symbol (_stext); + kernel_code.start =__pa_symbol (_text); kernel_code.end =__pa_symbol (__init_begin -1 ); kernel_data.start =__pa_symbol (_sdata); kernel_data.end =__pa_symbol (_end -1 );
@@ -280,7 +280,7 @@ u64 cpu_logical_map(unsigned int cpu) void __init __no_sanitize_address setup_arch(char **cmdline_p) { -setup_initial_init_mm (_stext, _etext, _edata, _end); +setup_initial_init_mm (_text, _etext, _edata, _end); *cmdline_p = boot_command_line;
arch/arm64/kvm/hyp/nvhe/mem_protect.c +6 -3
@@ -1010,9 +1010,12 @@ static int __check_host_shared_guest(struct pkvm_hyp_vm *vm, u64 *__phys, u64 ipreturn ret;if (!kvm_pte_valid (pte))return -ENOENT ; -if (kvm_granule_size (level) != size) +if (size &&kvm_granule_size (level) != size)return -E2BIG ; +if (!size) + size =kvm_granule_size (level); + state =guest_get_page_state (pte, ipa);if (state !=PKVM_PAGE_SHARED_BORROWED )return -EPERM ;
@@ -1100,7 +1103,7 @@ int __pkvm_host_relax_perms_guest(u64 gfn, struct pkvm_hyp_vcpu *vcpu, enum kvm_if (prot & ~KVM_PGTABLE_PROT_RWX )return -EINVAL ; -assert_host_shared_guest (vm, ipa,PAGE_SIZE ); +assert_host_shared_guest (vm, ipa,0 );guest_lock_component (vm); ret =kvm_pgtable_stage2_relax_perms (&vm->pgt, ipa, prot,0 );guest_unlock_component (vm);
@@ -1156,7 +1159,7 @@ int __pkvm_host_mkyoung_guest(u64 gfn, struct pkvm_hyp_vcpu *vcpu)if (pkvm_hyp_vm_is_protected (vm))return -EPERM ; -assert_host_shared_guest (vm, ipa,PAGE_SIZE ); +assert_host_shared_guest (vm, ipa,0 );guest_lock_component (vm);kvm_pgtable_stage2_mkyoung (&vm->pgt, ipa,0 );guest_unlock_component (vm);
arch/arm64/kvm/mmu.c +7 -2
@@ -1673,7 +1673,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,* cache maintenance. */ if (!kvm_supports_cacheable_pfnmap ()) -return -EFAULT ; + ret = -EFAULT ; }else {/* * If the page was identified as device early by looking at
@@ -1696,7 +1696,12 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, }if (exec_fault && s2_force_noncacheable) -return -ENOEXEC ; + ret = -ENOEXEC ; + +if (ret) { +kvm_release_page_unused (page); +return ret; + }/* * Potentially reduce shadow S2 permissions to match the guest's own
arch/arm64/mm/init.c +1 -1
@@ -279,7 +279,7 @@ void __init arm64_memblock_init(void)* Register the kernel text, kernel data, initrd, and initial * pagetables with memblock. */ -memblock_reserve (__pa_symbol (_stext), _end - _stext); +memblock_reserve (__pa_symbol (_text), _end - _text);if (IS_ENABLED (CONFIG_BLK_DEV_INITRD ) && phys_initrd_size) {/* the generic initrd code expects virtual addresses */ initrd_start =__phys_to_virt (phys_initrd_start);
arch/arm64/mm/mmu.c +9 -5
@@ -574,8 +574,8 @@ void __init mark_linear_text_alias_ro(void)/* * Remove the write permissions from the linear alias of .text/.rodata */ -update_mapping_prot (__pa_symbol (_stext), (unsigned long )lm_alias (_stext), - (unsigned long )__init_begin - (unsigned long )_stext, +update_mapping_prot (__pa_symbol (_text), (unsigned long )lm_alias (_text), + (unsigned long )__init_begin - (unsigned long )_text,PAGE_KERNEL_RO ); }
@@ -636,7 +636,7 @@ static inline void arm64_kfence_map_pool(phys_addr_t kfence_pool, pgd_t *pgdp) {static void __init map_mem (pgd_t *pgdp) {static const u64 direct_map_end =_PAGE_END (VA_BITS_MIN ); -phys_addr_t kernel_start =__pa_symbol (_stext); +phys_addr_t kernel_start =__pa_symbol (_text);phys_addr_t kernel_end =__pa_symbol (__init_begin);phys_addr_t start, end;phys_addr_t early_kfence_pool;
@@ -683,7 +683,7 @@ static void __init map_mem(pgd_t *pgdp) }/* -* Map the linear alias of the [_stext, __init_begin) interval +* Map the linear alias of the [_text, __init_begin) interval * as non-executable now, and remove the write permission in * mark_linear_text_alias_ro() below (which will be called after * alternative patching has completed). This makes the contents
@@ -710,6 +710,10 @@ void mark_rodata_ro(void)WRITE_ONCE (rodata_is_rw, false);update_mapping_prot (__pa_symbol (__start_rodata), (unsigned long )__start_rodata, section_size,PAGE_KERNEL_RO ); +/* mark the range between _text and _stext as read only. */ +update_mapping_prot (__pa_symbol (_text), (unsigned long )_text, + (unsigned long )_stext - (unsigned long )_text, +PAGE_KERNEL_RO ); } static void __init declare_vma(struct vm_struct *vma,
@@ -780,7 +784,7 @@ static void __init declare_kernel_vmas(void) {static struct vm_struct vmlinux_seg[KERNEL_SEGMENT_COUNT ]; -declare_vma (&vmlinux_seg[0 ], _stext, _etext,VM_NO_GUARD ); +declare_vma (&vmlinux_seg[0 ], _text, _etext,VM_NO_GUARD );declare_vma (&vmlinux_seg[1 ], __start_rodata, __inittext_begin,VM_NO_GUARD );declare_vma (&vmlinux_seg[2 ], __inittext_begin, __inittext_end,VM_NO_GUARD );declare_vma (&vmlinux_seg[3 ], __initdata_begin, __initdata_end,VM_NO_GUARD );
arch/loongarch/Makefile +2 -2
@@ -115,7 +115,7 @@ ifdef CONFIG_LTO_CLANG # The annotate-tablejump option can not be passed to LLVM backend when LTO is enabled. # Ensure it is aware of linker with LTO, '--loongarch-annotate-tablejump' also needs to # be passed via '-mllvm' to ld.lld. -KBUILD_LDFLAGS += -mllvm --loongarch-annotate-tablejump +KBUILD_LDFLAGS += $(call ld-option,-mllvm --loongarch-annotate-tablejump) endif endif
@@ -129,7 +129,7 @@ KBUILD_RUSTFLAGS_KERNEL += -Crelocation-model=pie LDFLAGS_vmlinux += -static -pie --no-dynamic-linker -z notext $(call ld-option, --apply-dynamic-relocs) endif -cflags-y += $(call cc-option, -mno-check-zero-division) +cflags-y += $(call cc-option, -mno-check-zero-division -fno-isolate-erroneous-paths-dereference) ifndef CONFIG_KASAN cflags-y += -fno-builtin-memcpy -fno-builtin-memmove -fno-builtin-memset
arch/loongarch/kernel/setup.c +1 -0
@@ -355,6 +355,7 @@ void __init platform_init(void)#ifdef CONFIG_ACPI acpi_table_upgrade (); + acpi_gbl_use_global_lock = false; acpi_gbl_use_default_register_widths = false;acpi_boot_table_init ();#endif
arch/parisc/include/uapi/asm/ioctls.h +4 -4
@@ -10,10 +10,10 @@#define TCSETS _IOW('T', 17, struct termios)/* TCSETATTR */ #define TCSETSW _IOW('T', 18, struct termios)/* TCSETATTRD */ #define TCSETSF _IOW('T', 19, struct termios)/* TCSETATTRF */ -#define TCGETA _IOR('T', 1, struct termio) -#define TCSETA _IOW('T', 2, struct termio) -#define TCSETAW _IOW('T', 3, struct termio) -#define TCSETAF _IOW('T', 4, struct termio) +#define TCGETA 0x40125401 +#define TCSETA 0x80125402 +#define TCSETAW 0x80125403 +#define TCSETAF 0x80125404#define TCSBRK _IO('T', 5)#define TCXONC _IO('T', 6)#define TCFLSH _IO('T', 7)
arch/parisc/lib/memcpy.c +0 -1
@@ -41,7 +41,6 @@ unsigned long raw_copy_from_user(void *dst, const void __user *src,mtsp (get_kernel_space (),SR_TEMP2 );/* Check region is user accessible */ -if (start)while (start < end) {if (!prober_user (SR_TEMP1 , start)) { newlen = (start - (unsigned long ) src);
arch/powerpc/platforms/powernv/pci-ioda.c +1 -1
@@ -1854,7 +1854,7 @@ static int pnv_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,return 0 ; out: -irq_domain_free_irqs_parent (domain, virq, i -1 ); +irq_domain_free_irqs_parent (domain, virq, i);msi_bitmap_free_hwirqs (&phb->msi_bmp, hwirq, nr_irqs);return ret; }
arch/powerpc/platforms/pseries/msi.c +1 -1
@@ -593,7 +593,7 @@ static int pseries_irq_domain_alloc(struct irq_domain *domain, unsigned int virq out:/* TODO: handle RTAS cleanup in ->msi_finish() ? */ -irq_domain_free_irqs_parent (domain, virq, i -1 ); +irq_domain_free_irqs_parent (domain, virq, i);return ret; }
arch/s390/Makefile +1 -0
@@ -25,6 +25,7 @@ endif KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11 KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY KBUILD_CFLAGS_DECOMPRESSOR += -D__DECOMPRESSOR +KBUILD_CFLAGS_DECOMPRESSOR += -Wno-pointer-sign KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float -mbackchain KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables KBUILD_CFLAGS_DECOMPRESSOR += -ffreestanding
arch/s390/include/asm/pgtable.h +22 -0
@@ -2055,4 +2055,26 @@ static inline unsigned long gmap_pgste_get_pgt_addr(unsigned long *pgt) return res; } +static inline pgste_t pgste_get_lock (pte_t *ptep) +{ +unsigned long value =0 ; +#ifdef CONFIG_PGSTE +unsigned long *ptr = (unsigned long *)(ptep +PTRS_PER_PTE ); + +do { + value =__atomic64_or_barrier (PGSTE_PCL_BIT , ptr); + }while (value &PGSTE_PCL_BIT ); + value |=PGSTE_PCL_BIT ; +#endif +return __pgste (value); +} + +static inline void pgste_set_unlock (pte_t *ptep,pgste_t pgste) +{ +#ifdef CONFIG_PGSTE +barrier (); +WRITE_ONCE (*(unsigned long *)(ptep +PTRS_PER_PTE ),pgste_val (pgste) & ~PGSTE_PCL_BIT ); +#endif +} +#endif /* _S390_PAGE_H */
arch/s390/kernel/vmlinux.lds.S +27 -27
66 lines not on this page · raw message
arch/s390/mm/gmap_helpers.c +11 -1
@@ -15,6 +15,7 @@#include <linux/pagewalk.h> #include <linux/ksm.h> #include <asm/gmap_helpers.h> +#include <asm/pgtable.h> /** * ptep_zap_swap_entry() - discard a swap entry.
@@ -47,6 +48,7 @@ void gmap_helper_zap_one_page(struct mm_struct *mm, unsigned long vmaddr) {struct vm_area_struct *vma;spinlock_t *ptl; +pgste_t pgste;pte_t *ptep;mmap_assert_locked (mm);
@@ -60,8 +62,16 @@ void gmap_helper_zap_one_page(struct mm_struct *mm, unsigned long vmaddr) ptep =get_locked_pte (mm, vmaddr, &ptl);if (unlikely (!ptep))return ; -if (pte_swap (*ptep)) +if (pte_swap (*ptep)) { +preempt_disable (); + pgste =pgste_get_lock (ptep); +ptep_zap_swap_entry (mm,pte_to_swp_entry (*ptep)); +pte_clear (mm, vmaddr, ptep); + +pgste_set_unlock (ptep, pgste); +preempt_enable (); + }pte_unmap_unlock (ptep, ptl); }EXPORT_SYMBOL_GPL (gmap_helper_zap_one_page);
arch/s390/mm/pgtable.c +1 -22
@@ -24,6 +24,7 @@#include <asm/tlbflush.h> #include <asm/mmu_context.h> #include <asm/page-states.h> +#include <asm/pgtable.h> #include <asm/machine.h> pgprot_t pgprot_writecombine (pgprot_t prot)
@@ -115,28 +116,6 @@ static inline pte_t ptep_flush_lazy(struct mm_struct *mm,return old; } -static inline pgste_t pgste_get_lock (pte_t *ptep) -{ -unsigned long value =0 ; -#ifdef CONFIG_PGSTE -unsigned long *ptr = (unsigned long *)(ptep +PTRS_PER_PTE ); - -do { - value =__atomic64_or_barrier (PGSTE_PCL_BIT , ptr); - }while (value &PGSTE_PCL_BIT ); - value |=PGSTE_PCL_BIT ; -#endif -return __pgste (value); -} - -static inline void pgste_set_unlock (pte_t *ptep,pgste_t pgste) -{ -#ifdef CONFIG_PGSTE -barrier (); -WRITE_ONCE (*(unsigned long *)(ptep +PTRS_PER_PTE ),pgste_val (pgste) & ~PGSTE_PCL_BIT ); -#endif -} -static inline pgste_t pgste_get (pte_t *ptep) {unsigned long pgste =0 ;
arch/sparc/kernel/of_device_32.c +1 -0
@@ -387,6 +387,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,if (of_device_register (op)) {printk ("%pOF: Could not register of device.\n" , dp); +put_device (&op->dev);kfree (op); op =NULL ; }
arch/sparc/kernel/of_device_64.c +1 -0
@@ -677,6 +677,7 @@ static struct platform_device * __init scan_one_device(struct device_node *dp,if (of_device_register (op)) {printk ("%pOF: Could not register of device.\n" , dp); +put_device (&op->dev);kfree (op); op =NULL ; }
arch/sparc/mm/hugetlbpage.c +20 -0
@@ -22,6 +22,26 @@static pte_t sun4u_hugepage_shift_to_tte (pte_t entry,unsigned int shift) { +unsigned long hugepage_size = _PAGE_SZ4MB_4U; + +pte_val (entry) =pte_val (entry) & ~_PAGE_SZALL_4U; + +switch (shift) { +case HPAGE_256MB_SHIFT : + hugepage_size = _PAGE_SZ256MB_4U; +pte_val (entry) |= _PAGE_PMD_HUGE; +break ; +case HPAGE_SHIFT : +pte_val (entry) |= _PAGE_PMD_HUGE; +break ; +case HPAGE_64K_SHIFT : + hugepage_size = _PAGE_SZ64K_4U; +break ; +default : +WARN_ONCE (1 ,"unsupported hugepage shift=%u\n" , shift); + } + +pte_val (entry) =pte_val (entry) | hugepage_size;return entry; }
arch/x86/entry/entry_64_fred.S +1 -1
@@ -16,7 +16,7 @@ .macro FRED_ENTER UNWIND_HINT_END_OF_STACK - ENDBR + ANNOTATE_NOENDBR PUSH_AND_CLEAR_REGS movq %rsp, %rdi /* %rdi -> pt_regs */ .endm
arch/x86/include/asm/kvm_host.h +1 -0
@@ -2356,6 +2356,7 @@ int kvm_add_user_return_msr(u32 msr);int kvm_find_user_return_msr (u32 msr);int kvm_set_user_return_msr (unsigned index,u64 val,u64 mask);void kvm_user_return_msr_update_cache (unsigned int index,u64 val); +u64 kvm_get_user_return_msr (unsigned int slot);static inline bool kvm_is_supported_user_return_msr (u32 msr) {
arch/x86/include/asm/msr-index.h +1 -0
@@ -733,6 +733,7 @@#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS 0xc0000300#define MSR_AMD64_PERF_CNTR_GLOBAL_CTL 0xc0000301#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR 0xc0000302 +#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET 0xc0000303/* AMD Hardware Feedback Support MSRs */ #define MSR_AMD_WORKLOAD_CLASS_CONFIG 0xc0000500
arch/x86/kernel/kvm.c +19 -2
@@ -933,6 +933,19 @@ static void kvm_sev_hc_page_enc_status(unsigned long pfn, int npages, bool enc)static void __init kvm_init_platform (void ) { +u64 tolud =PFN_PHYS (e820__end_of_low_ram_pfn ()); +/* +* Note, hardware requires variable MTRR ranges to be power-of-2 sized +* and naturally aligned. But when forcing guest MTRR state, Linux +* doesn't program the forced ranges into hardware. Don't bother doing +* the math to generate a technically-legal range. +*/ +struct mtrr_var_range pci_hole = { + .base_lo = tolud |X86_MEMTYPE_UC , + .mask_lo = (u32)(~(SZ_4G - tolud -1 )) |MTRR_PHYSMASK_V , + .mask_hi = (BIT_ULL (boot_cpu_data.x86_phys_bits) -1 ) >>32 , + }; +if (cc_platform_has (CC_ATTR_GUEST_MEM_ENCRYPT ) &&kvm_para_has_feature (KVM_FEATURE_MIGRATION_CONTROL )) {unsigned long nr_pages;
@@ -982,8 +995,12 @@ static void __init kvm_init_platform(void)kvmclock_init (); x86_platform.apic_post_init = kvm_apic_init; -/* Set WB as the default cache mode for SEV-SNP and TDX */ -guest_force_mtrr_state (NULL ,0 ,MTRR_TYPE_WRBACK ); +/* +* Set WB as the default cache mode for SEV-SNP and TDX, with a single +* UC range for the legacy PCI hole, e.g. so that devices that expect +* to get UC/WC mappings don't get surprised with WB. +*/ +guest_force_mtrr_state (&pci_hole,1 ,MTRR_TYPE_WRBACK ); }#if defined(CONFIG_AMD_MEM_ENCRYPT )
arch/x86/kernel/umip.c +13 -2
@@ -156,15 +156,26 @@ static int identify_insn(struct insn *insn)if (!insn->modrm.nbytes)return -EINVAL ; -/* All the instructions of interest start with 0x0f. */ -if (insn->opcode.bytes[0 ] !=0xf ) +/* The instructions of interest have 2-byte opcodes: 0F 00 or 0F 01. */ +if (insn->opcode.nbytes <2 || insn->opcode.bytes[0 ] !=0xf )return -EINVAL ;if (insn->opcode.bytes[1 ] ==0x1 ) {switch (X86_MODRM_REG (insn->modrm.value)) {case 0 : +/* The reg form of 0F 01 /0 encodes VMX instructions. */ +if (X86_MODRM_MOD (insn->modrm.value) ==3 ) +return -EINVAL ; +return UMIP_INST_SGDT ;case 1 : +/* +* The reg form of 0F 01 /1 encodes MONITOR/MWAIT, +* STAC/CLAC, and ENCLS. +*/ +if (X86_MODRM_MOD (insn->modrm.value) ==3 ) +return -EINVAL ; +return UMIP_INST_SIDT ;case 4 :return UMIP_INST_SMSW ;
arch/x86/kvm/pmu.c +5 -0
@@ -650,6 +650,7 @@ int kvm_pmu_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info) msr_info->data = pmu->global_ctrl;break ;case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :case MSR_CORE_PERF_GLOBAL_OVF_CTRL : msr_info->data =0 ;break ;
@@ -711,6 +712,10 @@ int kvm_pmu_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)if (!msr_info->host_initiated) pmu->global_status &= ~data;break ; +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET : +if (!msr_info->host_initiated) + pmu->global_status |= data & ~pmu->global_status_rsvd; +break ;default :kvm_pmu_mark_pmc_in_use (vcpu, msr_info->index);return kvm_pmu_call (set_msr)(vcpu, msr_info);
arch/x86/kvm/svm/pmu.c +1 -0
@@ -113,6 +113,7 @@ static bool amd_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS :case MSR_AMD64_PERF_CNTR_GLOBAL_CTL :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :return pmu->version >1 ;default : if (msr > MSR_F15H_PERF_CTR5 &&
arch/x86/kvm/svm/sev.c +10 -0
@@ -4618,6 +4618,16 @@ void sev_es_prepare_switch_to_guest(struct vcpu_svm *svm, struct sev_es_save_are hostsa->dr2_addr_mask =amd_get_dr_addr_mask (2 ); hostsa->dr3_addr_mask =amd_get_dr_addr_mask (3 ); } + +/* +* TSC_AUX is always virtualized for SEV-ES guests when the feature is +* available, i.e. TSC_AUX is loaded on #VMEXIT from the host save area. +* Set the save area to the current hardware value, i.e. the current +* user return value, so that the correct value is restored on #VMEXIT. +*/ +if (cpu_feature_enabled (X86_FEATURE_V_TSC_AUX ) && + !WARN_ON_ONCE (tsc_aux_uret_slot <0 )) + hostsa->tsc_aux =kvm_get_user_return_msr (tsc_aux_uret_slot); }void sev_vcpu_deliver_sipi_vector (struct kvm_vcpu *vcpu,u8 vector)
arch/x86/kvm/svm/svm.c +6 -19
@@ -195,7 +195,7 @@ static DEFINE_MUTEX(vmcb_dump_mutex);* RDTSCP and RDPID are not used in the kernel, specifically to allow KVM to * defer the restoration of TSC_AUX until the CPU returns to userspace. */ -static int tsc_aux_uret_slot__read_mostly =-1 ; +int tsc_aux_uret_slot__ro_after_init =-1 ;static int get_npt_level (void ) {
@@ -577,18 +577,6 @@ static int svm_enable_virtualization_cpu(void)amd_pmu_enable_virt (); -/* -* If TSC_AUX virtualization is supported, TSC_AUX becomes a swap type -* "B" field (see sev_es_prepare_switch_to_guest()) for SEV-ES guests. -* Since Linux does not change the value of TSC_AUX once set, prime the -* TSC_AUX field now to avoid a RDMSR on every vCPU run. -*/ -if (boot_cpu_has (X86_FEATURE_V_TSC_AUX )) { -u32 __maybe_unused msr_hi; - -rdmsr (MSR_TSC_AUX ,sev_es_host_save_area (sd)->tsc_aux, msr_hi); - } -return 0 ; }
@@ -1423,10 +1411,10 @@ static void svm_prepare_switch_to_guest(struct kvm_vcpu *vcpu)__svm_write_tsc_multiplier (vcpu->arch.tsc_scaling_ratio);/* -* TSC_AUX is always virtualized for SEV-ES guests when the feature is -* available. The user return MSR support is not required in this case -* because TSC_AUX is restored on #VMEXIT from the host save area -* (which has been initialized in svm_enable_virtualization_cpu()). +* TSC_AUX is always virtualized (context switched by hardware) for +* SEV-ES guests when the feature is available. For non-SEV-ES guests, +* context switch TSC_AUX via the user_return MSR infrastructure (not +* all CPUs support TSC_AUX virtualization). */ if (likely (tsc_aux_uret_slot >=0 ) && (!boot_cpu_has (X86_FEATURE_V_TSC_AUX ) || !sev_es_guest (vcpu->kvm)))
@@ -3021,8 +3009,7 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr)* TSC_AUX is always virtualized for SEV-ES guests when the * feature is available. The user return MSR support is not * required in this case because TSC_AUX is restored on #VMEXIT -* from the host save area (which has been initialized in -* svm_enable_virtualization_cpu()). +* from the host save area. */ if (boot_cpu_has (X86_FEATURE_V_TSC_AUX ) &&sev_es_guest (vcpu->kvm))break ;
arch/x86/kvm/svm/svm.h +2 -0
@@ -52,6 +52,8 @@ extern bool x2avic_enabled;extern bool vnmi;extern int lbrv; +extern int tsc_aux_uret_slot__ro_after_init ; +/* * Clean bits in VMCB. * VMCB_ALL_CLEAN_MASK might also need to
arch/x86/kvm/vmx/tdx.c +3 -7
@@ -3457,12 +3457,11 @@ static int __init __tdx_bringup(void)if (r) goto tdx_bringup_err; + r = -EINVAL ;/* Get TDX global information for later use */ tdx_sysinfo =tdx_get_sysinfo (); -if (WARN_ON_ONCE (!tdx_sysinfo)) { - r = -EINVAL ; +if (WARN_ON_ONCE (!tdx_sysinfo)) goto get_sysinfo_err; - }/* Check TDX module and KVM capabilities */ if (!tdx_get_supported_attrs(&tdx_sysinfo->td_conf) ||
@@ -3505,14 +3504,11 @@ static int __init __tdx_bringup(void)if (td_conf->max_vcpus_per_td <num_present_cpus ()) {pr_err ("Disable TDX: MAX_VCPU_PER_TD (%u) smaller than number of logical CPUs (%u).\n" , td_conf->max_vcpus_per_td,num_present_cpus ()); - r = -EINVAL ; goto get_sysinfo_err; } -if (misc_cg_set_capacity (MISC_CG_RES_TDX ,tdx_get_nr_guest_keyids ())) { - r = -EINVAL ; +if (misc_cg_set_capacity (MISC_CG_RES_TDX ,tdx_get_nr_guest_keyids ())) goto get_sysinfo_err; - }/* * Leave hardware virtualization enabled after TDX is enabled
arch/x86/kvm/x86.c +8 -0
@@ -367,6 +367,7 @@ static const u32 msrs_to_save_pmu[] = {MSR_AMD64_PERF_CNTR_GLOBAL_CTL ,MSR_AMD64_PERF_CNTR_GLOBAL_STATUS ,MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR , + MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET, }; static u32 msrs_to_save[ARRAY_SIZE(msrs_to_save_base) +
@@ -677,6 +678,12 @@ void kvm_user_return_msr_update_cache(unsigned int slot, u64 value) }EXPORT_SYMBOL_GPL (kvm_user_return_msr_update_cache); +u64 kvm_get_user_return_msr (unsigned int slot) +{ +return this_cpu_ptr (user_return_msrs)->values[slot].curr; +} +EXPORT_SYMBOL_GPL (kvm_get_user_return_msr); +static void drop_user_return_notifiers (void ) {struct kvm_user_return_msrs *msrs =this_cpu_ptr (user_return_msrs);
@@ -7353,6 +7360,7 @@ static void kvm_probe_msr_to_save(u32 msr_index)case MSR_AMD64_PERF_CNTR_GLOBAL_CTL :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS :case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_CLR : +case MSR_AMD64_PERF_CNTR_GLOBAL_STATUS_SET :if (!kvm_cpu_cap_has (X86_FEATURE_PERFMON_V2 ))return ;break ;
arch/xtensa/platforms/iss/simdisk.c +5 -1
@@ -231,10 +231,14 @@ static ssize_t proc_read_simdisk(struct file *file, char __user *buf,static ssize_t proc_write_simdisk (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -char *tmp =memdup_user_nul (buf, count); +char *tmp;struct simdisk *dev =pde_data (file_inode (file));int err; +if (count ==0 || count >PAGE_SIZE ) +return -EINVAL ; + + tmp =memdup_user_nul (buf, count);if (IS_ERR (tmp))return PTR_ERR (tmp);
block/blk-crypto-fallback.c +3 -0
@@ -18,6 +18,7 @@#include <linux/module.h> #include <linux/random.h> #include <linux/scatterlist.h> +#include <trace/events/block.h> #include "blk-cgroup.h" #include "blk-crypto-internal.h"
@@ -231,7 +232,9 @@ static bool blk_crypto_fallback_split_bio_if_needed(struct bio **bio_ptr) bio->bi_status =BLK_STS_RESOURCE ;return false; } +bio_chain (split_bio, bio); +trace_block_split (split_bio, bio->bi_iter.bi_sector);submit_bio_noacct (bio); *bio_ptr = split_bio; }
crypto/essiv.c +6 -8
@@ -186,9 +186,14 @@ static int essiv_aead_crypt(struct aead_request *req, bool enc)const struct essiv_tfm_ctx *tctx =crypto_aead_ctx (tfm);struct essiv_aead_request_ctx *rctx =aead_request_ctx (req);struct aead_request *subreq = &rctx->aead_req; +int ivsize =crypto_aead_ivsize (tfm); +int ssize = req->assoclen - ivsize;struct scatterlist *src = req->src;int err; +if (ssize <0 ) +return -EINVAL ; +crypto_cipher_encrypt_one (tctx->essiv_cipher, req->iv, req->iv);/*
@@ -198,19 +203,12 @@ static int essiv_aead_crypt(struct aead_request *req, bool enc)*/ rctx->assoc =NULL ;if (req->src == req->dst || !enc) { -scatterwalk_map_and_copy (req->iv, req->dst, - req->assoclen -crypto_aead_ivsize (tfm), -crypto_aead_ivsize (tfm),1 ); +scatterwalk_map_and_copy (req->iv, req->dst, ssize, ivsize,1 ); }else {u8 *iv = (u8 *)aead_request_ctx (req) + tctx->ivoffset; -int ivsize =crypto_aead_ivsize (tfm); -int ssize = req->assoclen - ivsize;struct scatterlist *sg;int nents; -if (ssize <0 ) -return -EINVAL ; - nents =sg_nents_for_len (req->src, ssize);if (nents <0 )return -EINVAL ;
crypto/skcipher.c +2 -0
@@ -294,6 +294,8 @@ static int crypto_skcipher_init_tfm(struct crypto_tfm *tfm)return crypto_init_lskcipher_ops_sg (tfm); } +crypto_skcipher_set_reqsize (skcipher,crypto_tfm_alg_reqsize (tfm)); +if (alg->exit) skcipher->base.exit = crypto_skcipher_exit_tfm;
drivers/acpi/acpi_dbg.c +13 -13
@@ -569,11 +569,11 @@ static int acpi_aml_release(struct inode *inode, struct file *file)return 0 ; } -static int acpi_aml_read_user (char __user *buf,int len) +static ssize_t acpi_aml_read_user (char __user *buf,size_t len) { -int ret;struct circ_buf *crc = &acpi_aml_io.out_crc; -int n; +ssize_t ret; +size_t n;char *p; ret =acpi_aml_lock_read (crc,ACPI_AML_OUT_USER );
@@ -582,7 +582,7 @@ static int acpi_aml_read_user(char __user *buf, int len)/* sync head before removing logs */ smp_rmb (); p = &crc->buf[crc->tail]; - n =min (len,circ_count_to_end (crc)); + n =min_t (size_t, len,circ_count_to_end (crc));if (copy_to_user (buf, p, n)) { ret = -EFAULT ; goto out;
@@ -599,8 +599,8 @@ static int acpi_aml_read_user(char __user *buf, int len)static ssize_t acpi_aml_read (struct file *file,char __user *buf,size_t count,loff_t *ppos) { -int ret =0 ; -int size =0 ; +ssize_t ret =0 ; +ssize_t size =0 ;if (!count)return 0 ;
@@ -639,11 +639,11 @@ static ssize_t acpi_aml_read(struct file *file, char __user *buf,return size >0 ? size : ret; } -static int acpi_aml_write_user (const char __user *buf,int len) +static ssize_t acpi_aml_write_user (const char __user *buf,size_t len) { -int ret;struct circ_buf *crc = &acpi_aml_io.in_crc; -int n; +ssize_t ret; +size_t n;char *p; ret =acpi_aml_lock_write (crc,ACPI_AML_IN_USER );
@@ -652,7 +652,7 @@ static int acpi_aml_write_user(const char __user *buf, int len)/* sync tail before inserting cmds */ smp_mb (); p = &crc->buf[crc->head]; - n =min (len,circ_space_to_end (crc)); + n =min_t (size_t, len,circ_space_to_end (crc));if (copy_from_user (p, buf, n)) { ret = -EFAULT ; goto out;
@@ -663,14 +663,14 @@ static int acpi_aml_write_user(const char __user *buf, int len) ret = n; out:acpi_aml_unlock_fifo (ACPI_AML_IN_USER , ret >=0 ); -return n; +return ret; }static ssize_t acpi_aml_write (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -int ret =0 ; -int size =0 ; +ssize_t ret =0 ; +ssize_t size =0 ;if (!count)return 0 ;
drivers/acpi/acpi_tad.c +3 -0
@@ -565,6 +565,9 @@ static void acpi_tad_remove(struct platform_device *pdev)pm_runtime_get_sync (dev); +if (dd->capabilities &ACPI_TAD_RT ) +sysfs_remove_group (&dev->kobj, &acpi_tad_time_attr_group); +if (dd->capabilities &ACPI_TAD_DC_WAKE )sysfs_remove_group (&dev->kobj, &acpi_tad_dc_attr_group);
drivers/acpi/acpica/acdebug.h +1 -1
@@ -37,7 +37,7 @@ struct acpi_db_argument_info {struct acpi_db_execute_walk {u32 count;u32 max_count; - char name_seg[ACPI_NAMESEG_SIZE + 1] ACPI_NONSTRING; +char name_seg[ACPI_NAMESEG_SIZE +1 ]; };#define PARAM_LIST (pl) pl
drivers/acpi/acpica/evglock.c +4 -0
@@ -42,6 +42,10 @@ acpi_status acpi_ev_init_global_lock_handler(void)return_ACPI_STATUS (AE_OK ); } +if (!acpi_gbl_use_global_lock) { +return_ACPI_STATUS (AE_OK ); + } +/* Attempt installation of the global lock handler */ status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
drivers/acpi/battery.c +29 -14
123 lines not on this page · raw message
drivers/acpi/property.c +88 -49
212 lines not on this page · raw message
drivers/base/base.h +9 -0
@@ -248,9 +248,18 @@ void device_links_driver_cleanup(struct device *dev);void device_links_no_driver (struct device *dev);bool device_links_busy (struct device *dev);void device_links_unbind_consumers (struct device *dev); +bool device_link_flag_is_sync_state_only (u32 flags);void fw_devlink_drivers_done (void );void fw_devlink_probing_done (void ); +#define dev_for_each_link_to_supplier (__link, __dev) \ + list_for_each_entry_srcu(__link, &(__dev)->links.suppliers, c_node, \ + device_links_read_lock_held()) + +#define dev_for_each_link_to_consumer (__link, __dev) \ + list_for_each_entry_srcu(__link, &(__dev)->links.consumers, s_node, \ + device_links_read_lock_held()) +/* device pm support */ void device_pm_move_to_tail (struct device *dev);
drivers/base/core.c +1 -1
@@ -287,7 +287,7 @@ static bool device_is_ancestor(struct device *dev, struct device *target)#define DL_MARKER_FLAGS (DL_FLAG_INFERRED | \ DL_FLAG_CYCLE | \ DL_FLAG_MANAGED) -static inline bool device_link_flag_is_sync_state_only (u32 flags) +bool device_link_flag_is_sync_state_only (u32 flags) {return (flags & ~DL_MARKER_FLAGS ) ==DL_FLAG_SYNC_STATE_ONLY ; }
drivers/base/power/main.c +11 -13
@@ -40,10 +40,6 @@typedef int (*pm_callback_t )(struct device *); -#define list_for_each_entry_rcu_locked (pos, head, member) \ - list_for_each_entry_rcu(pos, head, member, \ - device_links_read_lock_held()) -/* * The entries in the dpm_list list are in a depth first order, simply * because children are guaranteed to be discovered after parents, and
@@ -281,8 +277,9 @@ static void dpm_wait_for_suppliers(struct device *dev, bool async)* callbacks freeing the link objects for the links in the list we're * walking. */ -list_for_each_entry_rcu_locked (link, &dev->links.suppliers, c_node) -if (READ_ONCE (link->status) !=DL_STATE_DORMANT ) +dev_for_each_link_to_supplier (link, dev) +if (READ_ONCE (link->status) !=DL_STATE_DORMANT && + !device_link_flag_is_sync_state_only (link->flags))dpm_wait (link->supplier, async);device_links_read_unlock (idx);
@@ -338,8 +335,9 @@ static void dpm_wait_for_consumers(struct device *dev, bool async)* continue instead of trying to continue in parallel with its * unregistration). */ -list_for_each_entry_rcu_locked (link, &dev->links.consumers, s_node) -if (READ_ONCE (link->status) !=DL_STATE_DORMANT ) +dev_for_each_link_to_consumer (link, dev) +if (READ_ONCE (link->status) !=DL_STATE_DORMANT && + !device_link_flag_is_sync_state_only (link->flags))dpm_wait (link->consumer, async);device_links_read_unlock (idx);
@@ -675,7 +673,7 @@ static void dpm_async_resume_subordinate(struct device *dev, async_func_t func) idx =device_links_read_lock ();/* Start processing the device's "async" consumers. */ -list_for_each_entry_rcu_locked (link, &dev->links.consumers, s_node) +dev_for_each_link_to_consumer (link, dev)if (READ_ONCE (link->status) !=DL_STATE_DORMANT )dpm_async_with_cleanup (link->consumer, func);
@@ -1342,7 +1340,7 @@ static void dpm_async_suspend_superior(struct device *dev, async_func_t func) idx =device_links_read_lock ();/* Start processing the device's "async" suppliers. */ -list_for_each_entry_rcu_locked (link, &dev->links.suppliers, c_node) +dev_for_each_link_to_supplier (link, dev)if (READ_ONCE (link->status) !=DL_STATE_DORMANT )dpm_async_with_cleanup (link->supplier, func);
@@ -1396,7 +1394,7 @@ static void dpm_superior_set_must_resume(struct device *dev) idx =device_links_read_lock (); -list_for_each_entry_rcu_locked (link, &dev->links.suppliers, c_node) +dev_for_each_link_to_supplier (link, dev) link->supplier->power.must_resume = true;device_links_read_unlock (idx);
@@ -1825,7 +1823,7 @@ static void dpm_clear_superiors_direct_complete(struct device *dev) idx =device_links_read_lock (); -list_for_each_entry_rcu_locked (link, &dev->links.suppliers, c_node) { +dev_for_each_link_to_supplier (link, dev) {spin_lock_irq (&link->supplier->power.lock); link->supplier->power.direct_complete = false;spin_unlock_irq (&link->supplier->power.lock);
@@ -2077,7 +2075,7 @@ static bool device_prepare_smart_suspend(struct device *dev) idx =device_links_read_lock (); -list_for_each_entry_rcu_locked (link, &dev->links.suppliers, c_node) { +dev_for_each_link_to_supplier (link, dev) {if (!device_link_test (link,DL_FLAG_PM_RUNTIME ))continue ;
drivers/base/power/runtime.c +1 -2
@@ -1903,8 +1903,7 @@ void pm_runtime_get_suppliers(struct device *dev) idx =device_links_read_lock (); -list_for_each_entry_rcu (link, &dev->links.suppliers, c_node, -device_links_read_lock_held ()) +dev_for_each_link_to_supplier (link, dev)if (device_link_test (link,DL_FLAG_PM_RUNTIME )) { link->supplier_preactivated = true;pm_runtime_get_sync (link->supplier);
drivers/block/loop.c +6 -2
@@ -551,8 +551,10 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev,return -EBADF ; error =loop_check_backing_file (file); -if (error) +if (error) { +fput (file);return error; + }/* suppress uevents while reconfiguring the device */ dev_set_uevent_suppress (disk_to_dev (lo->lo_disk),1 );
@@ -993,8 +995,10 @@ static int loop_configure(struct loop_device *lo, blk_mode_t mode,return -EBADF ; error =loop_check_backing_file (file); -if (error) +if (error) { +fput (file);return error; + } is_loop =is_loop_device (file);
drivers/bus/mhi/ep/main.c +12 -25
@@ -403,17 +403,13 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl, {struct mhi_ep_chan *mhi_chan = &mhi_cntrl->mhi_chan[ring->ch_id];struct device *dev = &mhi_cntrl->mhi_dev->dev; -size_t tr_len, read_offset, write_offset; +size_t tr_len, read_offset;struct mhi_ep_buf_info buf_info = {};u32 len =MHI_EP_DEFAULT_MTU ;struct mhi_ring_element *el; -bool tr_done = false;void *buf_addr; -u32 buf_left;int ret; - buf_left = len; - do { /* Don't process the transfer ring if the channel is not in RUNNING state */ if (mhi_chan->state != MHI_CH_STATE_RUNNING) {
@@ -426,24 +422,23 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl,/* Check if there is data pending to be read from previous read operation */ if (mhi_chan->tre_bytes_left) {dev_dbg (dev,"TRE bytes remaining: %u\n" , mhi_chan->tre_bytes_left); - tr_len =min (buf_left, mhi_chan->tre_bytes_left); + tr_len =min (len, mhi_chan->tre_bytes_left); }else { mhi_chan->tre_loc =MHI_TRE_DATA_GET_PTR (el); mhi_chan->tre_size =MHI_TRE_DATA_GET_LEN (el); mhi_chan->tre_bytes_left = mhi_chan->tre_size; - tr_len =min (buf_left, mhi_chan->tre_size); + tr_len =min (len, mhi_chan->tre_size); } read_offset = mhi_chan->tre_size - mhi_chan->tre_bytes_left; - write_offset = len - buf_left; buf_addr =kmem_cache_zalloc (mhi_cntrl->tre_buf_cache,GFP_KERNEL );if (!buf_addr)return -ENOMEM ; buf_info.host_addr = mhi_chan->tre_loc + read_offset; - buf_info.dev_addr = buf_addr + write_offset; + buf_info.dev_addr = buf_addr; buf_info.size = tr_len; buf_info.cb = mhi_ep_read_completion; buf_info.cb_buf = buf_addr;
@@ -459,16 +454,12 @@ static int mhi_ep_read_channel(struct mhi_ep_cntrl *mhi_cntrl, goto err_free_buf_addr; } - buf_left -= tr_len; mhi_chan->tre_bytes_left -= tr_len; -if (!mhi_chan->tre_bytes_left) { -if (MHI_TRE_DATA_GET_IEOT (el)) - tr_done = true; - +if (!mhi_chan->tre_bytes_left) mhi_chan->rd_offset = (mhi_chan->rd_offset +1 ) % ring->ring_size; - } - }while (buf_left && !tr_done); +/* Read until the some buffer is left or the ring becomes not empty */ + }while (!mhi_ep_queue_is_empty (mhi_chan->mhi_dev,DMA_TO_DEVICE ));return 0 ;
@@ -502,15 +493,11 @@ static int mhi_ep_process_ch_ring(struct mhi_ep_ring *ring) mhi_chan->xfer_cb (mhi_chan->mhi_dev, &result); }else {/* UL channel */ -do { - ret =mhi_ep_read_channel (mhi_cntrl, ring); -if (ret <0 ) { -dev_err (&mhi_chan->mhi_dev->dev,"Failed to read channel\n" ); -return ret; - } - -/* Read until the ring becomes empty */ - }while (!mhi_ep_queue_is_empty (mhi_chan->mhi_dev,DMA_TO_DEVICE )); + ret =mhi_ep_read_channel (mhi_cntrl, ring); +if (ret <0 ) { +dev_err (&mhi_chan->mhi_dev->dev,"Failed to read channel\n" ); +return ret; + } }return 0 ;
drivers/bus/mhi/host/init.c +2 -3
@@ -194,7 +194,6 @@ static void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl)static int mhi_init_irq_setup (struct mhi_controller *mhi_cntrl) {struct mhi_event *mhi_event = mhi_cntrl->mhi_event; -struct device *dev = &mhi_cntrl->mhi_dev->dev;unsigned long irq_flags =IRQF_SHARED |IRQF_NO_SUSPEND ;int i, ret;
@@ -221,7 +220,7 @@ static int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl)continue ;if (mhi_event->irq >= mhi_cntrl->nr_irqs) { -dev_err (dev,"irq %d not available for event ring\n" , +dev_err (mhi_cntrl->cntrl_dev,"irq %d not available for event ring\n" , mhi_event->irq); ret = -EINVAL ; goto error_request;
@@ -232,7 +231,7 @@ static int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl) irq_flags, "mhi", mhi_event);if (ret) { -dev_err (dev,"Error requesting irq:%d for ev:%d\n" , +dev_err (mhi_cntrl->cntrl_dev,"Error requesting irq:%d for ev:%d\n" , mhi_cntrl->irq[mhi_event->irq], i); goto error_request; }
drivers/cdx/cdx_msi.c +1 -0
@@ -174,6 +174,7 @@ struct irq_domain *cdx_msi_domain_init(struct device *dev) } parent =irq_find_matching_fwnode (of_fwnode_handle (parent_node),DOMAIN_BUS_NEXUS ); +of_node_put (parent_node);if (!parent || !msi_get_domain_info (parent)) {dev_err (dev,"unable to locate ITS domain\n" );return NULL ;
drivers/char/ipmi/ipmi_kcs_sm.c +5 -11
@@ -122,10 +122,10 @@ struct si_sm_data {unsigned long error0_timeout; }; -static unsigned int init_kcs_data_with_state (struct si_sm_data *kcs, -struct si_sm_io *io,enum kcs_states state) +static unsigned int init_kcs_data (struct si_sm_data *kcs, +struct si_sm_io *io) { - kcs->state = state; + kcs->state =KCS_IDLE ; kcs->io = io; kcs->write_pos =0 ; kcs->write_count =0 ;
@@ -140,12 +140,6 @@ static unsigned int init_kcs_data_with_state(struct si_sm_data *kcs,return 2 ; } -static unsigned int init_kcs_data (struct si_sm_data *kcs, -struct si_sm_io *io) -{ -return init_kcs_data_with_state (kcs, io,KCS_IDLE ); -} -static inline unsigned char read_status (struct si_sm_data *kcs) {return kcs->io->inputb (kcs->io,1 );
@@ -276,7 +270,7 @@ static int start_kcs_transaction(struct si_sm_data *kcs, unsigned char *data,if (size >MAX_KCS_WRITE_SIZE )return IPMI_REQ_LEN_EXCEEDED_ERR ; -if (kcs->state !=KCS_IDLE ) { +if ((kcs->state !=KCS_IDLE ) && (kcs->state !=KCS_HOSED )) {dev_warn (kcs->io->dev,"KCS in invalid state %d\n" , kcs->state);return IPMI_NOT_IN_MY_STATE_ERR ; }
@@ -501,7 +495,7 @@ static enum si_sm_result kcs_event(struct si_sm_data *kcs, long time) }if (kcs->state ==KCS_HOSED ) { -init_kcs_data_with_state (kcs, kcs->io,KCS_ERROR0 ); +init_kcs_data (kcs, kcs->io);return SI_SM_HOSED ; }
drivers/char/ipmi/ipmi_msghandler.c +228 -256
814 lines not on this page · raw message
drivers/char/tpm/tpm_tis_core.c +2 -2
@@ -978,8 +978,8 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask,* will call disable_irq which undoes all of the above. */ if (!(chip->flags &TPM_CHIP_FLAG_IRQ )) { -tpm_tis_write8 (priv, original_int_vec, -TPM_INT_VECTOR (priv->locality)); +tpm_tis_write8 (priv,TPM_INT_VECTOR (priv->locality), + original_int_vec); rc =-1 ; }
drivers/clk/Kconfig +1 -0
@@ -364,6 +364,7 @@ config COMMON_CLK_LOCHNAGAR config COMMON_CLK_NPCM8XX tristate "Clock driver for the NPCM8XX SoC Family" depends on ARCH_NPCM || COMPILE_TEST + select AUXILIARY_BUS help This driver supports the clocks on the Nuvoton BMC NPCM8XX SoC Family, all the clocks are initialized by the bootloader, so this driver
drivers/clk/at91/clk-peripheral.c +5 -2
@@ -279,8 +279,11 @@ static int clk_sam9x5_peripheral_determine_rate(struct clk_hw *hw,long best_diff =LONG_MIN ;u32 shift; -if (periph->id <PERIPHERAL_ID_MIN || !periph->range.max) -return parent_rate; +if (periph->id <PERIPHERAL_ID_MIN || !periph->range.max) { + req->rate = parent_rate; + +return 0 ; + }/* Fist step: check the available dividers. */ for (shift =0 ; shift <=PERIPHERAL_MAX_SHIFT ; shift++) {
drivers/clk/mediatek/clk-mt8195-infra_ao.c +1 -1
@@ -103,7 +103,7 @@ static const struct mtk_gate infra_ao_clks[] = {GATE_INFRA_AO0 (CLK_INFRA_AO_CQ_DMA_FPC ,"infra_ao_cq_dma_fpc" ,"fpc" ,28 ),GATE_INFRA_AO0 (CLK_INFRA_AO_UART5 ,"infra_ao_uart5" ,"top_uart" ,29 ),/* INFRA_AO1 */ -GATE_INFRA_AO1 (CLK_INFRA_AO_HDMI_26M ,"infra_ao_hdmi_26m" ,"clk26m" ,0 ), +GATE_INFRA_AO1 (CLK_INFRA_AO_HDMI_26M ,"infra_ao_hdmi_26m" ,"top_hdmi_xtal" ,0 ),GATE_INFRA_AO1 (CLK_INFRA_AO_SPI0 ,"infra_ao_spi0" ,"top_spi" ,1 ),GATE_INFRA_AO1 (CLK_INFRA_AO_MSDC0 ,"infra_ao_msdc0" ,"top_msdc50_0_hclk" ,2 ), GATE_INFRA_AO1(CLK_INFRA_AO_MSDC1, "infra_ao_msdc1", "top_axi", 4),
drivers/clk/mediatek/clk-mux.c +1 -3
@@ -146,9 +146,7 @@ static int mtk_clk_mux_set_parent_setclr_lock(struct clk_hw *hw, u8 index)static int mtk_clk_mux_determine_rate (struct clk_hw *hw,struct clk_rate_request *req) { -struct mtk_clk_mux *mux =to_mtk_clk_mux (hw); - -return clk_mux_determine_rate_flags (hw, req, mux->data->flags); +return clk_mux_determine_rate_flags (hw, req,0 ); }const struct clk_ops mtk_mux_clr_set_upd_ops = {
drivers/clk/nxp/clk-lpc18xx-cgu.c +11 -9
@@ -370,23 +370,25 @@ static unsigned long lpc18xx_pll0_recalc_rate(struct clk_hw *hw,return 0 ; } -static long lpc18xx_pll0_round_rate (struct clk_hw *hw,unsigned long rate, -unsigned long *prate) +static int lpc18xx_pll0_determine_rate (struct clk_hw *hw, +struct clk_rate_request *req) {unsigned long m; -if (*prate < rate) { +if (req->best_parent_rate < req->rate) {pr_warn ("%s: pll dividers not supported\n" , __func__);return -EINVAL ; } - m =DIV_ROUND_UP_ULL (*prate, rate *2 ); -if (m <=0 && m >LPC18XX_PLL0_MSEL_MAX ) { -pr_warn ("%s: unable to support rate %lu\n" , __func__, rate); + m =DIV_ROUND_UP_ULL (req->best_parent_rate, req->rate *2 ); +if (m ==0 || m >LPC18XX_PLL0_MSEL_MAX ) { +pr_warn ("%s: unable to support rate %lu\n" , __func__, req->rate);return -EINVAL ; } -return 2 * *prate * m; + req->rate =2 * req->best_parent_rate * m; + +return 0 ; } static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -402,7 +404,7 @@ static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate, } m =DIV_ROUND_UP_ULL (parent_rate, rate *2 ); -if (m <=0 && m >LPC18XX_PLL0_MSEL_MAX ) { +if (m ==0 || m >LPC18XX_PLL0_MSEL_MAX ) {pr_warn ("%s: unable to support rate %lu\n" , __func__, rate);return -EINVAL ; }
@@ -443,7 +445,7 @@ static int lpc18xx_pll0_set_rate(struct clk_hw *hw, unsigned long rate,static const struct clk_ops lpc18xx_pll0_ops = { .recalc_rate = lpc18xx_pll0_recalc_rate, - .round_rate = lpc18xx_pll0_round_rate, + .determine_rate = lpc18xx_pll0_determine_rate, .set_rate = lpc18xx_pll0_set_rate, };
drivers/clk/qcom/Kconfig +1 -1
@@ -495,7 +495,7 @@ config QCM_DISPCC_2290 config QCS_DISPCC_615 tristate "QCS615 Display Clock Controller" - select QCM_GCC_615 + select QCS_GCC_615 help Support for the display clock controller on Qualcomm Technologies, Inc QCS615 devices.
drivers/clk/qcom/common.c +2 -2
@@ -277,8 +277,8 @@ static int qcom_cc_icc_register(struct device *dev, icd[i].slave_id = desc->icc_hws[i].slave_id; hws = &desc->clks[desc->icc_hws[i].clk_id]->hw; icd[i].clk =devm_clk_hw_get_clk (dev, hws,"icc" ); -if (!icd[i].clk) -return dev_err_probe (dev, -ENOENT , +if (IS_ERR (icd[i].clk)) +return dev_err_probe (dev,PTR_ERR (icd[i].clk),"(%d) clock entry is null\n" , i); icd[i].name =clk_hw_get_name (hws); }
drivers/clk/qcom/tcsrcc-x1e80100.c +4 -0
@@ -29,6 +29,10 @@ static struct clk_branch tcsr_edp_clkref_en = { .enable_mask = BIT(0), .hw.init = &(const struct clk_init_data ) { .name ="tcsr_edp_clkref_en" , + .parent_data = &(const struct clk_parent_data ){ + .index =DT_BI_TCXO_PAD , + }, + .num_parents =1 , .ops = &clk_branch2_ops, }, },
drivers/clk/renesas/r9a08g045-cpg.c +2 -1
@@ -284,7 +284,8 @@ static const struct rzg2l_mod_clk r9a08g045_mod_clks[] = { MSTOP(BUS_MCPU2, BIT(5))),DEF_MOD ("scif5_clk_pck" ,R9A08G045_SCIF5_CLK_PCK ,R9A08G045_CLK_P0 ,0x584 ,5 ,MSTOP (BUS_MCPU3 ,BIT (4 ))), -DEF_MOD ("gpio_hclk" ,R9A08G045_GPIO_HCLK ,R9A08G045_OSCCLK ,0x598 ,0 ,0 ), +DEF_MOD ("gpio_hclk" ,R9A08G045_GPIO_HCLK ,R9A08G045_OSCCLK ,0x598 ,0 , +MSTOP (BUS_PERI_CPU ,BIT (6 ))),DEF_MOD ("adc_adclk" ,R9A08G045_ADC_ADCLK ,R9A08G045_CLK_TSU ,0x5a8 ,0 ,MSTOP (BUS_MCPU2 ,BIT (14 ))), DEF_MOD("adc_pclk", R9A08G045_ADC_PCLK, R9A08G045_CLK_TSU, 0x5a8, 1,
drivers/clk/renesas/renesas-cpg-mssr.c +5 -2
@@ -1082,6 +1082,7 @@ static int __init cpg_mssr_reserved_init(struct cpg_mssr_priv *priv,of_for_each_phandle (&it, rc, node,"clocks" ,"#clock-cells" ,-1 ) {int idx; +unsigned int *new_ids;if (it.node != priv->np)continue ;
@@ -1092,11 +1093,13 @@ static int __init cpg_mssr_reserved_init(struct cpg_mssr_priv *priv,if (args[0 ] !=CPG_MOD )continue ; - ids =krealloc_array (ids, (num +1 ),sizeof (*ids),GFP_KERNEL ); -if (!ids) { + new_ids =krealloc_array (ids, (num +1 ),sizeof (*ids),GFP_KERNEL ); +if (!new_ids) {of_node_put (it.node); +kfree (ids);return -ENOMEM ; } + ids = new_ids;if (priv->reg_layout ==CLK_REG_LAYOUT_RZ_A ) idx =MOD_CLK_PACK_10 (args[1 ]);/* for DEF_MOD_STB() */
drivers/clk/samsung/clk-exynos990.c +32 -20
136 lines not on this page · raw message
drivers/clk/tegra/clk-bpmp.c +1 -1
@@ -635,7 +635,7 @@ static int tegra_bpmp_register_clocks(struct tegra_bpmp *bpmp, bpmp->num_clocks = count; - bpmp->clocks =devm_kcalloc (bpmp->dev, count,sizeof (struct tegra_bpmp_clk ),GFP_KERNEL ); + bpmp->clocks =devm_kcalloc (bpmp->dev, count,sizeof (*bpmp->clocks),GFP_KERNEL );if (!bpmp->clocks)return -ENOMEM ;
drivers/clk/thead/clk-th1520-ap.c +197 -197
190 lines not on this page · raw message
drivers/crypto/aspeed/aspeed-hace-crypto.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/crypto/rockchip/rk3288_crypto_ahash.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/firmware/samsung/exynos-acpm-pmic.c +20 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +7 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +13 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dce_transform.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c +15 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c +16 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn36/dcn36_resource.c +15 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/sspl/dc_spl.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_d.h +7 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos7_drm_decon.c +0 -36
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/adreno/a6xx_gmu.c +17 -11
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +12 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_validation.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_hw_engine_group.c +1 -5
Lines of this file are not shown. View the raw message.
drivers/iio/adc/xilinx-ams.c +26 -21
47 lines not on this page · raw message
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c +13 -26
Lines of this file are not shown. View the raw message.
drivers/media/cec/usb/extron-da-hd-4k-plus/Makefile +0 -6
Lines of this file are not shown. View the raw message.
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_buffer.c +29 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_buffer.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_core.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_firmware.c +6 -9
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c +20 -25
45 lines not on this page · raw message
drivers/media/platform/qcom/iris/iris_hfi_gen1_response.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_state.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_state.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vb2.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vdec.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vidc.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vpu3x.c +30 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/iris/iris_vpu_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/firmware.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/pm_helpers.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/renesas/vsp1/vsp1_vspx.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_cmd_v6.c +13 -22
Lines of this file are not shown. View the raw message.
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-cec.c +5 -7
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +11 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/airoha/airoha_eth.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/airoha/airoha_regs.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fsl_pq_mdio.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_adapter.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +27 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c +21 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +10 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_main.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_vlan.c +0 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mscc/ocelot_stats.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mld/debugfs.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/usb.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/core.c +22 -17
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/core.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw89/pci.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/cadence/pci-j721e.c +26 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-keystone.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-rcar-gen4.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +28 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-rcar-host.c +15 -25
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-xilinx-nwl.c +4 -3
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-samsung.h +0 -4
Lines of this file are not shown. View the raw message.
drivers/power/supply/max77976_charger.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/scsi/sd.c +28 -22
50 lines not on this page · raw message
drivers/staging/media/ipu7/ipu7-isys-video.c +1 -0
Lines of this file are not shown. View the raw message.
fs/attr.c +19 -25
44 lines not on this page · raw message
fs/eventpoll.c +26 -113
139 lines not on this page · raw message
fs/ext4/inode.c +8 -37
45 lines not on this page · raw message
fs/fsopen.c +38 -32
70 lines not on this page · raw message
fs/namespace.c +74 -36
110 lines not on this page · raw message
fs/nfsd/export.c +57 -25
82 lines not on this page · raw message
fs/nfsd/nfs4state.c +23 -21
44 lines not on this page · raw message
fs/smb/client/smb1ops.c +60 -2
62 lines not on this page · raw message
include/asm-generic/io.h +66 -32
98 lines not on this page · raw message
include/linux/pm_runtime.h +31 -25
56 lines not on this page · raw message
kernel/sched/deadline.c +49 -24
73 lines not on this page · raw message
net/core/page_pool.c +53 -23
76 lines not on this page · raw message
net/mptcp/pm_kernel.c +49 -1
50 lines not on this page · raw message
net/xdp/xsk_queue.h +35 -10
45 lines not on this page · raw message
scripts/Makefile.vmlinux +28 -23
51 lines not on this page · raw message
security/keys/trusted-keys/trusted_tpm1.c +4 -3
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json +5 -5
Lines of this file are not shown. View the raw message.
tools/perf/tests/shell/amd-ibs-swfilt.sh +38 -13
51 lines not on this page · raw message
tools/perf/tests/shell/stat+event_uniquifying.sh +49 -60
109 lines not on this page · raw message
tools/perf/tests/shell/trace_btf_enum.sh +11 -0
Lines of this file are not shown. View the raw message.
tools/perf/util/bpf_skel/kwork_top.bpf.c +0 -2
Lines of this file are not shown. View the raw message.
tools/perf/util/evsel.c +27 -15
42 lines not on this page · raw message
tools/perf/util/parse-events.c +60 -56
116 lines not on this page · raw message
tools/power/acpi/tools/acpidump/apfiles.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +11 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/nf_nat_edemux.sh +41 -17
58 lines not on this page · raw message
tools/testing/selftests/net/netfilter/nft_fib.sh +8 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/ovpn/ovpn-cli.c +2 -0
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.