Linux 6.7.3
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.7.3 kernel.
All users of the 6.7 kernel series must upgrade.
The updated 6.7.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.7.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/ABI/testing/sysfs-class-devfreq | 3 Documentation/admin-guide/abi-obsolete.rst | 2 Documentation/admin-guide/abi-removed.rst | 2 Documentation/admin-guide/abi-stable.rst | 2 Documentation/admin-guide/abi-testing.rst | 2 Documentation/arch/arm64/silicon-errata.rst | 2 Documentation/filesystems/directory-locking.rst | 29 Documentation/filesystems/locking.rst | 5 Documentation/filesystems/overlayfs.rst | 16 Documentation/filesystems/porting.rst | 18 Documentation/gpu/drm-kms.rst | 2 Documentation/gpu/todo.rst | 7 Documentation/sphinx/kernel_abi.py | 56 - Makefile | 2 arch/alpha/kernel/rtc.c | 2 arch/arm/boot/dts/nxp/imx/imx6q-apalis-ixora-v1.2.dts | 2 arch/arm/boot/dts/qcom/qcom-sdx55.dtsi | 10 arch/arm/boot/dts/samsung/exynos4210-i9100.dts | 8 arch/arm/boot/dts/samsung/exynos4212-tab3.dtsi | 1 arch/arm64/Kconfig | 18 arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts | 1 arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dts | 1 arch/arm64/boot/dts/qcom/msm8916.dtsi | 1 arch/arm64/boot/dts/qcom/msm8939.dtsi | 1 arch/arm64/boot/dts/qcom/msm8953-xiaomi-mido.dts | 1 arch/arm64/boot/dts/qcom/msm8953-xiaomi-tissot.dts | 1 arch/arm64/boot/dts/qcom/msm8953-xiaomi-vince.dts | 1 arch/arm64/boot/dts/qcom/sc7180.dtsi | 4 arch/arm64/boot/dts/qcom/sc7280.dtsi | 4 arch/arm64/boot/dts/qcom/sc8180x.dtsi | 16 arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 2 arch/arm64/boot/dts/qcom/sdm670.dtsi | 8 arch/arm64/boot/dts/qcom/sdm845.dtsi | 16 arch/arm64/boot/dts/qcom/sm8150.dtsi | 16 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts | 4 arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 1 arch/arm64/boot/dts/sprd/ums512.dtsi | 4 arch/arm64/boot/install.sh | 3 arch/arm64/kernel/cpu_errata.c | 21 arch/arm64/kernel/entry.S | 22 arch/arm64/kernel/fpsimd.c | 6 arch/arm64/tools/cpucaps | 2 arch/loongarch/kernel/smp.c | 1 arch/loongarch/mm/tlb.c | 16 arch/mips/kernel/elf.c | 6 arch/mips/lantiq/prom.c | 7 arch/mips/mm/init.c | 12 arch/parisc/kernel/firmware.c | 4 arch/powerpc/configs/ps3_defconfig | 1 arch/riscv/boot/dts/sophgo/sg2042.dtsi | 80 +- arch/riscv/include/asm/pgtable.h | 2 arch/riscv/include/asm/processor.h | 2 arch/riscv/kernel/module.c | 14 arch/riscv/kernel/pi/cmdline_early.c | 3 arch/s390/crypto/aes_s390.c | 4 arch/s390/crypto/paes_s390.c | 4 arch/sh/boards/mach-ecovec24/setup.c | 2 arch/x86/include/asm/syscall_wrapper.h | 25 arch/x86/kernel/hpet.c | 2 arch/x86/kernel/rtc.c | 2 block/ioctl.c | 2 block/partitions/core.c | 5 crypto/algapi.c | 1 drivers/base/power/main.c | 148 +--- drivers/base/power/trace.c | 2 drivers/block/nbd.c | 6 drivers/block/rbd.c | 22 drivers/bus/mhi/host/main.c | 29 drivers/char/hw_random/core.c | 34 drivers/cpufreq/amd-pstate.c | 7 drivers/cpufreq/intel_pstate.c | 55 - drivers/cxl/core/region.c | 4 drivers/devfreq/devfreq.c | 57 + drivers/dma/dmaengine.c | 3 drivers/dma/fsl-edma-main.c | 8 drivers/dma/idxd/device.c | 9 drivers/dma/xilinx/xdma.c | 6 drivers/dpll/dpll_core.c | 68 + drivers/dpll/dpll_core.h | 4 drivers/dpll/dpll_netlink.c | 57 + drivers/firmware/arm_ffa/driver.c | 12 drivers/firmware/arm_scmi/clock.c | 3 drivers/firmware/arm_scmi/common.h | 1 drivers/firmware/arm_scmi/mailbox.c | 14 drivers/firmware/arm_scmi/perf.c | 23 drivers/firmware/arm_scmi/raw_mode.c | 12 drivers/firmware/arm_scmi/shmem.c | 6 drivers/firmware/sysfb.c | 2 drivers/gpio/gpio-eic-sprd.c | 32 drivers/gpio/gpiolib-acpi.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 10 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 17 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 20 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 10 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 3 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c | 1 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 6 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 drivers/gpu/drm/amd/display/dc/bios/command_table2.c | 12 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c | 23 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/core/dc.c | 16 drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c | 2 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 19 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 176 ++++ drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h | 59 + drivers/gpu/drm/amd/display/dc/dc_helper.c | 6 drivers/gpu/drm/amd/display/dc/dce/dmub_abm_lcd.c | 14 drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c | 2 drivers/gpu/drm/amd/display/dc/dce/dmub_outbox.c | 2 drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 33 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 16 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.h | 1 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c | 2 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 4 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_panel_cntl.c | 4 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c | 17 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 1 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c | 1 drivers/gpu/drm/amd/display/dc/dcn35/dcn35_optc.c | 10 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 6 drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c | 30 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 2 drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c | 4 drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 8 drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 4 drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 6 drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 8 drivers/gpu/drm/amd/display/dc/inc/core_types.h | 1 drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 8 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c | 2 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c | 3 drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c | 4 drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c | 11 drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 21 drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 15 drivers/gpu/drm/amd/display/modules/power/power_helpers.c | 2 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 14 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 2 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 54 + drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 15 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 54 + drivers/gpu/drm/bridge/analogix/anx7625.c | 7 drivers/gpu/drm/bridge/analogix/anx7625.h | 2 drivers/gpu/drm/bridge/nxp-ptn3460.c | 6 drivers/gpu/drm/bridge/parade-ps8640.c | 23 drivers/gpu/drm/bridge/samsung-dsim.c | 32 drivers/gpu/drm/bridge/sii902x.c | 42 - drivers/gpu/drm/drm_damage_helper.c | 3 drivers/gpu/drm/drm_plane.c | 14 drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 drivers/gpu/drm/i915/display/icl_dsi.c | 3 drivers/gpu/drm/i915/display/intel_psr.c | 14 drivers/gpu/drm/nouveau/nouveau_fence.c | 28 drivers/gpu/drm/nouveau/nouveau_fence.h | 5 drivers/gpu/drm/nouveau/nouveau_vmm.c | 3 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c | 4 drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c | 2 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c | 8 drivers/gpu/drm/panel/Kconfig | 2 drivers/gpu/drm/panel/panel-edp.c | 7 drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 2 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/qxl/qxl_drv.c | 2 drivers/gpu/drm/tidss/tidss_crtc.c | 10 drivers/gpu/drm/vboxvideo/vbox_drv.c | 2 drivers/gpu/drm/virtio/virtgpu_drv.c | 2 drivers/gpu/drm/virtio/virtgpu_plane.c | 10 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 drivers/iio/adc/ad7091r-base.c | 169 ++++ drivers/iio/adc/ad7091r-base.h | 8 drivers/iio/adc/ad7091r5.c | 28 drivers/media/common/videobuf2/videobuf2-dma-sg.c | 10 drivers/media/i2c/imx290.c | 42 - drivers/media/i2c/imx355.c | 12 drivers/media/i2c/ov01a10.c | 18 drivers/media/i2c/ov13b10.c | 14 drivers/media/i2c/ov9734.c | 19 drivers/media/i2c/st-mipid02.c | 9 drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c | 12 drivers/media/v4l2-core/v4l2-cci.c | 52 + drivers/mmc/core/block.c | 46 + drivers/mmc/host/mmc_spi.c | 186 ----- drivers/mtd/maps/vmu-flash.c | 2 drivers/mtd/nand/raw/nand_base.c | 87 ++ drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 drivers/net/ethernet/engleder/tsnep_main.c | 17 drivers/net/ethernet/freescale/fec_main.c | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 47 - drivers/net/ethernet/intel/i40e/i40e_txrx.c | 49 - drivers/net/ethernet/intel/i40e/i40e_xsk.c | 4 drivers/net/ethernet/intel/ice/ice_base.c | 37 - drivers/net/ethernet/intel/ice/ice_txrx.c | 19 drivers/net/ethernet/intel/ice/ice_txrx.h | 1 drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 31 drivers/net/ethernet/intel/ice/ice_xsk.c | 4 drivers/net/ethernet/intel/idpf/idpf_lib.c | 2 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 27 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 5 drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c | 1 drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 4 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 10 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 26 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 5 drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c | 3 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 2 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 2 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c | 17 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 drivers/net/fjes/fjes_hw.c | 37 - drivers/net/hyperv/netvsc_drv.c | 4 drivers/net/phy/micrel.c | 11 drivers/net/tun.c | 10 drivers/net/wireless/ath/ath11k/core.h | 4 drivers/net/wireless/ath/ath11k/debugfs.c | 25 drivers/net/wireless/ath/ath11k/debugfs.h | 12 drivers/net/wireless/ath/ath11k/mac.c | 12 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 4 drivers/opp/core.c | 6 drivers/parisc/power.c | 2 drivers/platform/mellanox/mlxbf-pmc.c | 4 drivers/platform/x86/intel/ifs/load.c | 3 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c | 82 +- drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h | 32 drivers/platform/x86/p2sb.c | 180 +++-- drivers/platform/x86/wmi.c | 16 drivers/rpmsg/virtio_rpmsg_bus.c | 1 drivers/rtc/rtc-cmos.c | 28 drivers/rtc/rtc-mc146818-lib.c | 39 - drivers/s390/crypto/vfio_ap_ops.c | 269 +++++-- drivers/s390/crypto/vfio_ap_private.h | 3 drivers/scsi/scsi_error.c | 9 drivers/soc/fsl/qe/qmc.c | 35 drivers/soc/fsl/qe/tsa.c | 22 drivers/soc/qcom/pmic_glink_altmode.c | 4 drivers/soundwire/amd_manager.c | 8 drivers/soundwire/bus.c | 4 drivers/soundwire/debugfs.c | 2 drivers/soundwire/intel_auxdevice.c | 3 drivers/soundwire/master.c | 2 drivers/soundwire/qcom.c | 3 drivers/soundwire/slave.c | 12 drivers/spi/spi-bcm-qspi.c | 4 drivers/spi/spi-cadence.c | 17 drivers/spi/spi-intel-pci.c | 1 drivers/spi/spi.c | 4 drivers/thermal/gov_power_allocator.c | 2 drivers/thermal/intel/intel_hfi.c | 106 ++- drivers/tty/serial/sc16is7xx.c | 353 +++++----- drivers/ufs/core/ufshcd.c | 7 fs/afs/addr_list.c | 133 +-- fs/afs/cmservice.c | 5 fs/afs/dir.c | 70 + fs/afs/dir_silly.c | 2 fs/afs/file.c | 7 fs/afs/fs_operation.c | 54 - fs/afs/fs_probe.c | 11 fs/afs/fsclient.c | 8 fs/afs/inode.c | 2 fs/afs/internal.h | 88 +- fs/afs/misc.c | 10 fs/afs/proc.c | 9 fs/afs/rotate.c | 224 ++++-- fs/afs/rxrpc.c | 100 +- fs/afs/server.c | 53 - fs/afs/vl_alias.c | 57 - fs/afs/vl_list.c | 15 fs/afs/vl_probe.c | 19 fs/afs/vl_rotate.c | 98 +- fs/afs/vlclient.c | 98 +- fs/afs/write.c | 6 fs/btrfs/extent-tree.c | 53 + fs/btrfs/inode.c | 22 fs/btrfs/ioctl.c | 7 fs/btrfs/ref-verify.c | 6 fs/btrfs/scrub.c | 29 fs/btrfs/sysfs.c | 4 fs/btrfs/tree-checker.c | 2 fs/btrfs/zoned.c | 8 fs/dlm/lowcomms.c | 14 fs/erofs/decompressor.c | 31 fs/exec.c | 3 fs/ext4/mballoc.c | 15 fs/fscache/cache.c | 3 fs/ioctl.c | 3 fs/namei.c | 60 + fs/nfsd/nfs4state.c | 26 fs/overlayfs/namei.c | 43 - fs/overlayfs/overlayfs.h | 23 fs/overlayfs/ovl_entry.h | 4 fs/overlayfs/readdir.c | 7 fs/overlayfs/super.c | 15 fs/overlayfs/util.c | 53 - fs/pipe.c | 7 fs/proc/task_mmu.c | 24 fs/smb/client/smb2ops.c | 10 fs/smb/client/smb2pdu.c | 108 +-- fs/smb/server/connection.c | 1 fs/smb/server/ksmbd_netlink.h | 3 fs/smb/server/oplock.c | 16 fs/smb/server/smb2pdu.c | 8 fs/smb/server/transport_ipc.c | 4 fs/ubifs/dir.c | 2 fs/xfs/xfs_super.c | 27 include/drm/drm_drv.h | 9 include/drm/drm_file.h | 12 include/drm/drm_plane.h | 10 include/linux/async.h | 2 include/linux/lsm_hook_defs.h | 2 include/linux/mc146818rtc.h | 3 include/linux/mlx5/fs.h | 1 include/linux/mlx5/mlx5_ifc.h | 2 include/linux/mmzone.h | 14 include/linux/mtd/rawnand.h | 2 include/linux/rmap.h | 4 include/linux/security.h | 9 include/linux/seq_buf.h | 3 include/linux/skmsg.h | 6 include/linux/soundwire/sdw.h | 4 include/linux/syscalls.h | 1 include/media/v4l2-cci.h | 11 include/net/af_rxrpc.h | 15 include/net/inet_connection_sock.h | 8 include/net/inet_sock.h | 5 include/net/llc_pdu.h | 6 include/net/sch_generic.h | 4 include/net/sock.h | 18 include/net/xdp_sock_drv.h | 27 include/trace/events/afs.h | 25 include/trace/events/rxrpc.h | 3 include/uapi/linux/btrfs.h | 3 kernel/async.c | 85 +- kernel/crash_core.c | 14 kernel/futex/core.c | 15 kernel/futex/pi.c | 11 kernel/irq/irqdesc.c | 2 kernel/kexec_core.c | 1 kernel/power/swap.c | 38 - kernel/rcu/tree.c | 34 kernel/rcu/tree_exp.h | 3 kernel/time/clocksource.c | 25 kernel/time/tick-sched.c | 5 kernel/trace/tracing_map.c | 7 lib/crypto/mpi/ec.c | 3 mm/memblock.c | 3 mm/migrate.c | 27 mm/mm_init.c | 6 mm/page_alloc.c | 16 mm/sparse.c | 17 net/8021q/vlan_netlink.c | 4 net/core/dev.c | 9 net/core/dev.h | 3 net/core/filter.c | 44 + net/core/request_sock.c | 3 net/core/sock.c | 11 net/ipv4/af_inet.c | 3 net/ipv4/inet_connection_sock.c | 4 net/ipv4/tcp.c | 1 net/ipv6/af_inet6.c | 3 net/llc/af_llc.c | 24 net/llc/llc_core.c | 7 net/mac80211/sta_info.c | 5 net/netfilter/nf_tables_api.c | 20 net/netfilter/nft_chain_filter.c | 11 net/netfilter/nft_compat.c | 12 net/netfilter/nft_flow_offload.c | 5 net/netfilter/nft_limit.c | 23 net/netfilter/nft_nat.c | 5 net/netfilter/nft_rt.c | 5 net/netfilter/nft_socket.c | 5 net/netfilter/nft_synproxy.c | 7 net/netfilter/nft_tproxy.c | 5 net/netfilter/nft_xfrm.c | 5 net/netlink/af_netlink.c | 2 net/rds/af_rds.c | 2 net/rxrpc/af_rxrpc.c | 62 + net/rxrpc/ar-internal.h | 2 net/rxrpc/call_object.c | 17 net/rxrpc/peer_object.c | 58 + net/rxrpc/sendmsg.c | 11 net/sched/cls_api.c | 9 net/sched/cls_flower.c | 23 net/smc/smc_diag.c | 2 net/sunrpc/svcsock.c | 4 net/xdp/xsk.c | 12 net/xdp/xsk_buff_pool.c | 1 scripts/get_abi.pl | 2 security/security.c | 18 security/selinux/hooks.c | 28 security/smack/smack_lsm.c | 1 security/tomoyo/tomoyo.c | 1 sound/soc/intel/boards/sof_sdw.c | 4 tools/testing/selftests/drivers/net/bonding/bond_options.sh | 8 tools/testing/selftests/drivers/net/bonding/settings | 2 tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh | 9 tools/testing/selftests/mm/hugepage-vmemmap.c | 29 tools/testing/selftests/net/config | 28 tools/testing/selftests/net/rps_default_mask.sh | 6 tools/testing/selftests/net/so_incoming_cpu.c | 68 + tools/testing/selftests/riscv/hwprobe/cbo.c | 18 414 files changed, 4902 insertions(+), 2617 deletions(-)
Al Viro (1):
rename(): fix the locking of subdirectories
Alain Volmat (1):
media: i2c: st-mipid02: correct format propagation
Aleksander Jan Bajkowski (1):
MIPS: lantiq: register smp_ops on non-smp platforms
Alex Deucher (3):
drm/amdgpu: drop exp hw support check for GC 9.4.3 drm/amdgpu/gfx10: set UNORD_DISPATCH in compute MQDs drm/amdgpu/gfx11: set UNORD_DISPATCH in compute MQDs
Alexander Stein (2):
media: v4l2-cci: Add support for little-endian encoded registers
media: i2c: imx290: Properly encode registers as little-endian
Alfred Piccioni (1):
lsm: new security_file_ioctl_compat() hook
Amelie Delaunay (1):
dmaengine: fix NULL pointer in channel unregistration function
Amir Goldstein (1):
ovl: mark xwhiteouts directory with overlay.opaque='x'
Amit Kumar Mahapatra (1):
spi: spi-cadence: Reverse the order of interleaved write and read operations
Andrejs Cainikovs (1):
ARM: dts: imx6q-apalis: add can power-up delay on ixora board
Andrew Jones (1):
RISC-V: selftests: cbo: Ensure asm operands match constraints
Andy Shevchenko (1):
mmc: mmc_spi: remove custom DMA mapped buffers
Anthony Krowiak (1):
s390/vfio-ap: unpin pages on gisc registration failure
Arkadiusz Kubalewski (4):
dpll: fix broken error path in dpll_pin_alloc(..)
dpll: fix pin dump crash for rebound module
dpll: fix userspace availability of pins
dpll: fix register pin with unregistered parent pin
Armin Wolf (1):
platform/x86: wmi: Fix error handling in legacy WMI notify handler functions
Arnd Bergmann (2):
drm/panel/raydium-rm692e5: select CONFIG_DRM_DISPLAY_DP_HELPER drm/exynos: fix accidental on-stack copy of exynos_drm_plane
Artur Weber (2):
drm/panel: samsung-s6d7aa0: drop DRM_BUS_FLAG_DE_HIGH for lsl080al02
ARM: dts: exynos4212-tab3: add samsung,invert-vclk flag to fimd
Aurabindo Pillai (1):
drm/amd/display: Fix a debugfs null pointer error
Avri Altman (1):
mmc: core: Use mrq.sbc in close-ended ffu
Baolin Wang (1):
mm: migrate: fix getting incorrect page mapping during page migration
Bart Van Assche (1):
scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
Benjamin Berg (1):
wifi: ath11k: rely on mac80211 debugfs handling for vif
Benjamin Poirier (1):
selftests: bonding: Increase timeout to 1200s
Bernd Edlinger (2):
net: stmmac: Wait a bit for the reset to take effect
exec: Fix error handling in begin_new_exec()
Bhaumik Bhatt (1):
bus: mhi: host: Add spinlock to protect WP access when queueing TREs
Bingbu Cao (4):
media: imx355: Enable runtime PM before registering async sub-device
media: ov9734: Enable runtime PM before registering async sub-device
media: ov13b10: Enable runtime PM before registering async sub-device
media: ov01a10: Enable runtime PM before registering async sub-device
Charan Teja Kalla (2):
mm/sparsemem: fix race in accessing memory_section->usage
mm: page_alloc: unreserve highatomic page blocks before oom
Charlene Liu (1):
drm/amd/display: Add logging resource checks
Charlie Jenkins (3):
riscv: Fix module loading free order
riscv: Correctly free relocation hashtable on error
riscv: Fix relocation_hashtable size
Christian Marangi (1):
PM / devfreq: Fix buffer overflow in trans_stat_show
Christophe JAILLET (2):
riscv: Fix an off-by-one in get_early_cmdline()
drm/amd/display: Fix a switch statement in populate_dml_output_cfg_from_stream_state()
Chung-Chiang Cheng (1):
btrfs: tree-checker: fix inline ref size in error messages
Cixi Geng (1):
arm64: dts: sprd: fix the cpu node for UMS512
Cristian Marussi (7):
firmware: arm_scmi: Check mailbox/SMT channel for consistency
firmware: arm_scmi: Use xa_insert() to store opps
firmware: arm_scmi: Use xa_insert() when saving raw queues
firmware: arm_scmi: Fix the clock protocol version for v3.2
firmware: arm_ffa: Add missing rwlock_init() in ffa_setup_partitions()
firmware: arm_ffa: Add missing rwlock_init() for the driver partition
firmware: arm_ffa: Check xa_load() return value
Dan Carpenter (3):
netfs, fscache: Prevent Oops in fscache_put_cache() drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm/bridge: nxp-ptn3460: simplify some error checking
Dave Airlie (3):
nouveau/vmm: don't set addr on the fail path to avoid warning nouveau/gsp: handle engines in runl without nonstall interrupts. Revert "nouveau: push event block/allowing out of the fence context"
Dave Chinner (1):
xfs: read only mounts with fsopen mount API are busted
David Disseldorp (1):
btrfs: sysfs: validate scrub_speed_max value
David Howells (10):
afs: Hide silly-rename files from userspace
afs: Add comments on abort handling
afs: Turn the afs_addr_list address array into an array of structs rxrpc, afs: Allow afs to pin rxrpc_peer objects
afs: Handle the VIO and UAEIO aborts explicitly
afs: Use op->nr_iterations=-1 to indicate to begin fileserver iteration
afs: Wrap most op->error accesses with inline funcs
afs: Don't put afs_call in afs_wait_for_call_to_complete()
afs: Simplify error handling
afs: Fix error handling with lookup via FS.InlineBulkStatus
David Lechner (1):
spi: fix finalize message on error return
David Sterba (1):
btrfs: don't warn if discard range is not aligned to sector
Dawei Li (1):
genirq: Initialize resend_node hlist for all interrupt descriptors
Di Shen (1):
thermal: gov_power_allocator: avoid inability to reset a cdev
Dillon Varone (1):
drm/amd/display: Init link enc resources in dc_state only if res_pool presents
Dinghao Liu (1):
net/mlx5e: fix a potential double-free in fs_any_create_groups
Donet Tom (1):
selftests: mm: hugepage-vmemmap fails on 64K page size systems
Douglas Anderson (2):
drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case
Emmanuel Grumbach (1):
wifi: iwlwifi: fix a memory corruption
Eric Dumazet (3):
nbd: always initialize struct msghdr completely
llc: make llc_ui_sendmsg() more robust against bonding changes
udp: fix busy polling
Fedor Pchelkin (2):
btrfs: ref-verify: free ref cache before clearing mount opt drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
Florian Westphal (3):
netfilter: nft_limit: reject configurations that cause integer overflow
netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
netfilter: nf_tables: reject QUEUE/DROP verdict parameters
Frank Li (1):
dmaengine: fsl-edma: fix eDMAv4 channel allocation issue
Frederic Weisbecker (1):
rcu: Defer RCU kthreads wakeup when CPU is dying
Friedrich Vock (1):
drm/amdgpu: Enable tunneling on high-priority compute queues
Gao Xiang (1):
erofs: fix lz4 inplace decompression
Geert Uytterhoeven (1):
sh: ecovec24: Rename missed backlight field from fbdev to dev
Geoff Levand (1):
powerpc/ps3_defconfig: Disable PPC64_BIG_ENDIAN_ELF_ABI_V2
George Shen (1):
drm/amd/display: Disconnect phantom pipe OPP from OPTC being disabled
Gerhard Engleder (2):
tsnep: Remove FCS for XDP data path
tsnep: Fix XDP_RING_NEED_WAKEUP for empty fill ring
Greg Kroah-Hartman (1):
Linux 6.7.3
Guo Ren (2):
riscv: mm: Fixup compat arch_get_mmap_end
riscv: mm: Fixup compat mode boot failure
Hangbin Liu (1):
selftests: bonding: do not test arp/ns target with mode balance-alb/tlb
Helge Deller (2):
parisc/firmware: Fix F-extend for PDC addresses parisc/power: Fix power soft-off button emulation on qemu
Herbert Xu (3):
crypto: api - Disallow identical driver names
hwrng: core - Fix page fault dead lock on mmap-ed hwrng
crypto: s390/aes - Fix buffer overread in CTR mode
Herve Codina (3):
soc: fsl: cpm1: tsa: Fix __iomem addresses declaration
soc: fsl: cpm1: qmc: Fix __iomem addresses declaration
soc: fsl: cpm1: qmc: Fix rx channel reset
Hongchen Zhang (1):
PM: hibernate: Enforce ordering during image compression/decompression
Horatiu Vultur (1):
net: micrel: Fix PTP frame parsing for lan8814
Hsin-Yi Wang (3):
drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing drm/panel-edp: drm/panel-edp: Fix AUO B116XTN02 name drm/bridge: anx7625: Ensure bridge is suspended in disable()
Huacai Chen (2):
kdump: defer the insertion of crashkernel resources LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init()
Hugo Villeneuve (10):
serial: sc16is7xx: improve regmap debugfs by using one regmap per port
serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name()
serial: sc16is7xx: remove global regmap from struct sc16is7xx_port
serial: sc16is7xx: remove unused line structure member
serial: sc16is7xx: change EFR lock to operate on each channels
serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO
serial: sc16is7xx: fix unconditional activation of THRI interrupt
serial: sc16is7xx: fix invalid sc16is7xx_lines bitfield in case of probe error
serial: sc16is7xx: remove obsolete loop in sc16is7xx_port_irq()
serial: sc16is7xx: improve do/while loop in sc16is7xx_irq()
Ido Schimmel (1):
net/sched: flower: Fix chain template offload
Ilya Bakoulin (2):
drm/amd/display: Fix hang/underflow when transitioning to ODM4:1 drm/amd/display: Clear OPTC mem select on disable
Ilya Dryomov (1):
rbd: don't move requests to the running list on errors
Inochi Amaoto (1):
riscv: dts: sophgo: separate sg2042 mtime and mtimecmp to fit aclint format
Ivan Lipski (1):
Revert "drm/amd/display: fix bandwidth validation failure on DCN 2.1"
Jakub Kicinski (4):
net: fix removing a namespace with conflicting altnames
selftests: fill in some missing configs for net
selftests: net: fix rps_default_mask with >32 CPUs
selftests: netdevsim: fix the udp_tunnel_nic test
James Gowans (1):
kexec: do syscore_shutdown() in kernel_kexec
Javier Martinez Canillas (2):
drm/virtio: Disable damage clipping if FB changed since last page-flip
drm: Allow drivers to indicate the damage helpers to ignore damage clips
Jenishkumar Maheshbhai Patel (1):
net: mvpp2: clear BM pool before initialization
Jiri Wiesner (1):
clocksource: Skip watchdog check for large watchdog intervals
Jithu Joseph (1):
platform/x86/intel/ifs: Call release_firmware() when handling errors.
Johan Hovold (20):
soc: qcom: pmic_glink_altmode: fix port sanity check
arm64: dts: qcom: sc8280xp-crd: fix eDP phy compatible
ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells'
arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
arm64: dts: qcom: sdm670: fix USB wakeup interrupt types
arm64: dts: qcom: sm8150: fix USB wakeup interrupt types
arm64: dts: qcom: sc8180x: fix USB wakeup interrupt types
arm64: dts: qcom: sc7280: fix usb_1 wakeup interrupt types
ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sdm845: fix USB SS wakeup
arm64: dts: qcom: sm8150: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sm8150: fix USB SS wakeup
arm64: dts: qcom: sc8180x: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sc8180x: fix USB SS wakeup
arm64: dts: qcom: sdm670: fix USB DP/DM HS PHY interrupts
arm64: dts: qcom: sdm670: fix USB SS wakeup
ARM: dts: qcom: sdx55: fix USB SS wakeup
Johannes Berg (1):
wifi: mac80211: fix potential sta-link leak
Jonathan Gray (1):
Revert "drm/amd: Enable PCIe PME from D3"
Jordan Rife (1):
dlm: use kernel_connect() and kernel_bind()
Josef Bacik (1):
arm64: properly install vmlinuz.efi
Kamal Dasu (1):
spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
Kenneth Feng (1):
drm/amd/pm: update the power cap setting
Krishna chaitanya chundru (1):
bus: mhi: host: Add alignment check for event ring read pointer
Krzysztof Kozlowski (1):
soundwire: fix initializing sysfs for same devices on different buses
Kuniyuki Iwashima (2):
llc: Drop support for ETH_P_TR_802_2.
selftest: Don't reuse port for SO_INCOMING_CPU test.
Leon Romanovsky (2):
net/mlx5e: Allow software parsing when IPsec crypto is enabled net/mlx5e: Ignore IPsec replay window values on sender side
Li Lingfeng (1):
block: Move checking GENHD_FL_NO_PART to bdev_add_partition()
Lijo Lazar (5):
drm/amd/pm: Fix smuv13.0.6 current clock reporting drm/amd/pm: Add error log for smu v13.0.6 reset drm/amd/pm: Fetch current power limit from FW drm/amdgpu: Avoid fetching vram vendor information drm/amdgpu: Show vram vendor only if available
Likun Gao (1):
drm/amdgpu: correct the cu count for gfx v11
Lin Ma (2):
vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
ksmbd: fix global oob in ksmbd_nl_policy
Lucas Stach (1):
SUNRPC: use request size to initialize bio_vec in svc_udp_sendto()
Lukas Schauer (1):
pipe: wakeup wr_wait after setting max_usage
Ma Jun (2):
drm/amdgpu: Fix the null pointer when load rlc firmware drm/amdgpu/pm: Fix the power source flag error
Ma Wupeng (1):
efi: disable mirror feature during crashkernel
Maciej Fijalkowski (10):
xsk: recycle buffer in case Rx queue was full
xsk: make xsk_buff_pool responsible for clearing xdp_buff::flags
xsk: fix usage of multi-buffer BPF helpers for ZC XDP
ice: work on pre-XDP prog frag count
ice: remove redundant xdp_rxq_info registration
intel: xsk: initialize skb_frag_t::bv_offset in ZC drivers
ice: update xdp_rxq_info::frag_size for ZC enabled Rx queue
xdp: reflect tail increase for MEM_TYPE_XSK_BUFF_POOL
i40e: set xdp_rxq_info::frag_size
i40e: update xdp_rxq_info::frag_size for ZC enabled Rx queue
Marcelo Schmitt (3):
iio: adc: ad7091r: Set alert bit in config register
iio: adc: ad7091r: Allow users to configure device events
iio: adc: ad7091r: Enable internal vref if external vref is not supplied
Mario Limonciello (8):
rtc: cmos: Use ACPI alarm for non-Intel x86 systems too
rtc: Adjust failure return code for cmos_set_alarm()
rtc: mc146818-lib: Adjust failure return code for mc146818_get_time()
rtc: Add support for configuring the UIP timeout for RTC reads
rtc: Extend timeout for waiting for UIP to clear to 1s
gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 drm/amd/display: Disable PSR-SU on Parade 0803 TCON again cpufreq/amd-pstate: Fix setting scaling max/min freq values
Mark Brown (1):
arm64/sme: Always exit sme_alloc() early with existing storage
Mark Rutland (1):
arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
Markus Niebel (1):
drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]
Melissa Wen (1):
drm/amd/display: fix bandwidth validation failure on DCN 2.1
Michael Chan (2):
bnxt_en: Wait for FLR to complete during probe
bnxt_en: Prevent kernel warning when running offline self test
Michael Grzeschik (1):
media: videobuf2-dma-sg: fix vmap callback
Michael Kelley (1):
hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes
Michael Walle (1):
drm: bridge: samsung-dsim: Don't use FORCE_STOP_STATE
Michal Schmidt (1):
idpf: distinguish vports by the dev_port attribute
Mika Westerberg (1):
spi: intel-pci: Remove Meteor Lake-S SoC PCI ID from the list
Miquel Raynal (6):
mtd: maps: vmu-flash: Fix the (mtd core) switch to ref counters
mtd: rawnand: Prevent crossing LUN boundaries during sequential reads
mtd: rawnand: Fix core interference with sequential reads
mtd: rawnand: Prevent sequential reads with on-die ECC engines
mtd: rawnand: Clarify conditions to enable continuous reads
dmaengine: xilinx: xdma: Fix the count of elapsed periods in cyclic mode
Moshe Shemesh (1):
net/mlx5: Bridge, fix multicast packets sent to uplink
Muhammad Usama Anjum (1):
fs/proc/task_mmu: move mmu notification mechanism inside mm lock
Namjae Jeon (5):
ksmbd: set v2 lease version on lease upgrade
ksmbd: fix potential circular locking issue in smb2_set_ea()
ksmbd: don't increment epoch if current state and request state are same
ksmbd: send lease break notification on FILE_RENAME_INFORMATION
ksmbd: Add missing set_freezable() for freezable kthread
Naohiro Aota (3):
btrfs: zoned: fix lock ordering in btrfs_zone_activate()
btrfs: zoned: factor out prepare_allocation_zoned()
btrfs: zoned: optimize hint byte for zoned allocator
Nathan Chancellor (1):
platform/x86: intel-uncore-freq: Fix types in sysfs callbacks
Nathan Lynch (1):
seq_buf: Make DECLARE_SEQ_BUF() usable
NeilBrown (1):
nfsd: fix RELEASE_LOCKOWNER
Nicholas Kazlauskas (4):
drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A drm/amd/display: Refactor DMCUB enter/exit idle interface drm/amd/display: Wake DMCUB before sending a command drm/amd/display: Wake DMCUB before executing GPINT commands
Niklas Cassel (1):
scsi: core: Kick the requeue list after inserting when flushing
Oleg Nesterov (1):
afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*()
Omar Sandoval (2):
btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
Ori Messinger (1):
drm/amdgpu: Enable GFXOFF for Compute on GFX11
Ovidiu Bunea (1):
drm/amd/display: Fix DML2 watermark calculation
Pablo Neira Ayuso (2):
netfilter: nf_tables: validate NFPROTO_* family
netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
Paul Cercueil (1):
ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
Paulo Alcantara (1):
smb: client: fix parsing of SMB3.1.1 POSIX create context
Petr Pavlu (1):
tracing: Ensure visibility when inserting an element into tracing_map
Pierre-Louis Bossart (1):
soundwire: bus: introduce controller_id
Pin-yen Lin (1):
drm/bridge: parade-ps8640: Ensure bridge is suspended in .post_disable()
Qiang Yu (1):
bus: mhi: host: Drop chan lock before queuing buffers
Qu Wenruo (2):
btrfs: scrub: avoid use-after-free when chunk length is not 64K aligned
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
Quanquan Cao (1):
cxl/region:Fix overflow issue in alloc_hpa()
Rafael J. Wysocki (4):
async: Split async_schedule_node_domain()
async: Introduce async_schedule_dev_nocall()
PM: sleep: Fix possible deadlocks in core system-wide PM code
cpufreq: intel_pstate: Refine computation of P-state for given frequency
Rahul Rameshbabu (2):
net/mlx5e: Fix operation precedence bug in port timestamping napi_poll context net/mlx5: Use mlx5 device constant for selecting CQ period mode for ASO
Rex Zhang (1):
dmaengine: idxd: Move dma_free_coherent() out of spinlocked context
Ricardo Neri (3):
thermal: intel: hfi: Refactor enabling code into helper functions
thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline
thermal: intel: hfi: Add syscore callbacks for system-wide PM
Richard Palethorpe (1):
x86/entry/ia32: Ensure s32 is sign extended to s64
Rob Herring (2):
arm64: Rename ARM64_WORKAROUND_2966298
arm64: errata: Add Cortex-A510 speculative unprivileged load workaround
Sakari Ailus (2):
media: v4l: cci: Include linux/bits.h
media: v4l: cci: Add macros to obtain register width and address
Salvatore Dipietro (1):
tcp: Add memory barrier to tcp_push()
Sam Edwards (1):
arm64: dts: rockchip: Fix rk3588 USB power-domain clocks
Samson Tam (1):
drm/amd/display: do not send commands to DMUB if DMUB is inactive from S3
Sebastian Andrzej Siewior (1):
futex: Prevent the reuse of stale pi_state
Serge Semin (1):
mips: Fix max_mapnr being uninitialized on early stages
Sharath Srinivasan (1):
net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
Sheng-Liang Pan (1):
drm/panel-edp: Add AUO B116XTN02, BOE NT116WHM-N21,836X2, NV116WHM-N49 V8.0
Shenwei Wang (1):
net: fec: fix the unhandled context fault from smmu
Shin'ichiro Kawasaki (1):
platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe
Shravan Kumar Ramani (1):
platform/mellanox: mlxbf-pmc: Fix offset calculation for crspace events
Shyam Prasad N (3):
cifs: handle servers that still advertise multichannel after disabling
cifs: update iface_last_update on each query-and-update
cifs: fix stray unlock in cifs_chan_skip_or_disable
Srinivasan Shanmugam (3):
drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay() drm/amd/display: Fix late derefrence 'dsc' check in 'link_set_dsc_pps_packet()' drm/amd/display: Fix uninitialized variable usage in core_link_ 'read_dpcd() & write_dpcd()' functions
Stephan Gerhold (3):
arm64: dts: qcom: msm8916: Make blsp_dma controlled-remotely
arm64: dts: qcom: msm8939: Make blsp_dma controlled-remotely
arm64: dts: qcom: Add missing vio-supply for AW2013
Steven Rostedt (Google) (1):
mm/rmap: fix misplaced parenthesis of a likely()
Suraj Jitindar Singh (1):
ext4: allow for the last group to be marked as trimmed
Taimur Hassan (1):
drm/amd/display: Fix conversions between bytes and KB
Tariq Toukan (1):
net/mlx5e: Fix inconsistent hairpin RQT sizes
Thomas Zimmermann (2):
Revert "drivers/firmware: Move sysfb_init() from device_initcall to subsys_initcall_sync"
drm: Fix TODO list mentioning non-KMS drivers
Tianjia Zhang (1):
crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
Tianling Shen (1):
arm64: dts: rockchip: configure eth pad driver strength for orangepi r1 plus lts
Tim Chen (1):
tick/sched: Preserve number of idle sleeps across CPU hotplug events
Tirthendu Sarkar (1):
i40e: handle multi-buffer packets that are shrunk by xdp prog
Tom St Denis (1):
drm/amd/amdgpu: Assign GART pages to AMD device mapping
Tomi Valkeinen (3):
drm/tidss: Fix atomic_flush check drm/bridge: sii902x: Fix probing race issue drm/bridge: sii902x: Fix audio codec unregistration
Tony Krowiak (6):
s390/vfio-ap: always filter entire AP matrix
s390/vfio-ap: loop over the shadow APCB when filtering guest's AP configuration s390/vfio-ap: let on_scan_complete() callback filter matrix and update guest's APCB s390/vfio-ap: reset queues filtered from the guest's AP config s390/vfio-ap: reset queues associated with adapter for queue unbound from driver s390/vfio-ap: do not reset queue removed from host config
Vegard Nossum (2):
docs: kernel_abi.py: fix command injection
scripts/get_abi: fix source path leak
Ville Syrjälä (3):
Revert "drm/i915/dsi: Do display on sequence later on icl+"
drm: Don't unref the same fb many times by mistake due to deadlock handling drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT
Viresh Kumar (1):
OPP: Pass rounded rate to _set_opp()
Vlad Buslov (1):
net/mlx5e: Fix peer flow lists handling
Wayne Lin (1):
drm/amd/display: Align the returned error code with legacy DP
Wen Gu (1):
net/smc: fix illegal rmb_desc access in SMC-D connection dump
Wenhua Lin (1):
gpio: eic-sprd: Clear interrupt after set the interrupt type
Wenjing Liu (1):
drm/amd/display: update pixel clock params after stream slice count change in context
Xi Ruoyao (1):
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
Xiaolei Wang (1):
rpmsg: virtio: Free driver_override when rpmsg_remove()
Yajun Deng (1):
memblock: fix crash when reserved memory is not added to memory
Yevgeny Kliteynik (2):
net/mlx5: DR, Use the right GVMI number for drop action net/mlx5: DR, Can't go to uplink vport on RX rule
Yifan Zhang (1):
drm/amdgpu: update regGL2C_CTRL4 value in golden setting
Yishai Hadas (1):
net/mlx5: Fix a WARN upon a callback command failure
Yunjian Wang (2):
tun: fix missing dropped counter in tun_xdp_act
tun: add missing rx stats accounting in tun_xdp_act
Zack Rusin (1):
drm: Disable the cursor plane on atomic contexts with virtualized drivers
Zheng Wang (2):
media: mtk-jpeg: Fix timeout schedule error in mtk_jpegdec_worker.
media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
Zhengchao Shao (3):
tcp: make sure init the accept_queue's spinlocks once
netlink: fix potential sleeping issue in mqueue_flush_file
ipv6: init the accept_queue's spinlocks in inet6_create
Zhihao Cheng (1):
ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
Zhipeng Lu (2):
net/mlx5e: fix a double-free in arfs_create_groups
fjes: fix memleaks in fjes_hw_setup
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-class-devfreq +3 -0
@@ -52,6 +52,9 @@ Description: echo 0 > /sys/class/devfreq/.../trans_stat + If the transition table is bigger than PAGE_SIZE, reading + this will return an -EFBIG error. + What: /sys/class/devfreq/.../available_frequencies Date: October 2012 Contact: Nishanth Menon <[email protected]>
Documentation/admin-guide/abi-obsolete.rst +1 -1
@@ -7,5 +7,5 @@ marked to be removed at some later point in time. The description of the interface will document the reason why it is obsolete and when it can be expected to be removed. -.. kernel-abi:: $srctree/Documentation/ABI/obsolete +.. kernel-abi:: ABI/obsolete :rst:
Documentation/admin-guide/abi-removed.rst +1 -1
@@ -1,5 +1,5 @@ ABI removed symbols =================== -.. kernel-abi:: $srctree/Documentation/ABI/removed +.. kernel-abi:: ABI/removed :rst:
Documentation/admin-guide/abi-stable.rst +1 -1
@@ -10,5 +10,5 @@ for at least 2 years. Most interfaces (like syscalls) are expected to never change and always be available. -.. kernel-abi:: $srctree/Documentation/ABI/stable +.. kernel-abi:: ABI/stable :rst:
Documentation/admin-guide/abi-testing.rst +1 -1
@@ -16,5 +16,5 @@ Programs that use these interfaces are strongly encouraged to add their name to the description of these interfaces, so that the kernel developers can easily notify them if any changes occur. -.. kernel-abi:: $srctree/Documentation/ABI/testing +.. kernel-abi:: ABI/testing :rst:
Documentation/arch/arm64/silicon-errata.rst +2 -0
@@ -71,6 +71,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A510 | #2658417 | ARM64_ERRATUM_2658417 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A510 | #3117295 | ARM64_ERRATUM_3117295 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A520 | #2966298 | ARM64_ERRATUM_2966298 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
Documentation/filesystems/directory-locking.rst +15 -14
@@ -22,13 +22,16 @@ exclusive. 3) object removal. Locking rules: caller locks parent, finds victim, locks victim and calls the method. Locks are exclusive. -4) rename() that is _not_ cross-directory. Locking rules: caller locks the -parent and finds source and target. We lock both (provided they exist). If we -need to lock two inodes of different type (dir vs non-dir), we lock directory -first. If we need to lock two inodes of the same type, lock them in inode -pointer order. Then call the method. All locks are exclusive. -NB: we might get away with locking the source (and target in exchange -case) shared. +4) rename() that is _not_ cross-directory. Locking rules: caller locks +the parent and finds source and target. Then we decide which of the +source and target need to be locked. Source needs to be locked if it's a +non-directory; target - if it's a non-directory or about to be removed. +Take the locks that need to be taken, in inode pointer order if need +to take both (that can happen only when both source and target are +non-directories - the source because it wouldn't be locked otherwise +and the target because mixing directory and non-directory is allowed +only with RENAME_EXCHANGE, and that won't be removing the target). +After the locks had been taken, call the method. All locks are exclusive. 5) link creation. Locking rules:
@@ -44,20 +47,17 @@ rules: * lock the filesystem * lock parents in "ancestors first" order. If one is not ancestor of - the other, lock them in inode pointer order. + the other, lock the parent of source first. * find source and target. * if old parent is equal to or is a descendent of target fail with -ENOTEMPTY * if new parent is equal to or is a descendent of source fail with -ELOOP - * Lock both the source and the target provided they exist. If we - need to lock two inodes of different type (dir vs non-dir), we lock - the directory first. If we need to lock two inodes of the same type, - lock them in inode pointer order. + * Lock subdirectories involved (source before target). + * Lock non-directories involved, in inode pointer order. * call the method. -All ->i_rwsem are taken exclusive. Again, we might get away with locking -the source (and target in exchange case) shared. +All ->i_rwsem are taken exclusive. The rules above obviously guarantee that all directories that are going to be read, modified or removed by method will be locked by caller.
@@ -67,6 +67,7 @@ If no directory is its own ancestor, the scheme above is deadlock-free. Proof: +[XXX: will be updated once we are done massaging the lock_rename()] First of all, at any moment we have a linear ordering of the objects - A < B iff (A is an ancestor of B) or (B is not an ancestor of A and ptr(A) < ptr(B)).
Documentation/filesystems/locking.rst +4 -1
@@ -101,7 +101,7 @@ symlink: exclusive mkdir: exclusive unlink: exclusive (both) rmdir: exclusive (both)(see below) -rename: exclusive (all) (see below) +rename: exclusive (both parents, some children) (see below) readlink: no get_link: no setattr: exclusive
@@ -123,6 +123,9 @@ get_offset_ctx no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem exclusive on victim. cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem. + ->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories + involved. + ->rename() has ->i_rwsem exclusive on any subdirectory that changes parent. See Documentation/filesystems/directory-locking.rst for more detailed discussion of the locking scheme for directory operations.
Documentation/filesystems/overlayfs.rst +13 -3
@@ -145,7 +145,9 @@ filesystem, an overlay filesystem needs to record in the upper filesystem that files have been removed. This is done using whiteouts and opaque directories (non-directories are always opaque). -A whiteout is created as a character device with 0/0 device number. +A whiteout is created as a character device with 0/0 device number or +as a zero-size regular file with the xattr "trusted.overlay.whiteout". + When a whiteout is found in the upper level of a merged directory, any matching name in the lower level is ignored, and the whiteout itself is also hidden.
@@ -154,6 +156,13 @@ A directory is made opaque by setting the xattr "trusted.overlay.opaque" to "y". Where the upper filesystem contains an opaque directory, any directory in the lower filesystem with the same name is ignored. +An opaque directory should not conntain any whiteouts, because they do not +serve any purpose. A merge directory containing regular files with the xattr +"trusted.overlay.whiteout", should be additionally marked by setting the xattr +"trusted.overlay.opaque" to "x" on the merge directory itself. +This is needed to avoid the overhead of checking the "trusted.overlay.whiteout" +on all entries during readdir in the common case. + readdir -------
@@ -534,8 +543,9 @@ A lower dir with a regular whiteout will always be handled by the overlayfs mount, so to support storing an effective whiteout file in an overlayfs mount an alternative form of whiteout is supported. This form is a regular, zero-size file with the "overlay.whiteout" xattr set, inside a directory with the -"overlay.whiteouts" xattr set. Such whiteouts are never created by overlayfs, -but can be used by userspace tools (like containers) that generate lower layers. +"overlay.opaque" xattr set to "x" (see `whiteouts and opaque directories`_). +These alternative whiteouts are never created by overlayfs, but can be used by +userspace tools (like containers) that generate lower layers. These alternative whiteouts can be escaped using the standard xattr escape mechanism in order to properly nest to any depth.
Documentation/filesystems/porting.rst +18 -0
@@ -1061,3 +1061,21 @@ export_operations ->encode_fh() no longer has a default implementation to encode FILEID_INO32_GEN* file handles. Filesystems that used the default implementation may use the generic helper generic_encode_ino32_fh() explicitly. + +--- + +**mandatory** + +If ->rename() update of .. on cross-directory move needs an exclusion with +directory modifications, do *not* lock the subdirectory in question in your +->rename() - it's done by the caller now [that item should've been added in +28eceeda130f "fs: Lock moved directories"]. + +--- + +**mandatory** + +On same-directory ->rename() the (tautological) update of .. is not protected +by any locks; just don't do it if the old parent is the same as the new one. +We really can't lock two subdirectories in same-directory rename - not without +deadlocks.
Documentation/gpu/drm-kms.rst +2 -0
@@ -548,6 +548,8 @@ Plane Composition Properties .. kernel-doc:: drivers/gpu/drm/drm_blend.c :doc: overview +.. _damage_tracking_properties: + Damage Tracking Properties --------------------------
Documentation/gpu/todo.rst +3 -4
@@ -337,8 +337,8 @@ connector register/unregister fixes Level: Intermediate -Remove load/unload callbacks from all non-DRIVER_LEGACY drivers ---------------------------------------------------------------- +Remove load/unload callbacks +---------------------------- The load/unload callbacks in struct &drm_driver are very much midlayers, plus for historical reasons they get the ordering wrong (and we can't fix that)
@@ -347,8 +347,7 @@ between setting up the &drm_driver structure and calling drm_dev_register(). - Rework drivers to no longer use the load/unload callbacks, directly coding the load/unload sequence into the driver's probe function. -- Once all non-DRIVER_LEGACY drivers are converted, disallow the load/unload - callbacks for all modern drivers. +- Once all drivers are converted, remove the load/unload callbacks. Contact: Daniel Vetter
Documentation/sphinx/kernel_abi.py +10 -46
78 lines not on this page · raw message
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 7 -SUBLEVEL = 2 +SUBLEVEL = 3 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/alpha/kernel/rtc.c +1 -1
@@ -80,7 +80,7 @@ init_rtc_epoch(void)static int alpha_rtc_read_time (struct device *dev,struct rtc_time *tm) { -int ret =mc146818_get_time (tm); +int ret =mc146818_get_time (tm,10 );if (ret <0 ) {dev_err_ratelimited (dev,"unable to read current time\n" );
arch/arm/boot/dts/nxp/imx/imx6q-apalis-ixora-v1.2.dts +2 -0
@@ -76,6 +76,7 @@ reg_can1_supply: regulator-can1-supply { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enable_can1_power>; regulator-name = "can1_supply"; + startup-delay-us = <1000>; }; reg_can2_supply: regulator-can2-supply {
@@ -85,6 +86,7 @@ reg_can2_supply: regulator-can2-supply { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enable_can2_power>; regulator-name = "can2_supply"; + startup-delay-us = <1000>; }; };
arch/arm/boot/dts/qcom/qcom-sdx55.dtsi +5 -5
@@ -585,10 +585,10 @@ usb: usb@a6f8800 { <&gcc GCC_USB30_MASTER_CLK>; assigned-clock-rates = <19200000>, <200000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 51 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 11 IRQ_TYPE_EDGE_BOTH>, + <&pdc 10 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -612,7 +612,7 @@ pdc: interrupt-controller@b210000 { compatible = "qcom,sdx55-pdc", "qcom,pdc"; reg = <0x0b210000 0x30000>; qcom,pdc-ranges = <0 179 52>; - #interrupt-cells = <3>; + #interrupt-cells = <2>; interrupt-parent = <&intc>; interrupt-controller; };
arch/arm/boot/dts/samsung/exynos4210-i9100.dts +8 -0
@@ -527,6 +527,14 @@ vtcam_reg: LDO12 { regulator-name = "VT_CAM_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + + /* + * Force-enable this regulator; otherwise the + * kernel hangs very early in the boot process + * for about 12 seconds, without apparent + * reason. + */ + regulator-always-on; }; vcclcd_reg: LDO13 {
arch/arm/boot/dts/samsung/exynos4212-tab3.dtsi +1 -0
@@ -434,6 +434,7 @@ &exynos_usbphy { }; &fimd { + samsung,invert-vclk; status = "okay"; };
arch/arm64/Kconfig +18 -0
@@ -1037,8 +1037,12 @@ config ARM64_ERRATUM_2645198 If unsure, say Y. +config ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD + bool + config ARM64_ERRATUM_2966298 bool "Cortex-A520: 2966298: workaround for speculatively executed unprivileged load" + select ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD default y help This option adds the workaround for ARM Cortex-A520 erratum 2966298.
@@ -1050,6 +1054,20 @@ config ARM64_ERRATUM_2966298 If unsure, say Y. +config ARM64_ERRATUM_3117295 + bool "Cortex-A510: 3117295: workaround for speculatively executed unprivileged load" + select ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD + default y + help + This option adds the workaround for ARM Cortex-A510 erratum 3117295. + + On an affected Cortex-A510 core, a speculatively executed unprivileged + load might leak data from a privileged level via a cache side channel. + + Work around this problem by executing a TLBI before returning to EL0. + + If unsure, say Y. + config CAVIUM_ERRATUM_22375 bool "Cavium erratum 22375, 24313" default y
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +1 -0
@@ -93,6 +93,7 @@ led-controller@45 { #size-cells = <0>; vcc-supply = <&pm8916_l17>; + vio-supply = <&pm8916_l6>; led@0 { reg = <0>;
arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dts +1 -0
@@ -118,6 +118,7 @@ led-controller@45 { #size-cells = <0>; vcc-supply = <&pm8916_l16>; + vio-supply = <&pm8916_l5>; led@0 { reg = <0>;
arch/arm64/boot/dts/qcom/msm8916.dtsi +1 -0
@@ -2106,6 +2106,7 @@ blsp_dma: dma-controller@7884000 { clock-names = "bam_clk"; #dma-cells = <1>; qcom,ee = <0>; + qcom,controlled-remotely; }; blsp_uart1: serial@78af000 {
arch/arm64/boot/dts/qcom/msm8939.dtsi +1 -0
@@ -1682,6 +1682,7 @@ blsp_dma: dma-controller@7884000 { clock-names = "bam_clk"; #dma-cells = <1>; qcom,ee = <0>; + qcom,controlled-remotely; }; blsp_uart1: serial@78af000 {
arch/arm64/boot/dts/qcom/msm8953-xiaomi-mido.dts +1 -0
@@ -111,6 +111,7 @@ led-controller@45 { reg = <0x45>; vcc-supply = <&pm8953_l10>; + vio-supply = <&pm8953_l5>; #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/qcom/msm8953-xiaomi-tissot.dts +1 -0
@@ -104,6 +104,7 @@ led-controller@45 { reg = <0x45>; vcc-supply = <&pm8953_l10>; + vio-supply = <&pm8953_l5>; #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/qcom/msm8953-xiaomi-vince.dts +1 -0
@@ -113,6 +113,7 @@ led-controller@45 { reg = <0x45>; vcc-supply = <&pm8953_l10>; + vio-supply = <&pm8953_l5>; #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/qcom/sc7180.dtsi +2 -2
@@ -2966,8 +2966,8 @@ usb_1: usb@a6f8800 { interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, - <&pdc 8 IRQ_TYPE_LEVEL_HIGH>, - <&pdc 9 IRQ_TYPE_LEVEL_HIGH>; + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -2
@@ -3685,9 +3685,9 @@ usb_1: usb@a6f8800 { assigned-clock-rates = <19200000>, <200000000>; interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <&pdc 14 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 14 IRQ_TYPE_EDGE_BOTH>, <&pdc 15 IRQ_TYPE_EDGE_BOTH>, - <&pdc 17 IRQ_TYPE_EDGE_BOTH>; + <&pdc 17 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "hs_phy_irq", "dp_hs_phy_irq", "dm_hs_phy_irq",
arch/arm64/boot/dts/qcom/sc8180x.dtsi +8 -8
@@ -2552,10 +2552,10 @@ gem_noc: interconnect@9680000 { usb_prim: usb@a6f8800 { compatible = "qcom,sc8180x-dwc3", "qcom,dwc3"; reg = <0 0x0a6f8800 0 0x400>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq",
@@ -2626,10 +2626,10 @@ usb_sec: usb@a8f8800 { "xo"; resets = <&gcc GCC_USB30_SEC_BCR>; power-domains = <&gcc USB30_SEC_GDSC>; - interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 7 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts +2 -0
@@ -458,6 +458,8 @@ mdss0_dp3_out: endpoint { }; &mdss0_dp3_phy { + compatible = "qcom,sc8280xp-edp-phy"; + vdda-phy-supply = <&vreg_l6b>; vdda-pll-supply = <&vreg_l3b>;
arch/arm64/boot/dts/qcom/sdm670.dtsi +4 -4
@@ -1295,10 +1295,10 @@ usb_1: usb@a6f8800 { <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sdm845.dtsi +8 -8
@@ -4053,10 +4053,10 @@ usb_1: usb@a6f8800 { <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -4104,10 +4104,10 @@ usb_2: usb@a8f8800 { <&gcc GCC_USB30_SEC_MASTER_CLK>; assigned-clock-rates = <19200000>, <150000000>; - interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 7 IRQ_TYPE_LEVEL_HIGH>, + <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/qcom/sm8150.dtsi +8 -8
@@ -3565,10 +3565,10 @@ usb_1: usb@a6f8800 { <&gcc GCC_USB30_PRIM_MASTER_CLK>; assigned-clock-rates = <19200000>, <200000000>; - interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 6 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 8 IRQ_TYPE_EDGE_BOTH>, + <&pdc 9 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -3618,10 +3618,10 @@ usb_2: usb@a8f8800 { <&gcc GCC_USB30_SEC_MASTER_CLK>; assigned-clock-rates = <19200000>, <200000000>; - interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 7 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 10 IRQ_TYPE_EDGE_BOTH>, + <&pdc 11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "hs_phy_irq", "ss_phy_irq", "dm_hs_phy_irq", "dp_hs_phy_irq";
arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts +3 -1
@@ -26,9 +26,11 @@ yt8531c: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; + motorcomm,auto-sleep-disabled; motorcomm,clk-out-frequency-hz = <125000000>; motorcomm,keep-pll-enabled; - motorcomm,auto-sleep-disabled; + motorcomm,rx-clk-drv-microamp = <5020>; + motorcomm,rx-data-drv-microamp = <5020>; pinctrl-0 = <ð_phy_reset_pin>; pinctrl-names = "default";
arch/arm64/boot/dts/rockchip/rk3588s.dtsi +1 -0
@@ -916,6 +916,7 @@ power-domain@RK3588_PD_USB { reg = <RK3588_PD_USB>; clocks = <&cru PCLK_PHP_ROOT>, <&cru ACLK_USB_ROOT>, + <&cru ACLK_USB>, <&cru HCLK_USB_ROOT>, <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>,
arch/arm64/boot/dts/sprd/ums512.dtsi +2 -2
@@ -96,7 +96,7 @@ CPU5: cpu@500 { CPU6: cpu@600 { device_type = "cpu"; - compatible = "arm,cortex-a55"; + compatible = "arm,cortex-a75"; reg = <0x0 0x600>; enable-method = "psci"; cpu-idle-states = <&CORE_PD>;
@@ -104,7 +104,7 @@ CPU6: cpu@600 { CPU7: cpu@700 { device_type = "cpu"; - compatible = "arm,cortex-a55"; + compatible = "arm,cortex-a75"; reg = <0x0 0x700>; enable-method = "psci"; cpu-idle-states = <&CORE_PD>;
arch/arm64/boot/install.sh +2 -1
@@ -17,7 +17,8 @@ # $3 - kernel map file # $4 - default install path (blank if root directory) -if [ "$(basename $2)" = "Image.gz" ]; then +if [ "$(basename $2)" = "Image.gz" ] || [ "$(basename $2)" = "vmlinuz.efi" ] +then # Compressed install echo "Installing compressed kernel" base=vmlinuz
arch/arm64/kernel/cpu_errata.c +17 -4
@@ -416,6 +416,19 @@ static struct midr_range broken_aarch32_aes[] = { };#endif /* CONFIG_ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE */ +#ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD +static const struct midr_range erratum_spec_unpriv_load_list[] = { +#ifdef CONFIG_ARM64_ERRATUM_3117295 +MIDR_ALL_VERSIONS (MIDR_CORTEX_A510 ), +#endif +#ifdef CONFIG_ARM64_ERRATUM_2966298 +/* Cortex-A520 r0p0 to r0p1 */ +MIDR_REV_RANGE (MIDR_CORTEX_A520 ,0 ,0 ,1 ), +#endif + {}, +}; +#endif + const struct arm64_cpu_capabilities arm64_errata[] = {#ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE {
@@ -713,12 +726,12 @@ const struct arm64_cpu_capabilities arm64_errata[] = { MIDR_FIXED(MIDR_CPU_VAR_REV(1,1), BIT(25)), },#endif -#ifdef CONFIG_ARM64_ERRATUM_2966298 +#ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD { - .desc = "ARM erratum 2966298", - .capability = ARM64_WORKAROUND_2966298, + .desc = "ARM errata 2966298, 3117295", + .capability = ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD, /* Cortex-A520 r0p0 - r0p1 */ - ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A520, 0, 0, 1), + ERRATA_MIDR_RANGE_LIST(erratum_spec_unpriv_load_list), }, #endif #ifdef CONFIG_AMPERE_ERRATUM_AC03_CPU_38
arch/arm64/kernel/entry.S +13 -9
@@ -428,16 +428,9 @@ alternative_else_nop_endif ldp x28, x29, [sp, #16 * 14] .if \el == 0 -alternative_if ARM64_WORKAROUND_2966298 - tlbi vale1, xzr - dsb nsh -alternative_else_nop_endif -alternative_if_not ARM64_UNMAP_KERNEL_AT_EL0 - ldr lr, [sp, #S_LR] - add sp, sp, #PT_REGS_SIZE // restore sp - eret -alternative_else_nop_endif #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 + alternative_insn "b .L_skip_tramp_exit_\@", nop, ARM64_UNMAP_KERNEL_AT_EL0 + msr far_el1, x29 ldr_this_cpu x30, this_cpu_vector, x29
@@ -446,7 +439,18 @@ alternative_else_nop_endif ldr lr, [sp, #S_LR] // restore x30 add sp, sp, #PT_REGS_SIZE // restore sp br x29 + +.L_skip_tramp_exit_\@: #endif + ldr lr, [sp, #S_LR] + add sp, sp, #PT_REGS_SIZE // restore sp + + /* This must be after the last explicit memory access */ +alternative_if ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD + tlbi vale1, xzr + dsb nsh +alternative_else_nop_endif + eret .else ldr lr, [sp, #S_LR] add sp, sp, #PT_REGS_SIZE // restore sp
arch/arm64/kernel/fpsimd.c +4 -2
@@ -1245,8 +1245,10 @@ void fpsimd_release_task(struct task_struct *dead_task)*/ void sme_alloc (struct task_struct *task,bool flush) { -if (task->thread.sme_state && flush) { -memset (task->thread.sme_state,0 ,sme_state_size (task)); +if (task->thread.sme_state) { +if (flush) +memset (task->thread.sme_state,0 , +sme_state_size (task));return ; }
arch/arm64/tools/cpucaps +1 -1
@@ -84,7 +84,6 @@ WORKAROUND_2077057 WORKAROUND_2457168 WORKAROUND_2645198 WORKAROUND_2658417 -WORKAROUND_2966298 WORKAROUND_AMPERE_AC03_CPU_38 WORKAROUND_TRBE_OVERWRITE_FILL_MODE WORKAROUND_TSB_FLUSH_FAILURE
@@ -100,3 +99,4 @@ WORKAROUND_NVIDIA_CARMEL_CNP WORKAROUND_QCOM_FALKOR_E1003 WORKAROUND_REPEAT_TLBI WORKAROUND_SPECULATIVE_AT +WORKAROUND_SPECULATIVE_UNPRIV_LOAD
arch/loongarch/kernel/smp.c +0 -1
@@ -506,7 +506,6 @@ asmlinkage void start_secondary(void)sync_counter (); cpu =raw_smp_processor_id ();set_my_cpu_offset (per_cpu_offset (cpu)); -rcutree_report_cpu_starting (cpu);cpu_probe ();constant_clockevent_init ();
arch/loongarch/mm/tlb.c +10 -6
@@ -284,12 +284,16 @@ static void setup_tlb_handler(int cpu)set_handler (EXCCODE_TLBNR *VECSIZE , handle_tlb_protect,VECSIZE );set_handler (EXCCODE_TLBNX *VECSIZE , handle_tlb_protect,VECSIZE );set_handler (EXCCODE_TLBPE *VECSIZE , handle_tlb_protect,VECSIZE ); - } + }else { +int vec_sz__maybe_unused ; +void *addr__maybe_unused ; +struct page *page__maybe_unused ; + +/* Avoid lockdep warning */ +rcutree_report_cpu_starting (cpu); +#ifdef CONFIG_NUMA - else { -void *addr; -struct page *page; -const int vec_sz =sizeof (exception_handlers); + vec_sz =sizeof (exception_handlers);if (pcpu_handlers[cpu])return ;
@@ -305,8 +309,8 @@ static void setup_tlb_handler(int cpu)csr_write64 (pcpu_handlers[cpu],LOONGARCH_CSR_EENTRY );csr_write64 (pcpu_handlers[cpu],LOONGARCH_CSR_MERRENTRY );csr_write64 (pcpu_handlers[cpu] +80 *VECSIZE ,LOONGARCH_CSR_TLBRENTRY ); - }#endif + } }void tlb_init (int cpu)
arch/mips/kernel/elf.c +6 -0
@@ -11,6 +11,7 @@#include <asm/cpu-features.h> #include <asm/cpu-info.h> +#include <asm/fpu.h> #ifdef CONFIG_MIPS_FP_SUPPORT
@@ -309,6 +310,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)struct cpuinfo_mips *c = &boot_cpu_data;struct task_struct *t = current; +/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case +* we are preempted before the lose_fpu(0) in start_thread. +*/ +lose_fpu (0 ); + t->thread.fpu.fcr31 = c->fpu_csr31;switch (state->nan_2008) {case 0 :
arch/mips/lantiq/prom.c +3 -4
@@ -108,10 +108,9 @@ void __init prom_init(void)prom_init_cmdline ();#if defined(CONFIG_MIPS_MT_SMP ) -if (cpu_has_mipsmt) { - lantiq_smp_ops = vsmp_smp_ops; + lantiq_smp_ops = vsmp_smp_ops; +if (cpu_has_mipsmt) lantiq_smp_ops.init_secondary = lantiq_init_secondary; -register_smp_ops (&lantiq_smp_ops); - } +register_smp_ops (&lantiq_smp_ops);#endif }
arch/mips/mm/init.c +5 -7
@@ -422,7 +422,12 @@ void __init paging_init(void) (highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10)); max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn; } + + max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; +#else + max_mapnr = max_low_pfn;#endif + high_memory = (void *)__va (max_low_pfn <<PAGE_SHIFT );free_area_init (max_zone_pfns); }
@@ -458,13 +463,6 @@ void __init mem_init(void)*/ BUILD_BUG_ON (IS_ENABLED (CONFIG_32BIT ) && (PFN_PTE_SHIFT >PAGE_SHIFT )); -#ifdef CONFIG_HIGHMEM - max_mapnr = highend_pfn ? highend_pfn : max_low_pfn; -#else - max_mapnr = max_low_pfn; -#endif - high_memory = (void *)__va (max_low_pfn <<PAGE_SHIFT ); -maar_init ();memblock_free_all ();setup_zero_pages ();/* Setup zeroed pages. */
arch/parisc/kernel/firmware.c +2 -2
@@ -123,10 +123,10 @@ static unsigned long f_extend(unsigned long address)#ifdef CONFIG_64BIT if (unlikely (parisc_narrow_firmware)) {if ((address &0xff000000 ) ==0xf0000000 ) -return 0xf0f0f0f000000000UL | (u32 )address; +return (0xfffffff0UL <<32 ) | (u32 )address;if ((address &0xf0000000 ) ==0xf0000000 ) -return 0xffffffff00000000UL | (u32 )address; +return (0xffffffffUL <<32 ) | (u32 )address; }#endif return address;
arch/powerpc/configs/ps3_defconfig +1 -0
@@ -24,6 +24,7 @@ CONFIG_PS3_VRAM=m CONFIG_PS3_LPM=m # CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set CONFIG_KEXEC=y +# CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2 is not set CONFIG_PPC_4K_PAGES=y CONFIG_SCHED_SMT=y CONFIG_PM=y
arch/riscv/boot/dts/sophgo/sg2042.dtsi +48 -32
192 lines not on this page · raw message
arch/riscv/include/asm/pgtable.h +1 -1
@@ -881,7 +881,7 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte)#define TASK_SIZE_MIN (PGDIR_SIZE_L3 * PTRS_PER_PGD / 2)#ifdef CONFIG_COMPAT -#define TASK_SIZE_32 (_AC(0x80000000, UL) - PAGE_SIZE) +#define TASK_SIZE_32 (_AC(0x80000000, UL))#define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \ TASK_SIZE_32 : TASK_SIZE_64)#else
arch/riscv/include/asm/processor.h +1 -1
@@ -16,7 +16,7 @@#ifdef CONFIG_64BIT #define DEFAULT_MAP_WINDOW (UL(1) << (MMAP_VA_BITS - 1)) -#define STACK_TOP_MAX TASK_SIZE_64 +#define STACK_TOP_MAX TASK_SIZE#define arch_get_mmap_end (addr, len, flags) \ ({ \
arch/riscv/kernel/module.c +9 -5
@@ -723,8 +723,8 @@ static int add_relocation_to_accumulate(struct module *me, int type,if (!bucket) {kfree (entry); -kfree (rel_head);kfree (rel_head->rel_entry); +kfree (rel_head);return -ENOMEM ; }
@@ -747,6 +747,10 @@ initialize_relocation_hashtable(unsigned int num_relocations, {/* Can safely assume that bits is not greater than sizeof(long) */ unsigned long hashtable_size =roundup_pow_of_two (num_relocations); +/* +* When hashtable_size == 1, hashtable_bits == 0. +* This is valid because the hashing algorithm returns 0 in this case. +*/ unsigned int hashtable_bits =ilog2 (hashtable_size);/*
@@ -760,10 +764,10 @@ initialize_relocation_hashtable(unsigned int num_relocations, hashtable_size <<= should_double_size; *relocation_hashtable =kmalloc_array (hashtable_size, -sizeof (*relocation_hashtable), +sizeof (**relocation_hashtable),GFP_KERNEL );if (!*relocation_hashtable) -return -ENOMEM ; +return 0 ;__hash_init (*relocation_hashtable, hashtable_size);
@@ -789,8 +793,8 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, hashtable_bits =initialize_relocation_hashtable (num_relocations, &relocation_hashtable); -if (hashtable_bits <0 ) -return hashtable_bits; +if (!relocation_hashtable) +return -ENOMEM ;INIT_LIST_HEAD (&used_buckets_list);
arch/riscv/kernel/pi/cmdline_early.c +1 -2
@@ -38,8 +38,7 @@ static char *get_early_cmdline(uintptr_t dtb_pa)if (IS_ENABLED (CONFIG_CMDLINE_EXTEND ) ||IS_ENABLED (CONFIG_CMDLINE_FORCE ) || fdt_cmdline_size ==0 /* CONFIG_CMDLINE_FALLBACK */ ) { -strncat (early_cmdline,CONFIG_CMDLINE , -COMMAND_LINE_SIZE - fdt_cmdline_size); +strlcat (early_cmdline,CONFIG_CMDLINE ,COMMAND_LINE_SIZE ); }return early_cmdline;
arch/s390/crypto/aes_s390.c +3 -1
@@ -597,7 +597,9 @@ static int ctr_aes_crypt(struct skcipher_request *req)* final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { -cpacf_kmctr (sctx->fc, sctx->key, buf, walk.src.virt.addr, +memset (buf,0 ,AES_BLOCK_SIZE ); +memcpy (buf, walk.src.virt.addr, nbytes); +cpacf_kmctr (sctx->fc, sctx->key, buf, buf,AES_BLOCK_SIZE , walk.iv);memcpy (walk.dst.virt.addr, buf, nbytes);crypto_inc (walk.iv,AES_BLOCK_SIZE );
arch/s390/crypto/paes_s390.c +3 -1
@@ -693,9 +693,11 @@ static int ctr_paes_crypt(struct skcipher_request *req)* final block may be < AES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { +memset (buf,0 ,AES_BLOCK_SIZE ); +memcpy (buf, walk.src.virt.addr, nbytes);while (1 ) {if (cpacf_kmctr (ctx->fc, ¶m, buf, - walk.src.virt.addr,AES_BLOCK_SIZE , + buf,AES_BLOCK_SIZE , walk.iv) ==AES_BLOCK_SIZE )break ;if (__paes_convert_key (ctx))
arch/sh/boards/mach-ecovec24/setup.c +1 -1
@@ -1220,7 +1220,7 @@ static int __init arch_setup(void) lcdc_info.ch[0 ].num_modes =ARRAY_SIZE (ecovec_dvi_modes);/* No backlight */ - gpio_backlight_data.fbdev =NULL ; + gpio_backlight_data.dev =NULL ;gpio_set_value (GPIO_PTA2 ,1 );gpio_set_value (GPIO_PTU1 ,1 );
arch/x86/include/asm/syscall_wrapper.h +21 -4
@@ -58,12 +58,29 @@ extern long __ia32_sys_ni_syscall(const struct pt_regs *regs); ,,regs->di,,regs->si,,regs->dx \ ,,regs->r10,,regs->r8,,regs->r9) \ + +/* SYSCALL_PT_ARGS is Adapted from s390x */ +#define SYSCALL_PT_ARG6 (m, t1, t2, t3, t4, t5, t6) \ + SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp)) +#define SYSCALL_PT_ARG5 (m, t1, t2, t3, t4, t5) \ + SYSCALL_PT_ARG4(m, t1, t2, t3, t4), m(t5, (regs->di)) +#define SYSCALL_PT_ARG4 (m, t1, t2, t3, t4) \ + SYSCALL_PT_ARG3(m, t1, t2, t3), m(t4, (regs->si)) +#define SYSCALL_PT_ARG3 (m, t1, t2, t3) \ + SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx)) +#define SYSCALL_PT_ARG2 (m, t1, t2) \ + SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx)) +#define SYSCALL_PT_ARG1 (m, t1) m(t1, (regs->bx)) +#define SYSCALL_PT_ARGS (x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__) + +#define __SC_COMPAT_CAST (t, a) \ + (__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U))) \ + (unsigned int)a +/* Mapping of registers to parameters for syscalls on i386 */ #define SC_IA32_REGS_TO_ARGS (x, ...) \ - __MAP(x,__SC_ARGS \ - ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \ - ,,(unsigned int)regs->dx,,(unsigned int)regs->si \ - ,,(unsigned int)regs->di,,(unsigned int)regs->bp) + SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST, \ + __MAP(x, __SC_TYPE, __VA_ARGS__)) \#define __SYS_STUB0 (abi, name) \ long __##abi##_##name(const struct pt_regs *regs); \
arch/x86/kernel/hpet.c +1 -1
@@ -1438,7 +1438,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id)memset (&curr_time,0 ,sizeof (struct rtc_time ));if (hpet_rtc_flags & (RTC_UIE |RTC_AIE )) { -if (unlikely (mc146818_get_time (&curr_time) <0 )) { +if (unlikely (mc146818_get_time (&curr_time,10 ) <0 )) {pr_err_ratelimited ("unable to read current time from RTC\n" );return IRQ_HANDLED ; }
arch/x86/kernel/rtc.c +1 -1
@@ -67,7 +67,7 @@ void mach_get_cmos_time(struct timespec64 *now)return ; } -if (mc146818_get_time (&tm)) { +if (mc146818_get_time (&tm,1000 )) {pr_err ("Unable to read current time from RTC\n" ); now->tv_sec = now->tv_nsec =0 ;return ;
block/ioctl.c +0 -2
@@ -20,8 +20,6 @@ static int blkpg_do_ioctl(struct block_device *bdev,struct blkpg_partition p;sector_t start, length; -if (disk->flags &GENHD_FL_NO_PART ) -return -EINVAL ;if (!capable (CAP_SYS_ADMIN ))return -EACCES ;if (copy_from_user (&p, upart,sizeof (struct blkpg_partition )))
block/partitions/core.c +5 -0
@@ -447,6 +447,11 @@ int bdev_add_partition(struct gendisk *disk, int partno, sector_t start, goto out; } +if (disk->flags &GENHD_FL_NO_PART ) { + ret = -EINVAL ; + goto out; + } +if (partition_overlaps (disk, start, length,-1 )) { ret = -EBUSY ; goto out;
crypto/algapi.c +1 -0
@@ -341,6 +341,7 @@ __crypto_register_alg(struct crypto_alg *alg, struct list_head *algs_to_put) }if (!strcmp (q->cra_driver_name, alg->cra_name) || + !strcmp (q->cra_driver_name, alg->cra_driver_name) || !strcmp (q->cra_name, alg->cra_driver_name)) goto err; }
drivers/base/power/main.c +68 -80
271 lines not on this page · raw message
drivers/base/power/trace.c +1 -1
@@ -120,7 +120,7 @@ static unsigned int read_magic_time(void)struct rtc_time time;unsigned int val; -if (mc146818_get_time (&time) <0 ) { +if (mc146818_get_time (&time,1000 ) <0 ) {pr_err ("Unable to read current time from RTC\n" );return 0 ; }
drivers/block/nbd.c +1 -5
@@ -510,7 +510,7 @@ static int __sock_xmit(struct nbd_device *nbd, struct socket *sock, int send, struct iov_iter *iter, int msg_flags, int *sent) { int result; -struct msghdr msg; +struct msghdr msg = {} ;unsigned int noreclaim_flag;if (unlikely (!sock)) {
@@ -526,10 +526,6 @@ static int __sock_xmit(struct nbd_device *nbd, struct socket *sock, int send, do { sock->sk->sk_allocation = GFP_NOIO | __GFP_MEMALLOC; sock->sk->sk_use_task_frag = false; - msg.msg_name = NULL; - msg.msg_namelen = 0; - msg.msg_control = NULL; - msg.msg_controllen = 0; msg.msg_flags = msg_flags | MSG_NOSIGNAL; if (send)
drivers/block/rbd.c +14 -8
@@ -3452,14 +3452,15 @@ static bool rbd_lock_add_request(struct rbd_img_request *img_req)static void rbd_lock_del_request (struct rbd_img_request *img_req) {struct rbd_device *rbd_dev = img_req->rbd_dev; -bool need_wakeup; +bool need_wakeup = false;lockdep_assert_held (&rbd_dev->lock_rwsem);spin_lock (&rbd_dev->lock_lists_lock); -rbd_assert (!list_empty (&img_req->lock_item)); -list_del_init (&img_req->lock_item); - need_wakeup = (rbd_dev->lock_state ==RBD_LOCK_STATE_RELEASING && -list_empty (&rbd_dev->running_list)); +if (!list_empty (&img_req->lock_item)) { +list_del_init (&img_req->lock_item); + need_wakeup = (rbd_dev->lock_state ==RBD_LOCK_STATE_RELEASING && +list_empty (&rbd_dev->running_list)); + }spin_unlock (&rbd_dev->lock_lists_lock);if (need_wakeup)complete (&rbd_dev->releasing_wait);
@@ -3842,14 +3843,19 @@ static void wake_lock_waiters(struct rbd_device *rbd_dev, int result)return ; } -list_for_each_entry (img_req, &rbd_dev->acquiring_list, lock_item) { +while (!list_empty (&rbd_dev->acquiring_list)) { + img_req =list_first_entry (&rbd_dev->acquiring_list, + struct rbd_img_request, lock_item);mutex_lock (&img_req->state_mutex);rbd_assert (img_req->state ==RBD_IMG_EXCLUSIVE_LOCK ); +if (!result) +list_move_tail (&img_req->lock_item, + &rbd_dev->running_list); +else +list_del_init (&img_req->lock_item);rbd_img_schedule (img_req, result);mutex_unlock (&img_req->state_mutex); } - -list_splice_tail_init (&rbd_dev->acquiring_list, &rbd_dev->running_list); } static bool locker_equal(const struct ceph_locker *lhs,
drivers/bus/mhi/host/main.c +19 -10
@@ -268,7 +268,8 @@ static void mhi_del_ring_element(struct mhi_controller *mhi_cntrl,static bool is_valid_ring_ptr (struct mhi_ring *ring,dma_addr_t addr) { -return addr >= ring->iommu_base && addr < ring->iommu_base + ring->len; +return addr >= ring->iommu_base && addr < ring->iommu_base + ring->len && + !(addr & (sizeof (struct mhi_ring_element ) -1 )); }int mhi_destroy_device (struct device *dev,void *data)
@@ -642,6 +643,8 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl,mhi_del_ring_element (mhi_cntrl, tre_ring); local_rp = tre_ring->rp; +read_unlock_bh (&mhi_chan->lock); +/* notify client */ mhi_chan->xfer_cb (mhi_chan->mhi_dev, &result);
@@ -667,6 +670,8 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl,kfree (buf_info->cb_buf); } } + +read_lock_bh (&mhi_chan->lock); }break ; }/* CC_EOT */
@@ -1122,17 +1127,15 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info,if (unlikely (MHI_PM_IN_ERROR_STATE (mhi_cntrl->pm_state)))return -EIO ; -read_lock_irqsave (&mhi_cntrl->pm_lock, flags); - ret =mhi_is_ring_full (mhi_cntrl, tre_ring); -if (unlikely (ret)) { - ret = -EAGAIN ; - goto exit_unlock; - } +if (unlikely (ret)) +return -EAGAIN ; ret =mhi_gen_tre (mhi_cntrl, mhi_chan, buf_info, mflags);if (unlikely (ret)) - goto exit_unlock; +return ret; + +read_lock_irqsave (&mhi_cntrl->pm_lock, flags);/* Packet is queued, take a usage ref to exit M3 if necessary * for host->device buffer, balanced put is done on buffer completion
@@ -1152,7 +1155,6 @@ static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info,if (dir ==DMA_FROM_DEVICE ) mhi_cntrl->runtime_put (mhi_cntrl); -exit_unlock:read_unlock_irqrestore (&mhi_cntrl->pm_lock, flags);return ret;
@@ -1204,6 +1206,9 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,int eot, eob, chain, bei;int ret; +/* Protect accesses for reading and incrementing WP */ +write_lock_bh (&mhi_chan->lock); + buf_ring = &mhi_chan->buf_ring; tre_ring = &mhi_chan->tre_ring;
@@ -1221,8 +1226,10 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,if (!info->pre_mapped) { ret = mhi_cntrl->map_single (mhi_cntrl, buf_info); -if (ret) +if (ret) { +write_unlock_bh (&mhi_chan->lock);return ret; + } } eob = !!(flags &MHI_EOB );
@@ -1239,6 +1246,8 @@ int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,mhi_add_ring_element (mhi_cntrl, tre_ring);mhi_add_ring_element (mhi_cntrl, buf_ring); +write_unlock_bh (&mhi_chan->lock); +return 0 ; }
drivers/char/hw_random/core.c +21 -13
@@ -23,10 +23,13 @@#include <linux/sched.h> #include <linux/sched/signal.h> #include <linux/slab.h> +#include <linux/string.h> #include <linux/uaccess.h> #define RNG_MODULE_NAME "hw_random" +#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES) +static struct hwrng *current_rng;/* the current rng has been explicitly chosen by user via sysfs */ static int cur_rng_set_by_user;
@@ -58,7 +61,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,static size_t rng_buffer_size (void ) { -return SMP_CACHE_BYTES <32 ?32 :SMP_CACHE_BYTES ; +return RNG_BUFFER_SIZE ; }static void add_early_randomness (struct hwrng *rng)
@@ -209,6 +212,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,static ssize_t rng_dev_read (struct file *filp,char __user *buf,size_t size,loff_t *offp) { +u8 buffer[RNG_BUFFER_SIZE ];ssize_t ret =0 ;int err =0 ;int bytes_read, len;
@@ -236,34 +240,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,if (bytes_read <0 ) { err = bytes_read; goto out_unlock_reading; + }else if (bytes_read ==0 && + (filp->f_flags &O_NONBLOCK )) { + err = -EAGAIN ; + goto out_unlock_reading; } + data_avail = bytes_read; } -if (!data_avail) { -if (filp->f_flags &O_NONBLOCK ) { - err = -EAGAIN ; - goto out_unlock_reading; - } - }else { - len = data_avail; + len = data_avail; +if (len) {if (len > size) len = size; data_avail -= len; -if (copy_to_user (buf + ret, rng_buffer + data_avail, - len)) { +memcpy (buffer, rng_buffer + data_avail, len); + } +mutex_unlock (&reading_mutex); +put_rng (rng); + +if (len) { +if (copy_to_user (buf + ret, buffer, len)) { err = -EFAULT ; - goto out_unlock_reading; + goto out; } size -= len; ret += len; } -mutex_unlock (&reading_mutex); -put_rng (rng);if (need_resched ())schedule_timeout_interruptible (1 );
@@ -274,6 +281,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf, } } out: +memzero_explicit (buffer,sizeof (buffer));return ret ? : err; out_unlock_reading:
drivers/cpufreq/amd-pstate.c +3 -4
@@ -1232,14 +1232,13 @@ static void amd_pstate_epp_update_limit(struct cpufreq_policy *policy) max_limit_perf =div_u64 (policy->max * cpudata->highest_perf, cpudata->max_freq); min_limit_perf =div_u64 (policy->min * cpudata->highest_perf, cpudata->max_freq); +WRITE_ONCE (cpudata->max_limit_perf, max_limit_perf); +WRITE_ONCE (cpudata->min_limit_perf, min_limit_perf); + max_perf = clamp_t(unsigned long, max_perf, cpudata->min_limit_perf, cpudata->max_limit_perf); min_perf = clamp_t(unsigned long, min_perf, cpudata->min_limit_perf, cpudata->max_limit_perf); - -WRITE_ONCE (cpudata->max_limit_perf, max_limit_perf); -WRITE_ONCE (cpudata->min_limit_perf, min_limit_perf); - value =READ_ONCE (cpudata->cppc_req_cached);if (cpudata->policy ==CPUFREQ_POLICY_PERFORMANCE )
drivers/cpufreq/intel_pstate.c +34 -21
100 lines not on this page · raw message
drivers/cxl/core/region.c +2 -2
@@ -525,7 +525,7 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size)struct cxl_root_decoder *cxlrd =to_cxl_root_decoder (cxlr->dev.parent);struct cxl_region_params *p = &cxlr->params;struct resource *res; -u32 remainder =0 ; +u64 remainder =0 ;lockdep_assert_held_write (&cxl_region_rwsem);
@@ -545,7 +545,7 @@ static int alloc_hpa(struct cxl_region *cxlr, resource_size_t size) (cxlr->mode == CXL_DECODER_PMEM && uuid_is_null(&p->uuid)))return -ENXIO ; -div_u64_rem (size,SZ_256M * p->interleave_ways, &remainder); +div64_u64_rem (size, (u64 )SZ_256M * p->interleave_ways, &remainder);if (remainder)return -EINVAL ;
drivers/devfreq/devfreq.c +39 -18
84 lines not on this page · raw message
drivers/dma/dmaengine.c +3 -0
@@ -1103,6 +1103,9 @@ EXPORT_SYMBOL_GPL(dma_async_device_channel_register);static void __dma_async_device_channel_unregister (struct dma_device *device,struct dma_chan *chan) { +if (chan->local ==NULL ) +return ; +WARN_ONCE (!device->device_release && chan->client_count,"%s called while %d clients hold a reference\n" , __func__, chan->client_count);
drivers/dma/fsl-edma-main.c +8 -0
@@ -24,6 +24,8 @@#define ARGS_RX BIT(0)#define ARGS_REMOTE BIT(1)#define ARGS_MULTI_FIFO BIT(2) +#define ARGS_EVEN_CH BIT(3) +#define ARGS_ODD_CH BIT(4)static void fsl_edma_synchronize (struct dma_chan *chan) {
@@ -157,6 +159,12 @@ static struct dma_chan *fsl_edma3_xlate(struct of_phandle_args *dma_spec, fsl_chan->is_remote = dma_spec->args[2 ] &ARGS_REMOTE ; fsl_chan->is_multi_fifo = dma_spec->args[2 ] &ARGS_MULTI_FIFO ; +if ((dma_spec->args[2 ] &ARGS_EVEN_CH ) && (i &0x1 )) +continue ; + +if ((dma_spec->args[2 ] &ARGS_ODD_CH ) && !(i &0x1 )) +continue ; +if (!b_chmux && i == dma_spec->args[0 ]) { chan =dma_get_slave_channel (chan); chan->device->privatecnt++;
drivers/dma/idxd/device.c +8 -1
@@ -802,6 +802,9 @@ static int idxd_device_evl_setup(struct idxd_device *idxd)static void idxd_device_evl_free (struct idxd_device *idxd) { +void *evl_log; +unsigned int evl_log_size; +dma_addr_t evl_dma;union gencfg_reg gencfg;union genctrl_reg genctrl;struct device *dev = &idxd->pdev->dev;
@@ -822,11 +825,15 @@ static void idxd_device_evl_free(struct idxd_device *idxd)iowrite64 (0 , idxd->reg_base +IDXD_EVLCFG_OFFSET );iowrite64 (0 , idxd->reg_base +IDXD_EVLCFG_OFFSET +8 ); -dma_free_coherent (dev, evl->log_size, evl->log, evl->dma);bitmap_free (evl->bmap); + evl_log = evl->log; + evl_log_size = evl->log_size; + evl_dma = evl->dma; evl->log =NULL ; evl->size =IDXD_EVL_SIZE_MIN ;spin_unlock (&evl->lock); + +dma_free_coherent (dev, evl_log_size, evl_log, evl_dma); }static void idxd_group_config_write (struct idxd_group *group)
drivers/dma/xilinx/xdma.c +4 -2
@@ -754,9 +754,9 @@ static irqreturn_t xdma_channel_isr(int irq, void *dev_id)if (ret) goto out; - desc->completed_desc_num += complete_desc_num; -if (desc->cyclic) { + desc->completed_desc_num = complete_desc_num; + ret =regmap_read (xdev->rmap, xchan->base +XDMA_CHAN_STATUS , &st);if (ret)
@@ -768,6 +768,8 @@ static irqreturn_t xdma_channel_isr(int irq, void *dev_id) goto out; } + desc->completed_desc_num += complete_desc_num; +/* * if all data blocks are transferred, remove and complete the request */
drivers/dpll/dpll_core.c +57 -11
119 lines not on this page · raw message
drivers/dpll/dpll_core.h +2 -2
@@ -44,7 +44,7 @@ struct dpll_device {* @module: module of creator * @dpll_refs: hold referencees to dplls pin was registered with * @parent_refs: hold references to parent pins pin was registered with -* @prop: pointer to pin properties given by registerer +* @prop: pin properties copied from the registerer * @rclk_dev_name: holds name of device when pin can recover clock from it * @refcount: refcount **/
@@ -55,7 +55,7 @@ struct dpll_pin {struct module *module;struct xarray dpll_refs;struct xarray parent_refs; -const struct dpll_pin_properties *prop; +struct dpll_pin_properties prop;refcount_t refcount; };
drivers/dpll/dpll_netlink.c +41 -16
149 lines not on this page · raw message
drivers/firmware/arm_ffa/driver.c +12 -0
@@ -733,6 +733,11 @@ static void __do_sched_recv_cb(u16 part_id, u16 vcpu, bool is_per_vcpu)void *cb_data; partition =xa_load (&drv_info->partition_info, part_id); +if (!partition) { +pr_err ("%s: Invalid partition ID 0x%x\n" , __func__, part_id); +return ; + } +read_lock (&partition->rw_lock); callback = partition->callback; cb_data = partition->cb_data;
@@ -915,6 +920,11 @@ static int ffa_sched_recv_cb_update(u16 part_id, ffa_sched_recv_cb callback,return -EOPNOTSUPP ; partition =xa_load (&drv_info->partition_info, part_id); +if (!partition) { +pr_err ("%s: Invalid partition ID 0x%x\n" , __func__, part_id); +return -EINVAL ; + } +write_lock (&partition->rw_lock); cb_valid = !!partition->callback;
@@ -1226,6 +1236,7 @@ static void ffa_setup_partitions(void)ffa_device_unregister (ffa_dev);continue ; } +rwlock_init (&info->rw_lock);xa_store (&drv_info->partition_info, tpbuf->id, info,GFP_KERNEL ); } drv_info->partition_count = count;
@@ -1236,6 +1247,7 @@ static void ffa_setup_partitions(void) info =kzalloc (sizeof (*info),GFP_KERNEL );if (!info)return ; +rwlock_init (&info->rw_lock);xa_store (&drv_info->partition_info, drv_info->vm_id, info,GFP_KERNEL ); drv_info->partition_count++; }
drivers/firmware/arm_scmi/clock.c +1 -2
@@ -951,8 +951,7 @@ static int scmi_clock_protocol_init(const struct scmi_protocol_handle *ph)scmi_clock_describe_rates_get (ph, clkid, clk); } -if (PROTOCOL_REV_MAJOR (version) >=0x2 && -PROTOCOL_REV_MINOR (version) >=0x1 ) { +if (PROTOCOL_REV_MAJOR (version) >=0x3 ) { cinfo->clock_config_set = scmi_clock_config_set_v2; cinfo->clock_config_get = scmi_clock_config_get_v2; }else {
drivers/firmware/arm_scmi/common.h +1 -0
@@ -314,6 +314,7 @@ void shmem_fetch_notification(struct scmi_shared_mem __iomem *shmem,void shmem_clear_channel (struct scmi_shared_mem __iomem *shmem);bool shmem_poll_done (struct scmi_shared_mem __iomem *shmem,struct scmi_xfer *xfer); +bool shmem_channel_free (struct scmi_shared_mem __iomem *shmem);/* declarations for message passing transports */ struct scmi_msg_payld ;
drivers/firmware/arm_scmi/mailbox.c +14 -0
@@ -45,6 +45,20 @@ static void rx_callback(struct mbox_client *cl, void *m) {struct scmi_mailbox *smbox =client_to_scmi_mailbox (cl); +/* +* An A2P IRQ is NOT valid when received while the platform still has +* the ownership of the channel, because the platform at first releases +* the SMT channel and then sends the completion interrupt. +* +* This addresses a possible race condition in which a spurious IRQ from +* a previous timed-out reply which arrived late could be wrongly +* associated with the next pending transaction. +*/ +if (cl->knows_txdone && !shmem_channel_free (smbox->shmem)) { +dev_warn (smbox->cinfo->dev,"Ignoring spurious A2P IRQ !\n" ); +return ; + } +scmi_rx_callback (smbox->cinfo,shmem_read_header (smbox->shmem),NULL ); }
drivers/firmware/arm_scmi/perf.c +18 -5
@@ -347,8 +347,8 @@ process_response_opp(struct scmi_opp *opp, unsigned int loop_idx, }static inline void -process_response_opp_v4 (struct perf_dom_info *dom,struct scmi_opp *opp, -unsigned int loop_idx, +process_response_opp_v4 (struct device *dev,struct perf_dom_info *dom, +struct scmi_opp *opp,unsigned int loop_idx,const struct scmi_msg_resp_perf_describe_levels_v4 *r) { opp->perf =le32_to_cpu (r->opp[loop_idx].perf_val);
@@ -359,10 +359,23 @@ process_response_opp_v4(struct perf_dom_info *dom, struct scmi_opp *opp,/* Note that PERF v4 reports always five 32-bit words */ opp->indicative_freq =le32_to_cpu (r->opp[loop_idx].indicative_freq);if (dom->level_indexing_mode) { +int ret; + opp->level_index =le32_to_cpu (r->opp[loop_idx].level_index); -xa_store (&dom->opps_by_idx, opp->level_index, opp,GFP_KERNEL ); -xa_store (&dom->opps_by_lvl, opp->perf, opp,GFP_KERNEL ); + ret =xa_insert (&dom->opps_by_idx, opp->level_index, opp, +GFP_KERNEL ); +if (ret) +dev_warn (dev, +"Failed to add opps_by_idx at %d - ret:%d\n" , + opp->level_index, ret); + + ret =xa_insert (&dom->opps_by_lvl, opp->perf, opp,GFP_KERNEL ); +if (ret) +dev_warn (dev, +"Failed to add opps_by_lvl at %d - ret:%d\n" , + opp->perf, ret); +hash_add (dom->opps_by_freq, &opp->hash, opp->indicative_freq); } }
@@ -379,7 +392,7 @@ iter_perf_levels_process_response(const struct scmi_protocol_handle *ph,if (PROTOCOL_REV_MAJOR (p->version) <=0x3 )process_response_opp (opp, st->loop_idx, response);else -process_response_opp_v4 (p->perf_dom, opp, st->loop_idx, +process_response_opp_v4 (ph->dev, p->perf_dom, opp, st->loop_idx, response); p->perf_dom->opp_count++;
drivers/firmware/arm_scmi/raw_mode.c +8 -4
@@ -1111,7 +1111,6 @@ static int scmi_raw_mode_setup(struct scmi_raw_mode_info *raw,int i;for (i =0 ; i < num_chans; i++) { -void *xret;struct scmi_raw_queue *q; q =scmi_raw_queue_init (raw);
@@ -1120,13 +1119,12 @@ static int scmi_raw_mode_setup(struct scmi_raw_mode_info *raw, goto err_xa; } - xret =xa_store (&raw->chans_q, channels[i], q, + ret =xa_insert (&raw->chans_q, channels[i], q,GFP_KERNEL ); -if (xa_err (xret)) { +if (ret) {dev_err (dev,"Fail to allocate Raw queue 0x%02X\n" , channels[i]); - ret =xa_err (xret); goto err_xa; } }
@@ -1322,6 +1320,12 @@ void scmi_raw_message_report(void *r, struct scmi_xfer *xfer, dev = raw->handle->dev; q =scmi_raw_queue_select (raw, idx,SCMI_XFER_IS_CHAN_SET (xfer) ? chan_id :0 ); +if (!q) { +dev_warn (dev, +"RAW[%d] - NO queue for chan 0x%X. Dropping report.\n" , + idx, chan_id); +return ; + }/* * Grab the msg_q_lock upfront to avoid a possible race between
drivers/firmware/arm_scmi/shmem.c +6 -0
@@ -122,3 +122,9 @@ bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem, (SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR |SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE ); } + +bool shmem_channel_free (struct scmi_shared_mem __iomem *shmem) +{ +return (ioread32 (&shmem->channel_status) & +SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE ); +}
drivers/firmware/sysfb.c +1 -1
@@ -128,4 +128,4 @@ static __init int sysfb_init(void) }/* must execute after PCI subsystem for EFI quirks */ -subsys_initcall_sync (sysfb_init); +device_initcall (sysfb_init);
drivers/gpio/gpio-eic-sprd.c +28 -4
@@ -330,20 +330,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)switch (flow_type) {case IRQ_TYPE_LEVEL_HIGH :sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IEV ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IC ,1 );break ;case IRQ_TYPE_LEVEL_LOW :sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IEV ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IC ,1 );break ;case IRQ_TYPE_EDGE_RISING :case IRQ_TYPE_EDGE_FALLING :case IRQ_TYPE_EDGE_BOTH : state =sprd_eic_get (chip, offset); -if (state) +if (state) {sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IEV ,0 ); -else +sprd_eic_update (chip, offset, +SPRD_EIC_DBNC_IC ,1 ); + }else {sprd_eic_update (chip, offset,SPRD_EIC_DBNC_IEV ,1 ); +sprd_eic_update (chip, offset, +SPRD_EIC_DBNC_IC ,1 ); + }break ;default :return -ENOTSUPP ;
@@ -355,20 +362,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)switch (flow_type) {case IRQ_TYPE_LEVEL_HIGH :sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTPOL ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTCLR ,1 );break ;case IRQ_TYPE_LEVEL_LOW :sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTPOL ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTCLR ,1 );break ;case IRQ_TYPE_EDGE_RISING :case IRQ_TYPE_EDGE_FALLING :case IRQ_TYPE_EDGE_BOTH : state =sprd_eic_get (chip, offset); -if (state) +if (state) {sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTPOL ,0 ); -else +sprd_eic_update (chip, offset, +SPRD_EIC_LATCH_INTCLR ,1 ); + }else {sprd_eic_update (chip, offset,SPRD_EIC_LATCH_INTPOL ,1 ); +sprd_eic_update (chip, offset, +SPRD_EIC_LATCH_INTCLR ,1 ); + }break ;default :return -ENOTSUPP ;
@@ -382,29 +396,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTPOL ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_EDGE_FALLING :sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTPOL ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_EDGE_BOTH :sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTBOTH ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_LEVEL_HIGH :sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTMODE ,1 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTPOL ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_level_irq);break ;case IRQ_TYPE_LEVEL_LOW :sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTMODE ,1 );sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTPOL ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_ASYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_level_irq);break ;default :
@@ -417,29 +436,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTPOL ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_EDGE_FALLING :sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTPOL ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_EDGE_BOTH :sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTMODE ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTBOTH ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_edge_irq);break ;case IRQ_TYPE_LEVEL_HIGH :sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTMODE ,1 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTPOL ,1 ); +sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_level_irq);break ;case IRQ_TYPE_LEVEL_LOW :sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTBOTH ,0 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTMODE ,1 );sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTPOL ,0 ); +sprd_eic_update (chip, offset,SPRD_EIC_SYNC_INTCLR ,1 );irq_set_handler_locked (data, handle_level_irq);break ;default :
drivers/gpio/gpiolib-acpi.c +14 -0
@@ -1651,6 +1651,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = { .ignore_interrupt = "INT33FC:00@3", }, }, + { + /* + * Spurious wakeups from TP_ATTN# pin + * Found in BIOS 0.35 + * https://gitlab.freedesktop.org/drm/amd/-/issues/3073 + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GPD"), + DMI_MATCH(DMI_PRODUCT_NAME, "G1619-04"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_wake = "PNP0C50:00@8", + }, + }, {} /* Terminating entry */ };
drivers/gpu/drm/amd/amdgpu/amdgpu.h +1 -0
@@ -757,6 +757,7 @@ struct amdgpu_mqd_prop {uint64_t eop_gpu_addr;uint32_t hqd_pipe_priority;uint32_t hqd_queue_priority; +bool allow_tunneling;bool hqd_active; };
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +2 -4
@@ -684,10 +684,8 @@ int amdgpu_amdkfd_submit_ib(struct amdgpu_device *adev,void amdgpu_amdkfd_set_compute_idle (struct amdgpu_device *adev,bool idle) {enum amd_powergating_state state = idle ?AMD_PG_STATE_GATE :AMD_PG_STATE_UNGATE ; -/* Temporary workaround to fix issues observed in some -* compute applications when GFXOFF is enabled on GFX11. -*/ -if (IP_VERSION_MAJ (amdgpu_ip_version (adev,GC_HWIP ,0 )) ==11 ) { +if (IP_VERSION_MAJ (amdgpu_ip_version (adev,GC_HWIP ,0 )) ==11 && + ((adev->mes.kiq_version &AMDGPU_MES_VERSION_MASK ) <=64 )) {pr_debug ("GFXOFF is %s\n" , idle ?"enabled" :"disabled" );amdgpu_gfx_off_ctrl (adev, idle); } else if ((IP_VERSION_MAJ(amdgpu_ip_version(adev, GC_HWIP, 0)) == 9) &&
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +0 -2
@@ -1963,8 +1963,6 @@ static int amdgpu_discovery_set_gc_ip_blocks(struct amdgpu_device *adev)amdgpu_device_ip_block_add (adev, &gfx_v9_0_ip_block);break ;case IP_VERSION (9 ,4 ,3 ): -if (!amdgpu_exp_hw_support) -return -EINVAL ;amdgpu_device_ip_block_add (adev, &gfx_v9_4_3_ip_block);break ;case IP_VERSION (10 ,1 ,10 ):
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +2 -3
@@ -115,9 +115,10 @@* 3.54.0 - Add AMDGPU_CTX_QUERY2_FLAGS_RESET_IN_PROGRESS support * - 3.55.0 - Add AMDGPU_INFO_GPUVM_FAULT query * - 3.56.0 - Update IB start address and size alignment for decode and encode +* - 3.57.0 - Compute tunneling on GFX10+ */ #define KMS_DRIVER_MAJOR 3 -#define KMS_DRIVER_MINOR 56 +#define KMS_DRIVER_MINOR 57#define KMS_DRIVER_PATCHLEVEL 0/*
@@ -2265,8 +2266,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,pci_wake_from_d3 (pdev, TRUE); -pci_wake_from_d3 (pdev, TRUE); -/* * For runpm implemented via BACO, PMFW will handle the * timing for BACO in and out:
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +8 -0
@@ -121,6 +121,7 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)struct amdgpu_bo_param bp;dma_addr_t dma_addr;struct page *p; +unsigned long x;int ret;if (adev->gart.bo !=NULL )
@@ -130,6 +131,10 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)if (!p)return -ENOMEM ; +/* assign pages to this device */ +for (x =0 ; x < (1UL << order); x++) + p[x].mapping = adev->mman.bdev.dev_mapping; +/* If the hardware does not support UTCL2 snooping of the CPU caches * then set_memory_wc() could be used as a workaround to mark the pages * as write combine memory.
@@ -223,6 +228,7 @@ void amdgpu_gart_table_ram_free(struct amdgpu_device *adev)unsigned int order =get_order (adev->gart.table_size);struct sg_table *sg = adev->gart.bo->tbo.sg;struct page *p; +unsigned long x;int ret; ret =amdgpu_bo_reserve (adev->gart.bo, false);
@@ -234,6 +240,8 @@ void amdgpu_gart_table_ram_free(struct amdgpu_device *adev)sg_free_table (sg);kfree (sg); p =virt_to_page (adev->gart.ptr); +for (x =0 ; x < (1UL << order); x++) + p[x].mapping =NULL ;__free_pages (p, order); adev->gart.ptr =NULL ;
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +6 -4
@@ -642,6 +642,10 @@ static void amdgpu_ring_to_mqd_prop(struct amdgpu_ring *ring, struct amdgpu_mqd_prop *prop) {struct amdgpu_device *adev = ring->adev; +bool is_high_prio_compute = ring->funcs->type ==AMDGPU_RING_TYPE_COMPUTE && +amdgpu_gfx_is_high_priority_compute_queue (adev, ring); +bool is_high_prio_gfx = ring->funcs->type ==AMDGPU_RING_TYPE_GFX && +amdgpu_gfx_is_high_priority_graphics_queue (adev, ring);memset (prop,0 ,sizeof (*prop));
@@ -659,10 +663,8 @@ static void amdgpu_ring_to_mqd_prop(struct amdgpu_ring *ring,*/ prop->hqd_active = ring->funcs->type ==AMDGPU_RING_TYPE_KIQ ; -if ((ring->funcs->type ==AMDGPU_RING_TYPE_COMPUTE && -amdgpu_gfx_is_high_priority_compute_queue (adev, ring)) || - (ring->funcs->type ==AMDGPU_RING_TYPE_GFX && -amdgpu_gfx_is_high_priority_graphics_queue (adev, ring))) { + prop->allow_tunneling = is_high_prio_compute; +if (is_high_prio_compute || is_high_prio_gfx) { prop->hqd_pipe_priority =AMDGPU_GFX_PIPE_PRIO_HIGH ; prop->hqd_queue_priority =AMDGPU_GFX_QUEUE_PRIORITY_MAXIMUM ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +16 -1
@@ -221,8 +221,23 @@ static struct attribute *amdgpu_vram_mgr_attributes[] = { NULL }; +static umode_t amdgpu_vram_attrs_is_visible (struct kobject *kobj, +struct attribute *attr,int i) +{ +struct device *dev =kobj_to_dev (kobj); +struct drm_device *ddev =dev_get_drvdata (dev); +struct amdgpu_device *adev =drm_to_adev (ddev); + +if (attr == &dev_attr_mem_info_vram_vendor.attr && + !adev->gmc.vram_vendor) +return 0 ; + +return attr->mode; +} +const struct attribute_group amdgpu_vram_mgr_attr_group = { - .attrs = amdgpu_vram_mgr_attributes + .attrs = amdgpu_vram_mgr_attributes, + .is_visible = amdgpu_vram_attrs_is_visible };/**
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +9 -11
@@ -3996,16 +3996,13 @@ static int gfx_v10_0_init_microcode(struct amdgpu_device *adev)if (!amdgpu_sriov_vf (adev)) {snprintf (fw_name,sizeof (fw_name),"amdgpu/%s_rlc.bin" , ucode_prefix); - err =amdgpu_ucode_request (adev, &adev->gfx.rlc_fw, fw_name); -/* don't check this. There are apparently firmwares in the wild with -* incorrect size in the header -*/ -if (err == -ENODEV ) - goto out; + err =request_firmware (&adev->gfx.rlc_fw, fw_name, adev->dev);if (err) -dev_dbg (adev->dev, -"gfx10: amdgpu_ucode_request() failed \"%s\"\n" , - fw_name); + goto out; + +/* don't validate this firmware. There are apparently firmwares +* in the wild with incorrect size in the header +*/ rlc_hdr = (const struct rlc_firmware_header_v2_0 *)adev->gfx.rlc_fw->data; version_major =le16_to_cpu (rlc_hdr->header.header_version_major); version_minor =le16_to_cpu (rlc_hdr->header.header_version_minor);
@@ -6592,8 +6589,9 @@ static int gfx_v10_0_compute_mqd_init(struct amdgpu_device *adev, void *m,#ifdef __BIG_ENDIAN tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,ENDIAN_SWAP ,1 );#endif - tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,UNORD_DISPATCH ,0 ); - tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,TUNNEL_DISPATCH ,0 ); + tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,UNORD_DISPATCH ,1 ); + tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,TUNNEL_DISPATCH , + prop->allow_tunneling); tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,PRIV_STATE ,1 ); tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,KMD_QUEUE ,1 ); mqd->cp_hqd_pq_control = tmp;
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +7 -3
@@ -114,7 +114,7 @@ static const struct soc15_reg_golden golden_settings_gc_11_5_0[] = {SOC15_REG_GOLDEN_VALUE (GC ,0 , regGL2C_ADDR_MATCH_MASK,0xffffffff ,0xfffffff3 ),SOC15_REG_GOLDEN_VALUE (GC ,0 , regGL2C_CTRL,0xffffffff ,0xf37fff3f ),SOC15_REG_GOLDEN_VALUE (GC ,0 , regGL2C_CTRL3,0xfffffffb ,0x00f40188 ), -SOC15_REG_GOLDEN_VALUE (GC ,0 , regGL2C_CTRL4,0xf0ffffff ,0x8000b007 ), +SOC15_REG_GOLDEN_VALUE (GC ,0 , regGL2C_CTRL4,0xf0ffffff ,0x80009007 ),SOC15_REG_GOLDEN_VALUE (GC ,0 , regPA_CL_ENHANCE,0xf1ffffff ,0x00880007 ),SOC15_REG_GOLDEN_VALUE (GC ,0 , regPC_CONFIG_CNTL_1,0xffffffff ,0x00010000 ), SOC15_REG_GOLDEN_VALUE(GC, 0, regTA_CNTL_AUX, 0xf7f7ffff, 0x01030000),
@@ -3838,8 +3838,9 @@ static int gfx_v11_0_compute_mqd_init(struct amdgpu_device *adev, void *m, (order_base_2(prop->queue_size / 4) - 1)); tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,RPTR_BLOCK_SIZE , (order_base_2 (AMDGPU_GPU_PAGE_SIZE /4 ) -1 )); - tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,UNORD_DISPATCH ,0 ); - tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,TUNNEL_DISPATCH ,0 ); + tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,UNORD_DISPATCH ,1 ); + tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,TUNNEL_DISPATCH , + prop->allow_tunneling); tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,PRIV_STATE ,1 ); tmp =REG_SET_FIELD (tmp,CP_HQD_PQ_CONTROL ,KMD_QUEUE ,1 ); mqd->cp_hqd_pq_control = tmp;
@@ -6328,6 +6329,9 @@ static int gfx_v11_0_get_cu_info(struct amdgpu_device *adev,mutex_lock (&adev->grbm_idx_mutex);for (i =0 ; i < adev->gfx.config.max_shader_engines; i++) {for (j =0 ; j < adev->gfx.config.max_sh_per_se; j++) { + bitmap = i * adev->gfx.config.max_sh_per_se + j; +if (!((gfx_v11_0_get_sa_active_bitmap (adev) >> bitmap) &1 )) +continue ; mask =1 ; counter =0 ;gfx_v11_0_select_se_sh (adev, i, j,0xffffffff ,0 );
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +2 -1
@@ -1950,7 +1950,8 @@ static void gmc_v9_4_3_init_vram_info(struct amdgpu_device *adev)static const u32 regBIF_BIOS_SCRATCH_4 =0x50 ;u32 vram_info; -if (!amdgpu_sriov_vf (adev)) { +/* Only for dGPU, vendor informaton is reliable */ +if (!amdgpu_sriov_vf (adev) && !(adev->flags &AMD_IS_APU )) { vram_info =RREG32 (regBIF_BIOS_SCRATCH_4); adev->gmc.vram_vendor = vram_info &0xF ; }
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c +1 -0
@@ -170,6 +170,7 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; m->cp_hqd_pq_control |=ffs (q->queue_size /sizeof (unsigned int )) -1 -1 ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ;pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control); m->cp_hqd_pq_base_lo =lower_32_bits ((uint64_t )q->queue_address >>8 );
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c +1 -0
@@ -224,6 +224,7 @@ static void update_mqd(struct mqd_manager *mm, void *mqd, m->cp_hqd_pq_control =5 <<CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT ; m->cp_hqd_pq_control |=ffs (q->queue_size /sizeof (unsigned int )) -1 -1 ; + m->cp_hqd_pq_control |=CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK ;pr_debug ("cp_hqd_pq_control 0x%x\n" , m->cp_hqd_pq_control); m->cp_hqd_pq_base_lo =lower_32_bits ((uint64_t )q->queue_address >>8 );
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +6 -3
@@ -2656,6 +2656,7 @@ static int dm_suspend(void *handle)hpd_rx_irq_work_suspend (dm);dc_set_power_state (dm->dc,DC_ACPI_CM_POWER_STATE_D3 ); +dc_dmub_srv_set_power_state (dm->dc->ctx->dmub_srv,DC_ACPI_CM_POWER_STATE_D3 );return 0 ; }
@@ -2824,7 +2825,7 @@ static int dm_resume(void *handle)bool need_hotplug = false;if (dm->dc->caps.ips_support) { -dc_dmub_srv_exit_low_power_state (dm->dc); +dc_dmub_srv_apply_idle_power_optimizations (dm->dc, false); }if (amdgpu_in_reset (adev)) {
@@ -2851,6 +2852,7 @@ static int dm_resume(void *handle)if (r)DRM_ERROR ("DMUB interface failed to initialize: status=%d\n" , r); +dc_dmub_srv_set_power_state (dm->dc->ctx->dmub_srv,DC_ACPI_CM_POWER_STATE_D0 );dc_set_power_state (dm->dc,DC_ACPI_CM_POWER_STATE_D0 );dc_resume (dm->dc);
@@ -2901,6 +2903,7 @@ static int dm_resume(void *handle) }/* power on hardware */ +dc_dmub_srv_set_power_state (dm->dc->ctx->dmub_srv,DC_ACPI_CM_POWER_STATE_D0 );dc_set_power_state (dm->dc,DC_ACPI_CM_POWER_STATE_D0 );/* program HPD filter */
@@ -8768,7 +8771,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)if (new_con_state->crtc && new_con_state->crtc->state->active &&drm_atomic_crtc_needs_modeset (new_con_state->crtc->state)) { -dc_dmub_srv_exit_low_power_state (dm->dc); +dc_dmub_srv_apply_idle_power_optimizations (dm->dc, false);break ; } }
@@ -10617,7 +10620,7 @@ static bool dm_edid_parser_send_cea(struct amdgpu_display_manager *dm, input->cea_total_length = total_length;memcpy (input->payload, data, length); - res =dm_execute_dmub_cmd (dm->dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT_WITH_REPLY ); + res =dc_wake_and_execute_dmub_cmd (dm->dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT_WITH_REPLY );if (!res) {DRM_ERROR ("EDID CEA parser failed\n" );return false;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +5 -1
@@ -3647,12 +3647,16 @@ static int capabilities_show(struct seq_file *m, void *unused)bool mall_supported = dc->caps.mall_size_total;bool subvp_supported = dc->caps.subvp_fw_processing_delay_us;unsigned int mall_in_use = false; -unsigned int subvp_in_use = dc->cap_funcs.get_subvp_en (dc, dc->current_state); +unsigned int subvp_in_use = false; +struct hubbub *hubbub = dc->res_pool->hubbub;if (hubbub->funcs->get_mall_en) hubbub->funcs->get_mall_en (hubbub, &mall_in_use); +if (dc->cap_funcs.get_subvp_en) + subvp_in_use = dc->cap_funcs.get_subvp_en (dc, dc->current_state); +seq_printf (m,"mall supported: %s, enabled: %s\n" , mall_supported ?"yes" :"no" , mall_in_use ?"yes" :"no" ); seq_printf(m, "sub-viewport supported: %s, enabled: %s\n",
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +5 -0
@@ -965,6 +965,11 @@ int dm_helper_dmub_aux_transfer_sync( struct aux_payload *payload, enum aux_return_code_type *operation_result) { +if (!link->hpd_status) { + *operation_result =AUX_RET_ERROR_HPD_DISCON ; +return -1 ; + } +return amdgpu_dm_process_dmub_aux_transfer_sync (ctx, link->link_index, payload, operation_result); }
drivers/gpu/drm/amd/display/dc/bios/command_table2.c +6 -6
@@ -123,7 +123,7 @@ static void encoder_control_dmcub(sizeof (cmd.digx_encoder_control.header); cmd.digx_encoder_control.encoder_control.dig.stream_param = *dig; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result encoder_control_digx_v1_5(
@@ -259,7 +259,7 @@ static void transmitter_control_dmcub(sizeof (cmd.dig1_transmitter_control.header); cmd.dig1_transmitter_control.transmitter_control.dig = *dig; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result transmitter_control_v1_6(
@@ -321,7 +321,7 @@ static void transmitter_control_dmcub_v1_7(sizeof (cmd.dig1_transmitter_control.header); cmd.dig1_transmitter_control.transmitter_control.dig_v1_7 = *dig; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result transmitter_control_v1_7(
@@ -429,7 +429,7 @@ static void set_pixel_clock_dmcub(sizeof (cmd.set_pixel_clock.header); cmd.set_pixel_clock.pixel_clock.clk = *clk; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result set_pixel_clock_v7(
@@ -796,7 +796,7 @@ static void enable_disp_power_gating_dmcub(sizeof (cmd.enable_disp_power_gating.header); cmd.enable_disp_power_gating.power_gating.pwr = *pwr; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result enable_disp_power_gating_v2_1(
@@ -1006,7 +1006,7 @@ static void enable_lvtma_control_dmcub( pwrseq_instance; cmd.lvtma_control.data.bypass_panel_control_wait = bypass_panel_control_wait; -dm_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dmcub->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static enum bp_result enable_lvtma_control(
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c +1 -1
@@ -253,7 +253,7 @@ void dcn31_update_clocks(struct clk_mgr *clk_mgr_base, cmd.notify_clocks.clocks.dispclk_khz = clk_mgr_base->clks.dispclk_khz; cmd.notify_clocks.clocks.dppclk_khz = clk_mgr_base->clks.dppclk_khz; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); }static int get_vco_frequency_from_reg (struct clk_mgr_internal *clk_mgr)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c +10 -13
@@ -131,30 +131,27 @@ static int dcn314_get_active_display_cnt_wa(return display_count; } -static void dcn314_disable_otg_wa (struct clk_mgr *clk_mgr_base,struct dc_state *context,bool disable) +static void dcn314_disable_otg_wa (struct clk_mgr *clk_mgr_base,struct dc_state *context, +bool safe_to_lower,bool disable) {struct dc *dc = clk_mgr_base->ctx->dc;int i;for (i =0 ; i < dc->res_pool->pipe_count; ++i) { -struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i]; +struct pipe_ctx *pipe = safe_to_lower + ? &context->res_ctx.pipe_ctx[i] + : &dc->current_state->res_ctx.pipe_ctx[i];if (pipe->top_pipe || pipe->prev_odm_pipe)continue ;if (pipe->stream && (pipe->stream->dpms_off ||dc_is_virtual_signal (pipe->stream->signal))) { -struct stream_encoder *stream_enc = pipe->stream_res.stream_enc; -if (disable) { -if (stream_enc && stream_enc->funcs->disable_fifo) - pipe->stream_res.stream_enc->funcs->disable_fifo (stream_enc); +if (pipe->stream_res.tg && pipe->stream_res.tg->funcs->immediate_disable_crtc) + pipe->stream_res.tg->funcs->immediate_disable_crtc (pipe->stream_res.tg); - pipe->stream_res.tg->funcs->immediate_disable_crtc (pipe->stream_res.tg);reset_sync_context_for_pipe (dc, context, i); }else { pipe->stream_res.tg->funcs->enable_crtc (pipe->stream_res.tg); - -if (stream_enc && stream_enc->funcs->enable_fifo) - pipe->stream_res.stream_enc->funcs->enable_fifo (stream_enc); } } }
@@ -252,11 +249,11 @@ void dcn314_update_clocks(struct clk_mgr *clk_mgr_base, }if (should_set_clock (safe_to_lower, new_clocks->dispclk_khz, clk_mgr_base->clks.dispclk_khz)) { -dcn314_disable_otg_wa (clk_mgr_base, context, true); +dcn314_disable_otg_wa (clk_mgr_base, context, safe_to_lower, true); clk_mgr_base->clks.dispclk_khz = new_clocks->dispclk_khz;dcn314_smu_set_dispclk (clk_mgr, clk_mgr_base->clks.dispclk_khz); -dcn314_disable_otg_wa (clk_mgr_base, context, false); +dcn314_disable_otg_wa (clk_mgr_base, context, safe_to_lower, false); update_dispclk = true; }
@@ -284,7 +281,7 @@ void dcn314_update_clocks(struct clk_mgr *clk_mgr_base, cmd.notify_clocks.clocks.dispclk_khz = clk_mgr_base->clks.dispclk_khz; cmd.notify_clocks.clocks.dppclk_khz = clk_mgr_base->clks.dppclk_khz; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); }static int get_vco_frequency_from_reg (struct clk_mgr_internal *clk_mgr)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c +1 -1
@@ -232,7 +232,7 @@ static void dcn315_update_clocks(struct clk_mgr *clk_mgr_base, cmd.notify_clocks.clocks.dispclk_khz = clk_mgr_base->clks.dispclk_khz; cmd.notify_clocks.clocks.dppclk_khz = clk_mgr_base->clks.dppclk_khz; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static void dcn315_dump_clk_registers(struct clk_state_registers_and_bypass *regs_and_bypass,
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c +1 -1
@@ -239,7 +239,7 @@ static void dcn316_update_clocks(struct clk_mgr *clk_mgr_base, cmd.notify_clocks.clocks.dispclk_khz = clk_mgr_base->clks.dispclk_khz; cmd.notify_clocks.clocks.dppclk_khz = clk_mgr_base->clks.dppclk_khz; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); } static void dcn316_dump_clk_registers(struct clk_state_registers_and_bypass *regs_and_bypass,
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c +1 -1
@@ -349,7 +349,7 @@ void dcn35_update_clocks(struct clk_mgr *clk_mgr_base, cmd.notify_clocks.clocks.dispclk_khz = clk_mgr_base->clks.dispclk_khz; cmd.notify_clocks.clocks.dppclk_khz = clk_mgr_base->clks.dppclk_khz; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_WAIT ); }static int get_vco_frequency_from_reg (struct clk_mgr_internal *clk_mgr)
drivers/gpu/drm/amd/display/dc/core/dc.c +9 -7
@@ -519,7 +519,7 @@ dc_stream_forward_dmub_crc_window(struct dc_dmub_srv *dmub_srv, cmd.secure_display.roi_info.y_end = rect->y + rect->height; } -dm_execute_dmub_cmd (dmub_srv->ctx, &cmd,DM_DMUB_WAIT_TYPE_NO_WAIT ); +dc_wake_and_execute_dmub_cmd (dmub_srv->ctx, &cmd,DM_DMUB_WAIT_TYPE_NO_WAIT ); } static inline void
@@ -3386,7 +3386,7 @@ void dc_dmub_update_dirty_rect(struct dc *dc, update_dirty_rect->panel_inst = panel_inst; update_dirty_rect->pipe_idx = j; -dm_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_NO_WAIT ); +dc_wake_and_execute_dmub_cmd (dc->ctx, &cmd,DM_DMUB_WAIT_TYPE_NO_WAIT ); } } }
@@ -3626,7 +3626,7 @@ static void commit_planes_for_stream(struct dc *dc, top_pipe_to_program =resource_get_otg_master_for_stream ( &context->res_ctx, stream); - +ASSERT (top_pipe_to_program !=NULL );for (i =0 ; i < dc->res_pool->pipe_count; i++) {struct pipe_ctx *old_pipe = &dc->current_state->res_ctx.pipe_ctx[i];
@@ -4457,6 +4457,8 @@ static bool should_commit_minimal_transition_for_windowed_mpo_odm(struct dc *dc, cur_pipe =resource_get_otg_master_for_stream (&dc->current_state->res_ctx, stream); new_pipe =resource_get_otg_master_for_stream (&context->res_ctx, stream);
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +14 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c +150 -26
176 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h +57 -2
59 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dc_helper.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dmub_abm_lcd.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dmub_outbox.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c +13 -20
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +10 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_panel_cntl.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c +17 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn35/dcn35_optc.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c +1 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c +15 -15
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn21/dcn21_hwseq.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c +2 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/core_types.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/link_dpms.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +7 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/dmub_srv.h +21 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c +15 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/power/power_helpers.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +4 -10
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +52 -2
54 lines not on this page · raw message
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +9 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +52 -2
54 lines not on this page · raw message
drivers/gpu/drm/bridge/analogix/anx7625.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/analogix/anx7625.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/parade-ps8640.c +23 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/sii902x.c +29 -13
42 lines not on this page · raw message
drivers/gpu/drm/exynos/exynos5433_drm_decon.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_fimd.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_psr.c +12 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_fence.c +5 -23
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_fence.h +1 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c +2 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/virtio/virtgpu_plane.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/iio/adc/ad7091r-base.c +169 -0
169 lines not on this page · raw message
drivers/media/common/videobuf2/videobuf2-dma-sg.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/media/i2c/imx290.c +21 -21
42 lines not on this page · raw message
drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-cci.c +40 -12
52 lines not on this page · raw message
drivers/mmc/core/block.c +43 -3
46 lines not on this page · raw message
drivers/mmc/host/mmc_spi.c +5 -181
186 lines not on this page · raw message
drivers/mtd/nand/raw/nand_base.c +74 -13
87 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/engleder/tsnep_main.c +15 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +31 -16
47 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_txrx.c +23 -26
49 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_xsk.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_base.c +23 -14
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_txrx.c +9 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_txrx.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_txrx_lib.h +22 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_xsk.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_lib.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +26 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/fs_tt_redirect.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/params.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +15 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_mcast.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +12 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/debugfs.c +10 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/debugfs.h +2 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c +41 -41
82 lines not on this page · raw message
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h +16 -16
Lines of this file are not shown. View the raw message.
drivers/platform/x86/p2sb.c +139 -41
180 lines not on this page · raw message
drivers/s390/crypto/vfio_ap_ops.c +178 -91
269 lines not on this page · raw message
drivers/thermal/intel/intel_hfi.c +85 -21
106 lines not on this page · raw message
drivers/tty/serial/sc16is7xx.c +185 -168
353 lines not on this page · raw message
fs/afs/addr_list.c +69 -64
133 lines not on this page · raw message
fs/afs/dir.c +43 -27
70 lines not on this page · raw message
fs/afs/fs_operation.c +30 -24
54 lines not on this page · raw message
fs/afs/internal.h +61 -27
88 lines not on this page · raw message
fs/afs/rotate.c +160 -64
224 lines not on this page · raw message
fs/afs/rxrpc.c +40 -60
100 lines not on this page · raw message
fs/afs/server.c +13 -40
53 lines not on this page · raw message
fs/afs/vl_alias.c +4 -53
57 lines not on this page · raw message
fs/afs/vl_rotate.c +49 -49
98 lines not on this page · raw message
fs/afs/vlclient.c +65 -33
98 lines not on this page · raw message
fs/btrfs/extent-tree.c +39 -14
53 lines not on this page · raw message
fs/namei.c +37 -23
60 lines not on this page · raw message
fs/overlayfs/namei.c +27 -16
43 lines not on this page · raw message
fs/overlayfs/util.c +31 -22
53 lines not on this page · raw message
fs/smb/client/smb2pdu.c +68 -40
108 lines not on this page · raw message
kernel/async.c +63 -22
85 lines not on this page · raw message
net/core/filter.c +38 -6
44 lines not on this page · raw message
net/rxrpc/af_rxrpc.c +54 -8
62 lines not on this page · raw message
net/rxrpc/peer_object.c +37 -21
58 lines not on this page · raw message
tools/testing/selftests/drivers/net/bonding/bond_options.sh +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/bonding/settings +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh +9 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/hugepage-vmemmap.c +18 -11
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/rps_default_mask.sh +5 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/so_incoming_cpu.c +50 -18
68 lines not on this page · raw message
tools/testing/selftests/riscv/hwprobe/cbo.c +8 -10
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.