Linux 5.19.4
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.19.4 kernel.
All users of the 5.19 kernel series must upgrade.
The updated 5.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/sysctl/kernel.rst | 12 Documentation/atomic_bitops.txt | 2 Documentation/devicetree/bindings/arm/qcom.yaml | 18 Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml | 16 Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml | 4 Documentation/devicetree/bindings/gpio/gpio-zynq.yaml | 6 Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml | 28 Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 15 Documentation/devicetree/bindings/pci/qcom,pcie.yaml | 2 Documentation/devicetree/bindings/pinctrl/pinctrl-mt8186.yaml | 29 Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml | 58 - Documentation/devicetree/bindings/pinctrl/pinctrl-mt8195.yaml | 37 Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml | 11 Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml | 5 Documentation/devicetree/bindings/spi/spi-cadence.yaml | 7 Documentation/devicetree/bindings/spi/spi-zynqmp-qspi.yaml | 7 Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 1 Documentation/firmware-guide/acpi/apei/einj.rst | 2 Makefile | 8 arch/arm64/include/asm/kvm_host.h | 4 arch/arm64/kvm/arm.c | 3 arch/arm64/kvm/guest.c | 2 arch/arm64/kvm/sys_regs.c | 4 arch/csky/kernel/probes/kprobes.c | 4 arch/m68k/coldfire/device.c | 6 arch/mips/cavium-octeon/octeon-platform.c | 3 arch/mips/mm/tlbex.c | 4 arch/nios2/include/asm/entry.h | 3 arch/nios2/include/asm/ptrace.h | 2 arch/nios2/kernel/entry.S | 22 arch/nios2/kernel/signal.c | 3 arch/nios2/kernel/syscall_table.c | 1 arch/openrisc/include/asm/io.h | 2 arch/openrisc/mm/ioremap.c | 2 arch/powerpc/Makefile | 26 arch/powerpc/include/asm/nmi.h | 2 arch/powerpc/kernel/head_book3s_32.S | 4 arch/powerpc/kernel/pci-common.c | 16 arch/powerpc/kernel/prom.c | 7 arch/powerpc/kernel/watchdog.c | 21 arch/powerpc/kvm/book3s_hv_p9_entry.c | 13 arch/powerpc/mm/book3s32/mmu.c | 10 arch/powerpc/platforms/Kconfig.cputype | 21 arch/powerpc/platforms/powernv/pci-ioda.c | 2 arch/powerpc/platforms/pseries/mobility.c | 43 arch/riscv/boot/dts/canaan/k210.dtsi | 12 arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 24 arch/riscv/kernel/sys_riscv.c | 5 arch/riscv/kernel/traps.c | 4 arch/um/os-Linux/skas/process.c | 17 arch/x86/include/asm/ibt.h | 11 arch/x86/kernel/kprobes/core.c | 2 arch/x86/kvm/emulate.c | 3 arch/x86/mm/init_64.c | 2 block/blk-mq.c | 2 drivers/acpi/pci_mcfg.c | 3 drivers/acpi/pptt.c | 102 -- drivers/acpi/property.c | 8 drivers/ata/libata-eh.c | 1 drivers/atm/idt77252.c | 1 drivers/block/virtio_blk.c | 24 drivers/block/zram/zcomp.c | 11 drivers/clk/imx/clk-imx93.c | 2 drivers/clk/qcom/clk-alpha-pll.c | 2 drivers/clk/qcom/gcc-ipq8074.c | 1 drivers/clk/ti/clk-44xx.c | 210 ++-- drivers/clk/ti/clk-54xx.c | 160 +-- drivers/clk/ti/clkctrl.c | 4 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 11 drivers/dma/sprd-dma.c | 5 drivers/dma/tegra186-gpc-dma.c | 26 drivers/gpu/drm/amd/amdgpu/aldebaran.c | 45 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 3 drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 3 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 3 drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 3 drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 7 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c | 2 drivers/gpu/drm/bridge/lvds-codec.c | 2 drivers/gpu/drm/i915/gem/i915_gem_object.c | 16 drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 3 drivers/gpu/drm/i915/gem/i915_gem_pages.c | 25 drivers/gpu/drm/i915/gt/intel_gt.c | 77 + drivers/gpu/drm/i915/gt/intel_gt.h | 12 drivers/gpu/drm/i915/gt/intel_gt_pm.h | 3 drivers/gpu/drm/i915/gt/intel_gt_types.h | 18 drivers/gpu/drm/i915/gt/intel_migrate.c | 23 drivers/gpu/drm/i915/gt/intel_ppgtt.c | 8 drivers/gpu/drm/i915/i915_drv.h | 4 drivers/gpu/drm/i915/i915_vma.c | 33 drivers/gpu/drm/i915/i915_vma.h | 1 drivers/gpu/drm/i915/i915_vma_resource.c | 5 drivers/gpu/drm/i915/i915_vma_resource.h | 6 drivers/gpu/drm/imx/dcss/dcss-kms.c | 2 drivers/gpu/drm/meson/meson_drv.c | 5 drivers/gpu/drm/meson/meson_viu.c | 22 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 22 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 drivers/gpu/drm/ttm/ttm_bo.c | 2 drivers/hid/hid-multitouch.c | 13 drivers/hwtracing/coresight/coresight-etm4x.h | 3 drivers/i2c/busses/i2c-imx.c | 20 drivers/i2c/busses/i2c-qcom-geni.c | 5 drivers/infiniband/core/umem_dmabuf.c | 8 drivers/infiniband/hw/cxgb4/cm.c | 25 drivers/infiniband/hw/mlx5/main.c | 34 drivers/infiniband/sw/rxe/rxe_loc.h | 1 drivers/infiniband/sw/rxe/rxe_mr.c | 199 +--- drivers/infiniband/sw/rxe/rxe_mw.c | 6 drivers/infiniband/sw/rxe/rxe_param.h | 6 drivers/infiniband/sw/rxe/rxe_task.c | 16 drivers/infiniband/sw/rxe/rxe_verbs.c | 39 drivers/infiniband/sw/rxe/rxe_verbs.h | 21 drivers/infiniband/ulp/iser/iser_initiator.c | 7 drivers/input/keyboard/mt6779-keypad.c | 8 drivers/input/misc/iqs7222.c | 178 ++- drivers/input/touchscreen/exc3000.c | 7 drivers/iommu/io-pgtable-arm-v7s.c | 75 + drivers/irqchip/irq-tegra.c | 10 drivers/md/md.c | 1 drivers/md/raid5.c | 4 drivers/media/platform/qcom/venus/pm_helpers.c | 10 drivers/misc/cxl/irq.c | 1 drivers/misc/habanalabs/common/sysfs.c | 2 drivers/misc/habanalabs/gaudi/gaudi.c | 50 - drivers/misc/habanalabs/goya/goya_hwmgr.c | 2 drivers/misc/uacce/uacce.c | 133 +- drivers/mmc/host/meson-gx-mmc.c | 6 drivers/mmc/host/pxamci.c | 4 drivers/mmc/host/renesas_sdhi.h | 1 drivers/mmc/host/renesas_sdhi_core.c | 34 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 6 drivers/mmc/host/tmio_mmc.c | 2 drivers/mmc/host/tmio_mmc.h | 6 drivers/mmc/host/tmio_mmc_core.c | 28 drivers/net/can/spi/mcp251x.c | 18 drivers/net/can/usb/ems_usb.c | 2 drivers/net/dsa/microchip/ksz9477.c | 3 drivers/net/dsa/mv88e6060.c | 3 drivers/net/dsa/ocelot/felix.c | 3 drivers/net/dsa/ocelot/felix_vsc9959.c | 491 +++++++--- drivers/net/dsa/ocelot/seville_vsc9953.c | 484 +++++++-- drivers/net/dsa/sja1105/sja1105_devlink.c | 2 drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 21 drivers/net/ethernet/broadcom/bgmac.c | 2 drivers/net/ethernet/broadcom/genet/bcmmii.c | 3 drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 2 drivers/net/ethernet/engleder/tsnep_main.c | 8 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 drivers/net/ethernet/freescale/fec_ptp.c | 6 drivers/net/ethernet/intel/i40e/i40e_main.c | 4 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 8 drivers/net/ethernet/intel/iavf/iavf_adminq.c | 15 drivers/net/ethernet/intel/iavf/iavf_main.c | 22 drivers/net/ethernet/intel/ice/ice_fltr.c | 8 drivers/net/ethernet/intel/ice/ice_lib.c | 8 drivers/net/ethernet/intel/ice/ice_main.c | 12 drivers/net/ethernet/intel/ice/ice_switch.c | 9 drivers/net/ethernet/intel/ice/ice_vf_lib.c | 15 drivers/net/ethernet/intel/ice/ice_virtchnl.c | 57 + drivers/net/ethernet/intel/igb/igb.h | 2 drivers/net/ethernet/intel/igb/igb_main.c | 12 drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 6 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 15 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 3 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 19 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 1 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 4 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 drivers/net/ethernet/moxa/moxart_ether.c | 20 drivers/net/ethernet/mscc/ocelot.c | 51 - drivers/net/ethernet/mscc/ocelot_net.c | 55 - drivers/net/ethernet/mscc/ocelot_vsc7514.c | 468 +++++++-- drivers/net/ethernet/mscc/vsc7514_regs.c | 26 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 2 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 1 drivers/net/geneve.c | 15 drivers/net/phy/phy-c45.c | 34 drivers/net/phy/phy_device.c | 6 drivers/net/plip/plip.c | 2 drivers/net/tap.c | 20 drivers/net/virtio_net.c | 9 drivers/net/vxlan/vxlan_core.c | 2 drivers/ntb/test/ntb_tool.c | 8 drivers/nvme/host/fc.c | 3 drivers/nvme/target/tcp.c | 3 drivers/of/overlay.c | 11 drivers/pci/controller/pci-aardvark.c | 33 drivers/pci/quirks.c | 3 drivers/phy/samsung/phy-exynos-pcie.c | 25 drivers/pinctrl/intel/pinctrl-intel.c | 14 drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 drivers/pinctrl/pinctrl-amd.c | 11 drivers/pinctrl/qcom/pinctrl-msm8916.c | 4 drivers/pinctrl/qcom/pinctrl-sm8250.c | 2 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 2 drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c | 1 drivers/pinctrl/sunxi/pinctrl-sunxi.c | 7 drivers/platform/chrome/cros_ec_proto.c | 8 drivers/rtc/rtc-spear.c | 2 drivers/s390/crypto/ap_bus.c | 3 drivers/s390/crypto/ap_bus.h | 4 drivers/scsi/lpfc/lpfc_debugfs.c | 20 drivers/scsi/lpfc/lpfc_sli.c | 4 drivers/scsi/scsi_transport_iscsi.c | 2 drivers/spi/spi-meson-spicc.c | 129 ++ drivers/staging/r8188eu/core/rtw_cmd.c | 15 drivers/staging/r8188eu/core/rtw_efuse.c | 33 drivers/staging/r8188eu/core/rtw_fw.c | 72 + drivers/staging/r8188eu/core/rtw_led.c | 16 drivers/staging/r8188eu/core/rtw_mlme_ext.c | 62 + drivers/staging/r8188eu/core/rtw_pwrctrl.c | 9 drivers/staging/r8188eu/core/rtw_wlan_util.c | 20 drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c | 21 drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 21 drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 9 drivers/staging/r8188eu/hal/hal_com.c | 27 drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 37 drivers/staging/r8188eu/hal/rtl8188e_dm.c | 6 drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 136 ++ drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 30 drivers/staging/r8188eu/hal/usb_halinit.c | 251 ++++- drivers/staging/r8188eu/hal/usb_ops_linux.c | 33 drivers/staging/r8188eu/include/rtw_io.h | 6 drivers/staging/r8188eu/os_dep/ioctl_linux.c | 47 drivers/staging/r8188eu/os_dep/os_intfs.c | 19 drivers/thunderbolt/tmu.c | 13 drivers/tty/serial/ucc_uart.c | 2 drivers/ufs/core/ufshcd.c | 11 drivers/ufs/host/ufs-exynos.c | 17 drivers/ufs/host/ufs-mediatek.c | 60 + drivers/usb/cdns3/cdns3-gadget.c | 2 drivers/usb/dwc2/gadget.c | 3 drivers/usb/gadget/function/uvc_queue.c | 17 drivers/usb/gadget/function/uvc_video.c | 2 drivers/usb/gadget/legacy/inode.c | 1 drivers/usb/host/ohci-ppc-of.c | 1 drivers/usb/renesas_usbhs/rza.c | 4 drivers/vdpa/vdpa_sim/vdpa_sim.c | 4 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 6 drivers/vfio/vfio.c | 1 drivers/video/fbdev/i740fb.c | 9 drivers/virt/vboxguest/vboxguest_linux.c | 9 drivers/virtio/Kconfig | 3 drivers/xen/xenbus/xenbus_dev_frontend.c | 4 fs/btrfs/block-group.c | 4 fs/btrfs/relocation.c | 7 fs/btrfs/tree-log.c | 8 fs/ceph/caps.c | 27 fs/ceph/mds_client.c | 7 fs/ceph/mds_client.h | 6 fs/cifs/misc.c | 6 fs/cifs/smb2ops.c | 5 fs/ext4/mballoc.c | 21 fs/ext4/namei.c | 7 fs/ext4/resize.c | 10 fs/f2fs/f2fs.h | 6 fs/f2fs/file.c | 32 fs/f2fs/node.c | 6 fs/f2fs/segment.c | 17 fs/fscache/cookie.c | 7 fs/nfs/nfs4idmap.c | 46 fs/nfs/nfs4proc.c | 20 fs/ntfs3/fslog.c | 2 fs/ntfs3/fsntfs.c | 7 fs/ntfs3/index.c | 2 fs/ntfs3/inode.c | 1 fs/ntfs3/super.c | 8 fs/ntfs3/xattr.c | 22 fs/overlayfs/super.c | 7 include/asm-generic/bitops/atomic.h | 6 include/linux/bpfptr.h | 8 include/linux/io-pgtable.h | 15 include/linux/nmi.h | 2 include/linux/sunrpc/xdr.h | 4 include/linux/sunrpc/xprt.h | 3 include/linux/uacce.h | 6 include/linux/usb/typec_mux.h | 44 include/net/mptcp.h | 4 include/net/netns/conntrack.h | 2 include/soc/mscc/ocelot.h | 113 ++ include/sound/control.h | 2 include/sound/core.h | 8 include/sound/pcm.h | 2 include/uapi/linux/atm_zatm.h | 47 include/uapi/linux/f2fs.h | 2 include/ufs/ufshcd.h | 12 kernel/bpf/arraymap.c | 6 kernel/bpf/hashtab.c | 8 kernel/bpf/syscall.c | 20 kernel/trace/trace_eprobe.c | 91 + kernel/trace/trace_event_perf.c | 7 kernel/trace/trace_events.c | 1 kernel/trace/trace_probe.c | 29 kernel/watchdog.c | 21 lib/list_debug.c | 12 net/can/j1939/socket.c | 5 net/can/j1939/transport.c | 8 net/core/bpf_sk_storage.c | 12 net/core/devlink.c | 4 net/core/gen_stats.c | 2 net/core/rtnetlink.c | 1 net/core/sock_map.c | 20 net/dsa/port.c | 7 net/ipv6/ip6_output.c | 3 net/ipv6/ndisc.c | 3 net/mptcp/protocol.c | 47 net/mptcp/protocol.h | 13 net/mptcp/subflow.c | 3 net/netfilter/nf_conntrack_ftp.c | 24 net/netfilter/nf_conntrack_h323_main.c | 10 net/netfilter/nf_conntrack_irc.c | 12 net/netfilter/nf_conntrack_sane.c | 68 - net/netfilter/nf_tables_api.c | 74 + net/netfilter/nf_tables_core.c | 21 net/netfilter/nfnetlink.c | 83 + net/netlink/genetlink.c | 6 net/netlink/policy.c | 14 net/qrtr/mhi.c | 12 net/rds/ib_recv.c | 1 net/sunrpc/auth.c | 2 net/sunrpc/backchannel_rqst.c | 14 net/sunrpc/clnt.c | 1 net/sunrpc/sysfs.c | 6 net/sunrpc/xprt.c | 27 net/sunrpc/xprtsock.c | 12 net/vmw_vsock/af_vsock.c | 10 scripts/Makefile.gcc-plugins | 2 scripts/dummy-tools/gcc | 8 scripts/mod/modpost.c | 4 scripts/module.lds.S | 2 security/apparmor/apparmorfs.c | 2 security/apparmor/audit.c | 2 security/apparmor/domain.c | 2 security/apparmor/include/lib.h | 5 security/apparmor/include/policy.h | 2 security/apparmor/label.c | 13 security/apparmor/mount.c | 8 security/apparmor/policy_unpack.c | 12 sound/core/control.c | 7 sound/core/info.c | 6 sound/core/misc.c | 94 + sound/core/pcm.c | 1 sound/core/pcm_lib.c | 2 sound/core/pcm_native.c | 2 sound/core/timer.c | 11 sound/pci/hda/hda_codec.c | 14 sound/pci/hda/patch_realtek.c | 3 sound/soc/codecs/lpass-va-macro.c | 11 sound/soc/codecs/nau8821.c | 10 sound/soc/codecs/tas2770.c | 98 - sound/soc/codecs/tas2770.h | 5 sound/soc/codecs/tlv320aic32x4.c | 9 sound/soc/intel/avs/core.c | 1 sound/soc/intel/avs/pcm.c | 4 sound/soc/intel/boards/sof_es8336.c | 35 sound/soc/intel/boards/sof_nau8825.c | 10 sound/soc/qcom/qdsp6/q6apm-dai.c | 6 sound/soc/sh/rcar/ssiu.c | 2 sound/soc/soc-pcm.c | 3 sound/soc/sof/debug.c | 6 sound/soc/sof/intel/cnl.c | 37 sound/soc/sof/intel/hda-ipc.c | 39 sound/soc/sof/intel/hda.c | 9 sound/soc/sof/sof-client-probes.c | 4 sound/usb/card.c | 8 sound/usb/mixer_maps.c | 34 tools/build/feature/test-libcrypto.c | 15 tools/lib/bpf/skel_internal.h | 4 tools/objtool/check.c | 3 tools/perf/tests/switch-tracking.c | 18 tools/perf/util/parse-events.c | 14 tools/perf/util/probe-event.c | 6 tools/testing/cxl/test/cxl.c | 1 tools/testing/cxl/test/mock.c | 8 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 1 tools/testing/selftests/net/forwarding/custom_multipath_hash.sh | 24 tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh | 24 tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh | 24 tools/testing/selftests/net/mptcp/mptcp_connect.c | 26 tools/tracing/rtla/Makefile | 4 tools/vm/slabinfo.c | 32 virt/kvm/kvm_main.c | 14 388 files changed, 5446 insertions(+), 2430 deletions(-)
Aaron Lu (1):
x86/mm: Use proper mask when setting PUD mapping
Adrian Hunter (2):
perf parse-events: Fix segfault when event parser gets an error perf tests: Fix Track with sched_switch test for hybrid case
Akhil R (1):
dmaengine: tegra: Add terminate() for Tegra234
Al Viro (6):
nios2: page fault et.al. are *not* restartable syscalls...
nios2: don't leave NULLs in sys_call_table[]
nios2: traced syscall does need to check the syscall number
nios2: fix syscall restart checks
nios2: restarts apply only to the first sigframe we build...
nios2: add force_successful_syscall_return()
Alan Brady (1):
i40e: Fix to stop tx_timeout recovery if GLOBR fails
Alex Deucher (1):
drm/amdgpu: Only disable prefer_shadow on hawaii
Alexei Starovoitov (1):
bpf: Disallow bpf programs call prog_run command.
Alexey Kardashevskiy (1):
powerpc/ioda/iommu/debugfs: Generate unique debugfs entries
Allen-KH Cheng (1):
dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp
Amadeusz Sławiński (2):
ALSA: info: Fix llseek return value when using callback
ASoC: Intel: avs: Set max DMA segment size
Amelie Delaunay (1):
usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch
Amit Cohen (1):
mlxsw: spectrum: Clear PTP configuration after unregistering the netdevice
Andrew Donnellan (1):
gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
Andrey Turkin (2):
ASoC: Intel: sof_es8336: Fix GPIO quirks set via module option
ASoC: Intel: sof_es8336: ignore GpioInt when looking for speaker/headset GPIO lines
Andy Shevchenko (1):
pinctrl: intel: Check against matching data instead of ACPI companion
AngeloGioacchino Del Regno (2):
dt-bindings: pinctrl: mt8195: Fix name for mediatek,rsel-resistance-in-si-unit
dt-bindings: pinctrl: mt8195: Add and use drive-strength-microamp
Arun Ramadoss (1):
net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
Arunpravin Paneer Selvam (1):
drm/ttm: Fix dummy res NULL ptr deref bug
Aurabindo Pillai (1):
drm/amd/display: Check correct bounds for stream encoder instances for DCN303
Basavaraj Natikar (1):
pinctrl: amd: Don't save/restore interrupt status and wake status bits
Ben Dooks (2):
dmaengine: dw-axi-dmac: do not print NULL LLI during error
dmaengine: dw-axi-dmac: ignore interrupt if no descriptor
Ben Hutchings (1):
tools/rtla: Fix command symlinks
Benjamin Mikailenko (2):
ice: Fix VSI rebuild WARN_ON check for VF
ice: Ignore error message when setting same promiscuous mode
Bob Pearson (1):
RDMA/rxe: Limit the number of calls to each tasklet
Bryan O'Donoghue (1):
dt-bindings: opp: opp-v2-kryo-cpu: Fix example binding checks
Celeste Liu (1):
riscv: mmap with PROT_WRITE but no PROT_READ is invalid
Cezar Bulinaru (1):
net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null
Cezary Rojewski (1):
ALSA: hda: Fix page fault in snd_hda_codec_shutdown()
Chanho Park (1):
scsi: ufs: ufs-exynos: Change ufs phy control sequence
Chao Yu (2):
f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
f2fs: fix to do sanity check on segment type in build_sit_entries()
Chen Lin (1):
dpaa2-eth: trace the allocated address instead of page struct
Chia-Lin Kao (AceLan) (1):
net: atlantic: fix aq_vec index out of range error
Chris Wilson (5):
drm/i915/gem: Remove shared locking on freeing objects drm/i915/gt: Ignore TLB invalidations on idle engines drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations drm/i915/gt: Skip TLB invalidations once wedged drm/i915/gt: Batch TLB invalidations
Christoffer Sandberg (1):
ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU
Christoph Hellwig (1):
nvme-fc: fix the fc_appid_store return value
Christophe JAILLET (6):
mmc: pxamci: Fix another error handling path in pxamci_probe()
mmc: pxamci: Fix an error handling path in pxamci_probe()
mmc: meson-gx: Fix an error handling path in meson_mmc_probe()
perf probe: Fix an error handling path in 'parse_perf_probe_command()'
stmmac: intel: Add a missing clk_disable_unprepare() call in intel_eth_pci_remove()
cxl: Fix a memory leak in an error handling path
Christophe Leroy (2):
powerpc/32: Set an IBAT covering up to _einittext during init powerpc/32: Don't always pass -mcpu=powerpc to the compiler
Chuck Lever (1):
SUNRPC: Fix xdr_encode_bool()
Conor Dooley (2):
riscv: dts: sifive: Add fu740 topology information
riscv: dts: canaan: Add k210 topology information
Csókás Bence (1):
fec: Fix timer capture timing in fec_ptp_enable_pps()
Daeho Jeong (1):
f2fs: revive F2FS_IOC_ABORT_VOLATILE_WRITE
Dafna Hirschfeld (1):
habanalabs: add terminating NULL to attrs arrays
Damien Le Moal (1):
ata: libata-eh: Add missing command name
Dan Aloni (1):
sunrpc: fix expiry of auth creds
Dan Carpenter (4):
NTB: ntb_tool: uninitialized heap data in tool_fn_write() xen/xenbus: fix return type in xenbus_file_read() fs/ntfs3: Don't clear upper bits accidentally in log_replay() fs/ntfs3: uninitialized variable in ntfs_set_acl_ex()
Dan Williams (2):
tools/testing/cxl: Fix decoder default state tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention
Dmitry Baryshkov (1):
dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources
Duoming Zhou (1):
atm: idt77252: fix use-after-free bugs caused by tst_timer
Fabiano Rosas (1):
KVM: PPC: Book3S HV: Fix "rm_exit" entry in debugfs timings
Fedor Pchelkin (2):
can: j1939: j1939_session_destroy(): fix memory leak of skbs
can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
Filipe Manana (2):
btrfs: fix lost error handling when looking up extended ref on log replay
btrfs: fix warning during log replay when bumping inode link count
Florian Fainelli (2):
net: phy: Warn about incorrect mdio_bus_phy_resume() state
net: bcmgenet: Indicate MAC is in charge of PHY PM
Florian Westphal (9):
netfilter: nf_tables: fix crash when nf_trace is enabled
selftests: mptcp: make sendfile selftest work
plip: avoid rcu debug splat
netfilter: nfnetlink: re-enable conntrack expectation events
netfilter: nf_ct_sane: remove pseudo skb linearization
netfilter: nf_ct_h323: cap packet size at 64k
netfilter: nf_ct_ftp: prefer skb_linearize
netfilter: nf_ct_irc: cap packet search space to 4k
netfilter: nf_tables: fix scheduling-while-atomic splat
Frank Li (1):
usb: cdns3 fix use-after-free at workaround 2
Frieder Schrempf (1):
regulator: pca9450: Remove restrictions for regulator-name
Geert Uytterhoeven (1):
of: overlay: Move devicetree_corrupt() check up
Gerhard Engleder (1):
tsnep: Fix tsnep_tx_unmap() error path usage
Gil Fine (1):
thunderbolt: Change downstream router's TMU rate in both TMU uni/bidir mode
Greg Kroah-Hartman (1):
Linux 5.19.4
Grzegorz Siwik (3):
ice: Fix double VLAN error when entering promisc mode
ice: Ignore EEXIST when setting promisc mode
ice: Fix clearing of promisc mode with bridge over bond
Guenter Roeck (1):
lib/list_debug.c: Detect uninitialized lists
Harald Freudenberger (1):
s390/ap: fix crash on older machines based on QCI info missing
Harman Kalra (1):
octeontx2-af: suppress external profile loading warning
Hector Martin (1):
locking/atomic: Make test_and_*_bit() ordered on failure
Helge Deller (1):
modules: Ensure natural alignment for .altinstructions and __bug_table sections
Hou Tao (5):
bpf: Acquire map uref in .init_seq_private for array map iterator
bpf: Acquire map uref in .init_seq_private for hash map iterator
bpf: Acquire map uref in .init_seq_private for sock local storage map iterator
bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator
bpf: Check the validity of max_rdwr_access for sock local storage map iterator
Huacai Chen (1):
PCI/ACPI: Guard ARM64-specific mcfg_quirks
Ido Schimmel (2):
devlink: Fix use-after-free after a failed reload
selftests: forwarding: Fix failing tests with old libnet
Ivan Vecera (1):
iavf: Fix deadlock in initialization
Jacky Bai (1):
clk: imx93: Correct the edma1's parent clock
Jakub Kicinski (2):
net: atm: bring back zatm uAPI
net: genl: fix error path memory leak in policy dumping
James Smart (2):
scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
scsi: lpfc: Fix possible memory leak when failing to issue CMF WQE
Jason A. Donenfeld (1):
um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
Jason Gunthorpe (1):
RDMA: Handle the return code from dma_resv_wait_timeout() properly
Jean-Philippe Brucker (1):
uacce: Handle parent device removal or parent driver module rmmod
Jeff LaBundy (9):
Input: iqs7222 - correct slider event disable logic
Input: iqs7222 - fortify slider event reporting
Input: iqs7222 - protect volatile registers
Input: iqs7222 - acknowledge reset before writing registers
Input: iqs7222 - handle reset during ATI
Input: iqs7222 - remove support for RF filter
dt-bindings: input: iqs7222: Remove support for RF filter
dt-bindings: input: iqs7222: Correct bottom speed step size
dt-bindings: input: iqs7222: Extend slider-mapped GPIO to IQS7222C
Jeff Layton (2):
ceph: don't leak snap_rwsem in handle_cap_grant
fscache: don't leak cookie access refs if invalidation is in progress or failed
Jianhua Lu (1):
pinctrl: qcom: sm8250: Fix PDC map
Jinghao Jia (1):
BPF: Fix potential bad pointer dereference in bpf_sys_bpf()
Jiri Olsa (1):
mptcp, btf: Add struct mptcp_sock definition when CONFIG_MPTCP is disabled
Johan Hovold (1):
dt-bindings: PCI: qcom: Fix reset conditional
John Johansen (5):
apparmor: fix quiet_denied for file rules
apparmor: fix absroot causing audited secids to begin with =
apparmor: Fix failed mount permission check error message
apparmor: fix setting unconfined mode on a loaded profile
apparmor: fix overlapping attachment computation
Josef Bacik (1):
btrfs: reset RO counter on block group if we fail to relocate
Josh Poimboeuf (2):
x86/ibt, objtool: Add IBT_NOSEAL()
x86/kvm: Fix "missing ENDBR" BUG for fastop functions
Jozef Martiniak (1):
gadgetfs: ep_io - wait until IRQ finishes
Kai-Heng Feng (1):
ALSA: hda/realtek: Enable speaker and mute LEDs for HP laptops
Karol Herbst (1):
drm/nouveau: recognise GA103
Kiselev, Oleg (1):
ext4: avoid resizing to a partial cluster size
Konstantin Komarov (3):
fs/ntfs3: Fix double free on remount fs/ntfs3: Do not change mode if ntfs_set_ea failed fs/ntfs3: Fix missing i_op in ntfs_read_mft
Krzysztof Kozlowski (7):
dt-bindings: arm: qcom: fix Alcatel OneTouch Idol 3 compatibles
dt-bindings: arm: qcom: fix Longcheer L8150 compatibles
dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
dt-bindings: arm: qcom: fix MSM8994 boards compatibles
spi: dt-bindings: cadence: add missing 'required'
spi: dt-bindings: zynqmp-qspi: add missing 'required'
spi: dt-bindings: qcom,spi-geni-qcom: allow three interconnects
Kumar Kartikeya Dwivedi (1):
bpf: Don't reinit map value in prealloc_lru_pop
Kuninori Morimoto (1):
ASoC: rsnd: care default case on rsnd_ssiu_busif_err_irq_ctrl()
Lad Prabhakar (1):
pinctrl: renesas: rzg2l: Return -EINVAL for pins which have input disabled
Laurent Dufour (3):
watchdog: export lockup_detector_reconfigure powerpc/watchdog: introduce a NMI watchdog's factor powerpc/pseries/mobility: set NMI watchdog factor during an LPM
Laurentiu Palcu (1):
drm/imx/dcss: get rid of HPD warning message
Li Zhijian (1):
Revert "RDMA/rxe: Create duplicate mapping tables for FMRs"
Liang He (5):
drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
usb: host: ohci-ppc-of: Fix refcount leak bug
usb: renesas: Fix refcount leak bug
tty: serial: Fix refcount leak bug in ucc_uart.c
mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
Liao Chang (1):
csky/kprobe: reclaim insn_slot on kprobe unregistration
Lijo Lazar (1):
drm/amdgpu: Avoid another list of reset devices
Likun Gao (1):
drm/amdgpu: change vram width algorithm for vram_info v3_0
Lin Ma (1):
igb: Add lock to avoid data race
Logan Gunthorpe (2):
md: Notify sysfs sync_completed in md_reap_sync_thread() md/raid5: Make logic blocking check consistent with logic that blocks
Lukas Czerner (1):
ext4: block range must be validated before use in ext4_mb_clear_bb()
Luís Henriques (1):
ceph: use correct index when encoding client supported features
Marc Kleine-Budde (1):
can: ems_usb: fix clang's -Wunaligned-access warning
Marek Szyprowski (1):
phy: samsung: phy-exynos-pcie: sanitize init/power_on callbacks
Marek Vasut (1):
drm/bridge: lvds-codec: Fix error checking of drm_of_lvds_get_data_mapping()
Mark Bloch (1):
RDMA/mlx5: Use the proper number of ports
Mark Brown (1):
ASoC: nau8821: Don't unconditionally free interrupt
Martin Povišer (4):
ASoC: tas2770: Set correct FSYNC polarity
ASoC: tas2770: Allow mono streams
ASoC: tas2770: Drop conflicting set_bias_level power setting
ASoC: tas2770: Fix handling of mute/unmute
Masahiro Yamada (2):
modpost: fix module versioning when a symbol lacks valid CRC
kbuild: fix the modules order between drivers and libs
Matthew Auld (1):
drm/i915/ttm: don't leak the ccs state
Matthias May (5):
geneve: do not use RT_TOS for IPv6 flowlabel
vxlan: do not use RT_TOS for IPv6 flowlabel
mlx5: do not use RT_TOS for IPv6 flowlabel
ipv6: do not use RT_TOS for IPv6 flowlabel
geneve: fix TOS inheriting for ipv4
Mattijs Korpershoek (1):
Input: mt6779-keypad - match hardware matrix organization
Mauro Carvalho Chehab (1):
drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb()
Maxim Kochetkov (1):
net: qrtr: start MHI channel after endpoit creation
Maíra Canal (1):
drm/amdgpu: Fix use-after-free on amdgpu_bo_list mutex
Miaoqian Lin (2):
pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
Input: exc3000 - fix return value check of wait_for_completion_timeout
Michael Ellerman (1):
powerpc/pci: Fix get_phb_number() locking
Michael Grzeschik (2):
usb: gadget: uvc: calculate the number of request depending on framesize
usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info
Michael S. Tsirkin (2):
virtio: VIRTIO_HARDEN_NOTIFICATION is broken
virtio_net: fix endian-ness for RSS
Michal Jaron (1):
ice: Fix call trace with null VSI during VF reset
Michal Simek (1):
dt-bindings: gpio: zynq: Add missing compatible strings
Mike Christie (1):
scsi: iscsi: Fix HW conn removal use after free
Miklos Szeredi (1):
ovl: warn if trusted xattr creation fails
Mikulas Patocka (1):
rds: add missing barrier to release_refill
Mohan Kumar (1):
ALSA: hda: Fix crash due to jack poll in suspend
Nadav Amit (1):
x86/kprobes: Fix JNG/JNLE emulation
Nathan Chancellor (1):
MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
Naveen Mamindlapalli (1):
octeontx2-pf: Fix NIX_AF_TL3_TL2X_LINKX_CFG register configuration
Neil Armstrong (1):
spi: meson-spicc: add local pow2 clock ops to preserve rate between messages
Nick Desaulniers (1):
coresight: etm4x: avoid build failure with unrolled loops
Nikita Travkin (1):
pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
Nícolas F. R. A. Prado (3):
dt-bindings: usb: mtk-xhci: Allow wakeup interrupt-names to be optional
dt-bindings: pinctrl: mt8192: Add drive-strength-microamp
dt-bindings: pinctrl: mt8192: Use generic bias instead of pull-*-adv
Oded Gabbay (1):
habanalabs/gaudi: mask constant value before cast
Ofir Bitton (1):
habanalabs/gaudi: fix shift out of bounds
Oleksij Rempel (1):
net: phy: c45 baset1: do not skip aneg configuration if clock role is not specified
Oliver Upton (2):
KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems
KVM: arm64: Reject 32bit user PSTATE on asymmetric systems
Ondrej Mosnacek (1):
kbuild: dummy-tools: avoid tmpdir leak in dummy gcc
Pablo Neira Ayuso (8):
netfilter: nf_tables: use READ_ONCE and WRITE_ONCE for shared generation id access
netfilter: nf_tables: disallow NFTA_SET_ELEM_KEY_END with NFT_SET_ELEM_INTERVAL_END flag
netfilter: nf_tables: possible module reference underflow in error path
netfilter: nf_tables: really skip inactive sets when allocating name
netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag
netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval flags
netfilter: nf_tables: disallow NFT_SET_ELEM_CATCHALL and NFT_SET_ELEM_INTERVAL_END
netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified
Pali Rohár (1):
PCI: aardvark: Fix reporting Slot capabilities on emulated bridge
Paolo Abeni (2):
mptcp: move subflow cleanup in mptcp_destroy_common()
mptcp: do not queue data on closed subflows
Pascal Terjan (1):
vboxguest: Do not use devm for irq
Pavan Chebbi (1):
PCI: Add ACS quirk for Broadcom BCM5750x NICs
Pavel Skripkin (4):
fs/ntfs3: Fix NULL deref in ntfs_update_mftmirr
staging: r8188eu: add error handling of rtw_read8
staging: r8188eu: add error handling of rtw_read16
staging: r8188eu: add error handling of rtw_read32
Peilin Ye (2):
vsock: Fix memory leak in vsock_connect()
vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
Peter Ujfalusi (3):
ASoC: SOF: Intel: cnl: Do not process IPC reply before firmware boot
ASoC: SOF: Intel: hda-ipc: Do not process IPC reply before firmware boot
ASoC: SOF: sof-client-probes: Only load the driver if IPC3 is used
Philipp Zabel (1):
ASoC: codec: tlv320aic32x4: fix mono playback via I2S
Pierre-Louis Bossart (1):
ASoC: SOF: Intel: hda: add sanity check on SSP index reported by NHLT
Po-Wen Kao (1):
scsi: ufs: ufs-mediatek: Fix the timing of configuring device regulators
Potnuri Bharat Teja (1):
RDMA/cxgb4: fix accept failure due to increased cpl_t5_pass_accept_rpl size
Prashant Malani (1):
usb: typec: mux: Add CONFIG guards for functions
Przemyslaw Patynowski (4):
iavf: Fix adminq error handling
iavf: Fix NULL pointer dereference in iavf_get_link_ksettings
iavf: Fix reset error handling
i40e: Fix tunnel checksum offload with fragmented traffic
Qifu Zhang (1):
Documentation: ACPI: EINJ: Fix obsolete example
Randy Dunlap (1):
m68k: coldfire/device.c: protect FLEXCAN blocks
Ren Zhijie (1):
scsi: ufs: ufs-mediatek: Fix build error and type mismatch
Robert Marko (1):
clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
Roberto Sassu (1):
tools build: Switch to new openssl API for test-libcrypto
Robin Reckmann (1):
i2c: qcom-geni: Fix GPI DMA buffer sync-back
Rustam Subkhankulov (1):
net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions()
Sagi Grimberg (1):
nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
Sai Prakash Ranjan (2):
irqchip/tegra: Fix overflow implicit truncation warnings drm/meson: Fix overflow implicit truncation warnings
Sakari Ailus (1):
ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
Samuel Holland (3):
pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
dt-bindings: display: sun4i: Add D1 TCONs to conditionals drm/sun4i: dsi: Prevent underflow when computing packet sizes
Sandor Bodo-Merle (1):
net: bgmac: Fix a BUG triggered by wrong bytes_compl
Schspa Shi (1):
vfio: Clear the caps->buf to NULL after free
Sean Christopherson (1):
KVM: Unconditionally get a ref to /dev/kvm module when creating a VM
Sebastian Würl (1):
can: mcp251x: Fix race condition on receive interrupt
Sergei Antonov (2):
net: dsa: mv88e6060: prevent crash on an unused port
net: moxa: pass pdev instead of ndev to DMA functions
Sergey Gorenko (1):
IB/iser: Fix login with authentication
Sergey Senozhatsky (1):
zram: do not lookup algorithm in backends table
Shigeru Yoshida (1):
virtio-blk: Avoid use-after-free on suspend/resume
Srinivas Kandagatla (2):
ASoC: qdsp6: q6apm-dai: unprepare stream if its already prepared
ASoC: codecs: va-macro: use fsgen as clock
Stafford Horne (1):
openrisc: io: Define iounmap argument as volatile
Stanimir Varbanov (1):
venus: pm_helpers: Fix warning in OPP during probe
Stanislaw Kardach (1):
octeontx2-af: Apply tx nibble fixup always
Stefano Garzarella (2):
vdpa_sim: use max_iotlb_entries as a limit in vhost_iotlb_init
vdpa_sim_blk: set number of address spaces and virtqueue groups
Steve French (1):
smb3: check xattr value length earlier
Steven Rostedt (Google) (8):
tracing/perf: Fix double put of trace event when init fails tracing/eprobes: Do not allow eprobes to use $stack, or % for regs tracing/eprobes: Do not hardcode $comm as a string tracing/eprobes: Fix reading of string fields tracing/eprobes: Have event probes be consistent with kprobes and uprobes tracing/probes: Have kprobes and uprobes use $COMM too
tracing: Have filter accept "common_cpu" to be consistent selftests/kprobe: Do not test for GRP/ without event failures
Subbaraya Sundeep (2):
octeontx2-af: Fix mcam entry resource leak
octeontx2-af: Fix key checking for source mac
Sudeep Holla (1):
ACPI: PPTT: Leave the table mapped for the runtime usage
Sylwester Dziedziuch (1):
ice: Fix VF not able to send tagged traffic with no VLAN filters
Takashi Iwai (10):
ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II
ASoC: Intel: avs: Fix potential buffer overflow by snprintf()
ASoC: SOF: debug: Fix potential buffer overflow by snprintf()
ASoC: SOF: Intel: hda: Fix potential buffer overflow by snprintf()
ASoC: DPCM: Don't pick up BE without substream
ALSA: core: Add async signal helpers
ALSA: timer: Use deferred fasync helper
ALSA: pcm: Use deferred fasync helper
ALSA: control: Use deferred fasync helper
Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()"
Takeshi Saito (1):
mmc: renesas_sdhi: newer SoCs don't need manual tap correction
Tal Cohen (1):
habanalabs/gaudi: invoke device reset from one code block
Tao Jin (1):
HID: multitouch: new device class fix Lenovo X12 trackpad sticky
Tom Rix (1):
apparmor: fix aa_label_asxprint return check
Tony Lindgren (1):
clk: ti: Stop using legacy clkctrl names for omap4 and 5
Trond Myklebust (6):
NFSv4.1: Don't decrease the value of seq_nr_highest_sent NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
NFSv4: Fix races in the legacy idmapper upcall NFSv4/pnfs: Fix a use-after-free bug in open
SUNRPC: Reinitialise the backchannel request buffers before reuse
SUNRPC: Don't reuse bvec on retransmission of the request
Tzung-Bi Shih (1):
platform/chrome: cros_ec_proto: don't show MKBP version if unsupported
Uwe Kleine-König (2):
i2c: imx: Make sure to unregister adapter on remove()
dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
Vladimir Oltean (9):
net: dsa: felix: suppress non-changes to the tagging protocol
net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters
net: mscc: ocelot: fix incorrect ndo_get_stats64 packet counters
net: mscc: ocelot: fix address of SYS_COUNT_TX_AGING counter
net: dsa: don't warn in dsa_port_set_state_now() when driver doesn't support it
net: mscc: ocelot: turn stats_lock into a spinlock
net: mscc: ocelot: fix race between ndo_get_stats64 and ocelot_check_stats_work
net: mscc: ocelot: make struct ocelot_stat_layout array indexable
net: mscc: ocelot: report ndo_get_stats64 from the wraparound-resistant ocelot->stats
Vladimir Zapolskiy (1):
clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description
Wentao_Liang (1):
drivers:md:fix a potential use-after-free bug
Wolfram Sang (1):
mmc: tmio: avoid glitches when resetting
Xianting Tian (1):
RISC-V: Add fast call path of crash_kexec()
Xin Xiong (3):
apparmor: fix reference count leak in aa_pivotroot() net/sunrpc: fix potential memory leaks in rpc_sysfs_xprt_state_change()
net: fix potential refcount leak in ndisc_router_discovery()
Xiu Jianfeng (1):
apparmor: Fix memleak in aa_simple_write_to_buffer()
Xuan Zhuo (1):
virtio_net: fix memory leak inside XPD_TX with mergeable
Yan Lei (1):
fs/ntfs3: Fix using uninitialized value n when calling indx_read
Ye Bin (2):
ext4: avoid remove directory when directory is corrupted
f2fs: fix null-ptr-deref in f2fs_get_dnode_of_data
Yong Zhi (1):
ASoC: Intel: sof_nau8825: Move quirk check to the front in late probe
Yoshihiro Shimoda (2):
scsi: ufs: core: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS
scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO
Yu Xiao (1):
nfp: ethtool: fix the display error of ethtool -m DEVNAME
Yuanzheng Song (1):
tools/vm/slabinfo: use alphabetic order when two values are equal
Yufen Yu (1):
blk-mq: run queue no matter whether the request is the last request
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit
Zeng Jingxiang (1):
rtc: spear: set range max
Zhang Xianwei (1):
NFSv4.1: RECLAIM_COMPLETE must handle EACCES
Zhang Xiaoxu (1):
cifs: Fix memory leak on the deferred close
Zhengchao Shao (2):
net: rtnetlink: fix module reference count leak issue in rtnetlink_rcv_msg
net: sched: fix misuse of qcpu->backlog in gnet_stats_add_queue_cpu
Zheyu Ma (1):
video: fbdev: i740fb: Check the argument of i740_calc_vclk()
Zhouyi Zhou (1):
powerpc/64: Init jump labels before parse_early_param()
Zixuan Fu (1):
btrfs: unset reloc control if transaction commit fails in prepare_to_relocate()
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/sysctl/kernel.rst +12 -0
@@ -592,6 +592,18 @@ to the guest kernel command line (see Documentation/admin-guide/kernel-parameters.rst). +nmi_wd_lpm_factor (PPC only) +============================ + +Factor to apply to the NMI watchdog timeout (only when ``nmi_watchdog`` is +set to 1). This factor represents the percentage added to +``watchdog_thresh`` when calculating the NMI watchdog timeout during an +LPM. The soft lockup timeout is not impacted. + +A value of 0 means no change. The default value is 200 meaning the NMI +watchdog is set to 30s (based on ``watchdog_thresh`` equal to 10). + + numa_balancing ==============
Documentation/atomic_bitops.txt +1 -1
@@ -59,7 +59,7 @@ Like with atomic_t, the rule of thumb is: - RMW operations that have a return value are fully ordered. - RMW operations that are conditional are unordered on FAILURE, - otherwise the above rules apply. In the case of test_and_{}_bit() operations, + otherwise the above rules apply. In the case of test_and_set_bit_lock(), if the bit in memory is unchanged by the operation then it is deemed to have failed.
Documentation/devicetree/bindings/arm/qcom.yaml +12 -6
@@ -153,28 +153,34 @@ properties: - const: qcom,msm8974 - items: - - enum: - - alcatel,idol347 - - const: qcom,msm8916-mtp/1 - const: qcom,msm8916-mtp + - const: qcom,msm8916-mtp/1 - const: qcom,msm8916 - items: - enum: - - longcheer,l8150 + - alcatel,idol347 - samsung,a3u-eur - samsung,a5u-eur - const: qcom,msm8916 + - items: + - const: longcheer,l8150 + - const: qcom,msm8916-v1-qrd/9-v1 + - const: qcom,msm8916 + - items: - enum: - sony,karin_windy + - const: qcom,apq8094 + + - items: + - enum: - sony,karin-row - sony,satsuki-row - sony,sumire-row - sony,suzuran-row - - qcom,msm8994 - - const: qcom,apq8094 + - const: qcom,msm8994 - items: - enum:
Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml +16 -0
@@ -22,16 +22,32 @@ properties: const: qcom,gcc-msm8996 clocks: + minItems: 3 items: - description: XO source - description: Second XO source - description: Sleep clock source + - description: PCIe 0 PIPE clock (optional) + - description: PCIe 1 PIPE clock (optional) + - description: PCIe 2 PIPE clock (optional) + - description: USB3 PIPE clock (optional) + - description: UFS RX symbol 0 clock (optional) + - description: UFS RX symbol 1 clock (optional) + - description: UFS TX symbol 0 clock (optional) clock-names: + minItems: 3 items: - const: cxo - const: cxo2 - const: sleep_clk + - const: pcie_0_pipe_clk_src + - const: pcie_1_pipe_clk_src + - const: pcie_2_pipe_clk_src + - const: usb3_phy_pipe_clk_src + - const: ufs_rx_symbol_0_clk_src + - const: ufs_rx_symbol_1_clk_src + - const: ufs_tx_symbol_0_clk_src '#clock-cells': const: 1
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml +4 -0
@@ -233,6 +233,7 @@ allOf: - allwinner,sun8i-a83t-tcon-lcd - allwinner,sun8i-v3s-tcon - allwinner,sun9i-a80-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: properties:
@@ -252,6 +253,7 @@ allOf: - allwinner,sun8i-a83t-tcon-tv - allwinner,sun8i-r40-tcon-tv - allwinner,sun9i-a80-tcon-tv + - allwinner,sun20i-d1-tcon-tv then: properties:
@@ -278,6 +280,7 @@ allOf: - allwinner,sun9i-a80-tcon-lcd - allwinner,sun4i-a10-tcon - allwinner,sun8i-a83t-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: required:
@@ -294,6 +297,7 @@ allOf: - allwinner,sun8i-a23-tcon - allwinner,sun8i-a33-tcon - allwinner,sun8i-a83t-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: properties:
Documentation/devicetree/bindings/gpio/gpio-zynq.yaml +5 -1
@@ -11,7 +11,11 @@ maintainers: properties: compatible: - const: xlnx,zynq-gpio-1.0 + enum: + - xlnx,zynq-gpio-1.0 + - xlnx,zynqmp-gpio-1.0 + - xlnx,versal-gpio-1.0 + - xlnx,pmc-gpio-1.0 reg: maxItems: 1
Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +14 -14
@@ -37,10 +37,6 @@ properties: device is temporarily held in hardware reset prior to initialization if this property is present. - azoteq,rf-filt-enable: - type: boolean - description: Enables the device's internal RF filter. - azoteq,max-counts: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2, 3]
@@ -537,9 +533,8 @@ patternProperties: azoteq,bottom-speed: $ref: /schemas/types.yaml#/definitions/uint32 - multipleOf: 4 minimum: 0 - maximum: 1020 + maximum: 255 description: Specifies the speed of movement after which coordinate filtering is linearly reduced.
@@ -616,16 +611,15 @@ patternProperties: azoteq,gpio-select: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 - maxItems: 1 + maxItems: 3 items: minimum: 0 - maximum: 0 + maximum: 2 description: | - Specifies an individual GPIO mapped to a tap, swipe or flick - gesture as follows: + Specifies one or more GPIO mapped to the event as follows: 0: GPIO0 - 1: GPIO3 (reserved) - 2: GPIO4 (reserved) + 1: GPIO3 (IQS7222C only) + 2: GPIO4 (IQS7222C only) Note that although multiple events can be mapped to a single GPIO, they must all be of the same type (proximity, touch or
@@ -710,6 +704,14 @@ allOf: multipleOf: 4 maximum: 1020 + patternProperties: + "^event-(press|tap|(swipe|flick)-(pos|neg))$": + properties: + azoteq,gpio-select: + maxItems: 1 + items: + maximum: 0 + else: patternProperties: "^channel-([0-9]|1[0-9])$":
@@ -726,8 +728,6 @@ allOf: azoteq,gesture-dist: false - azoteq,gpio-select: false - required: - compatible - reg
Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml +15 -0
@@ -98,6 +98,8 @@ examples: capacity-dmips-mhz = <1024>; clocks = <&kryocc 0>; operating-points-v2 = <&cluster0_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_0>; L2_0: l2-cache {
@@ -115,6 +117,8 @@ examples: capacity-dmips-mhz = <1024>; clocks = <&kryocc 0>; operating-points-v2 = <&cluster0_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_0>; };
@@ -128,6 +132,8 @@ examples: capacity-dmips-mhz = <1024>; clocks = <&kryocc 1>; operating-points-v2 = <&cluster1_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_1>; L2_1: l2-cache {
@@ -145,6 +151,8 @@ examples: capacity-dmips-mhz = <1024>; clocks = <&kryocc 1>; operating-points-v2 = <&cluster1_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_1>; };
@@ -182,18 +190,21 @@ examples: opp-microvolt = <905000 905000 1140000>; opp-supported-hw = <0x7>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp1>; }; opp-1401600000 { opp-hz = /bits/ 64 <1401600000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x5>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp2>; }; opp-1593600000 { opp-hz = /bits/ 64 <1593600000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x1>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp3>; }; };
@@ -207,24 +218,28 @@ examples: opp-microvolt = <905000 905000 1140000>; opp-supported-hw = <0x7>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp1>; }; opp-1804800000 { opp-hz = /bits/ 64 <1804800000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x6>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp4>; }; opp-1900800000 { opp-hz = /bits/ 64 <1900800000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x4>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp5>; }; opp-2150400000 { opp-hz = /bits/ 64 <2150400000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x1>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp6>; }; };
Documentation/devicetree/bindings/pci/qcom,pcie.yaml +1 -1
@@ -614,7 +614,7 @@ allOf: - if: not: properties: - compatibles: + compatible: contains: enum: - qcom,pcie-msm8996
Documentation/devicetree/bindings/pinctrl/pinctrl-mt8186.yaml +3 -26
@@ -105,31 +105,8 @@ patternProperties: drive-strength: enum: [2, 4, 6, 8, 10, 12, 14, 16] - mediatek,drive-strength-adv: - description: | - Describe the specific driving setup property. - For I2C pins, the existing generic driving setup can only support - 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they - can support 0.125/0.25/0.5/1mA adjustment. If we enable specific - driving setup, the existing generic setup will be disabled. - The specific driving setup is controlled by E1E0EN. - When E1=0/E0=0, the strength is 0.125mA. - When E1=0/E0=1, the strength is 0.25mA. - When E1=1/E0=0, the strength is 0.5mA. - When E1=1/E0=1, the strength is 1mA. - EN is used to enable or disable the specific driving setup. - Valid arguments are described as below: - 0: (E1, E0, EN) = (0, 0, 0) - 1: (E1, E0, EN) = (0, 0, 1) - 2: (E1, E0, EN) = (0, 1, 0) - 3: (E1, E0, EN) = (0, 1, 1) - 4: (E1, E0, EN) = (1, 0, 0) - 5: (E1, E0, EN) = (1, 0, 1) - 6: (E1, E0, EN) = (1, 1, 0) - 7: (E1, E0, EN) = (1, 1, 1) - So the valid arguments are from 0 to 7. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4, 5, 6, 7] + drive-strength-microamp: + enum: [125, 250, 500, 1000] bias-pull-down: oneOf:
@@ -291,7 +268,7 @@ examples: pinmux = <PINMUX_GPIO127__FUNC_SCL0>, <PINMUX_GPIO128__FUNC_SDA0>; bias-pull-up = <MTK_PULL_SET_RSEL_001>; - mediatek,drive-strength-adv = <7>; + drive-strength-microamp = <1000>; }; }; };
Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml +18 -40
64 lines not on this page · raw message
Documentation/devicetree/bindings/pinctrl/pinctrl-mt8195.yaml +7 -30
@@ -49,7 +49,7 @@ properties: description: The interrupt outputs to sysirq. maxItems: 1 - mediatek,rsel_resistance_in_si_unit: + mediatek,rsel-resistance-in-si-unit: type: boolean description: | Identifying i2c pins pull up/down type which is RSEL. It can support
@@ -98,31 +98,8 @@ patternProperties: drive-strength: enum: [2, 4, 6, 8, 10, 12, 14, 16] - mediatek,drive-strength-adv: - description: | - Describe the specific driving setup property. - For I2C pins, the existing generic driving setup can only support - 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they - can support 0.125/0.25/0.5/1mA adjustment. If we enable specific - driving setup, the existing generic setup will be disabled. - The specific driving setup is controlled by E1E0EN. - When E1=0/E0=0, the strength is 0.125mA. - When E1=0/E0=1, the strength is 0.25mA. - When E1=1/E0=0, the strength is 0.5mA. - When E1=1/E0=1, the strength is 1mA. - EN is used to enable or disable the specific driving setup. - Valid arguments are described as below: - 0: (E1, E0, EN) = (0, 0, 0) - 1: (E1, E0, EN) = (0, 0, 1) - 2: (E1, E0, EN) = (0, 1, 0) - 3: (E1, E0, EN) = (0, 1, 1) - 4: (E1, E0, EN) = (1, 0, 0) - 5: (E1, E0, EN) = (1, 0, 1) - 6: (E1, E0, EN) = (1, 1, 0) - 7: (E1, E0, EN) = (1, 1, 1) - So the valid arguments are from 0 to 7. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4, 5, 6, 7] + drive-strength-microamp: + enum: [125, 250, 500, 1000] bias-pull-down: oneOf:
@@ -142,7 +119,7 @@ patternProperties: "MTK_PUPD_SET_R1R0_11" define in mt8195. For pull down type is RSEL, it can add RSEL define & resistance value(ohm) to set different resistance by identifying property - "mediatek,rsel_resistance_in_si_unit". + "mediatek,rsel-resistance-in-si-unit". It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001" & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011" & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101"
@@ -161,7 +138,7 @@ patternProperties: }; An example of using si unit resistance value(ohm): &pio { - mediatek,rsel_resistance_in_si_unit; + mediatek,rsel-resistance-in-si-unit; } pincontroller { i2c0_pin {
@@ -190,7 +167,7 @@ patternProperties: "MTK_PUPD_SET_R1R0_11" define in mt8195. For pull up type is RSEL, it can add RSEL define & resistance value(ohm) to set different resistance by identifying property - "mediatek,rsel_resistance_in_si_unit". + "mediatek,rsel-resistance-in-si-unit". It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001" & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011" & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101"
@@ -209,7 +186,7 @@ patternProperties: }; An example of using si unit resistance value(ohm): &pio { - mediatek,rsel_resistance_in_si_unit; + mediatek,rsel-resistance-in-si-unit; } pincontroller { i2c0-pins {
Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml +0 -11
@@ -47,12 +47,6 @@ properties: description: Properties for single LDO regulator. - properties: - regulator-name: - pattern: "^LDO[1-5]$" - description: - should be "LDO1", ..., "LDO5" - unevaluatedProperties: false "^BUCK[1-6]$":
@@ -62,11 +56,6 @@ properties: Properties for single BUCK regulator. properties: - regulator-name: - pattern: "^BUCK[1-6]$" - description: - should be "BUCK1", ..., "BUCK6" - nxp,dvs-run-voltage: $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 600000
Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml +4 -1
@@ -45,12 +45,15 @@ properties: - const: rx interconnects: - maxItems: 2 + minItems: 2 + maxItems: 3 interconnect-names: + minItems: 2 items: - const: qup-core - const: qup-config + - const: qup-memory interrupts: maxItems: 1
Documentation/devicetree/bindings/spi/spi-cadence.yaml +7 -0
@@ -49,6 +49,13 @@ properties: enum: [ 0, 1 ] default: 0 +required: + - compatible + - reg + - interrupts + - clock-names + - clocks + unevaluatedProperties: false examples:
Documentation/devicetree/bindings/spi/spi-zynqmp-qspi.yaml +7 -0
@@ -30,6 +30,13 @@ properties: clocks: maxItems: 2 +required: + - compatible + - reg + - interrupts + - clock-names + - clocks + unevaluatedProperties: false examples:
Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml +1 -0
@@ -57,6 +57,7 @@ properties: - description: optional, wakeup interrupt used to support runtime PM interrupt-names: + minItems: 1 items: - const: host - const: wakeup
Documentation/firmware-guide/acpi/apei/einj.rst +1 -1
@@ -168,7 +168,7 @@ An error injection example:: 0x00000008 Memory Correctable 0x00000010 Memory Uncorrectable non-fatal # echo 0x12345000 > param1 # Set memory address for injection - # echo $((-1 << 12)) > param2 # Mask 0xfffffffffffff000 - anywhere in this page + # echo 0xfffffffffffff000 > param2 # Mask - anywhere in this page # echo 0x8 > error_type # Choose correctable memory error # echo 1 > error_inject # Inject now
Makefile +3 -5
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 19 -SUBLEVEL = 3 +SUBLEVEL = 4 EXTRAVERSION = NAME = Superb Owl
@@ -1112,13 +1112,11 @@ vmlinux-alldirs := $(sort $(vmlinux-dirs) Documentation \ $(patsubst %/,%,$(filter %/, $(core-) \ $(drivers-) $(libs-)))) -subdir-modorder := $(addsuffix modules.order,$(filter %/, \ - $(core-y) $(core-m) $(libs-y) $(libs-m) \ - $(drivers-y) $(drivers-m))) - build-dirs := $(vmlinux-dirs) clean-dirs := $(vmlinux-alldirs) +subdir-modorder := $(addsuffix /modules.order, $(build-dirs)) + # Externally visible symbols (used by link-vmlinux.sh) KBUILD_VMLINUX_OBJS := $(head-y) $(patsubst %/,%/built-in.a, $(core-y)) KBUILD_VMLINUX_OBJS += $(addsuffix built-in.a, $(filter %/, $(libs-y)))
arch/arm64/include/asm/kvm_host.h +4 -0
@@ -838,6 +838,10 @@ bool kvm_arm_vcpu_is_finalized(struct kvm_vcpu *vcpu); (system_supports_mte () && \ test_bit(KVM_ARCH_FLAG_MTE_ENABLED, &(kvm)->arch.flags)) +#define kvm_supports_32bit_el0 () \ + (system_supports_32bit_el0() && \ + !static_branch_unlikely(&arm64_mismatched_32bit_el0)) +int kvm_trng_call (struct kvm_vcpu *vcpu);#ifdef CONFIG_KVM extern phys_addr_t hyp_mem_base;
arch/arm64/kvm/arm.c +1 -2
@@ -751,8 +751,7 @@ static bool vcpu_mode_is_bad_32bit(struct kvm_vcpu *vcpu)if (likely (!vcpu_mode_is_32bit (vcpu)))return false; -return !system_supports_32bit_el0 () || -static_branch_unlikely (&arm64_mismatched_32bit_el0); +return !kvm_supports_32bit_el0 (); }/**
arch/arm64/kvm/guest.c +1 -1
@@ -242,7 +242,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)u64 mode = (*(u64 *)valp) &PSR_AA32_MODE_MASK ;switch (mode) {case PSR_AA32_MODE_USR : -if (!system_supports_32bit_el0 ()) +if (!kvm_supports_32bit_el0 ())return -EINVAL ;break ;case PSR_AA32_MODE_FIQ :
arch/arm64/kvm/sys_regs.c +2 -2
@@ -692,7 +692,7 @@ static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)*/ val = ((pmcr & ~ARMV8_PMU_PMCR_MASK ) | (ARMV8_PMU_PMCR_MASK &0xdecafbad )) & (~ARMV8_PMU_PMCR_E ); -if (!system_supports_32bit_el0 ()) +if (!kvm_supports_32bit_el0 ()) val |=ARMV8_PMU_PMCR_LC ;__vcpu_sys_reg (vcpu, r->reg) = val; }
@@ -741,7 +741,7 @@ static bool access_pmcr(struct kvm_vcpu *vcpu, struct sys_reg_params *p, val =__vcpu_sys_reg (vcpu,PMCR_EL0 ); val &= ~ARMV8_PMU_PMCR_MASK ; val |= p->regval &ARMV8_PMU_PMCR_MASK ; -if (!system_supports_32bit_el0 ()) +if (!kvm_supports_32bit_el0 ()) val |=ARMV8_PMU_PMCR_LC ;__vcpu_sys_reg (vcpu,PMCR_EL0 ) = val;kvm_pmu_handle_pmcr (vcpu, val);
arch/csky/kernel/probes/kprobes.c +4 -0
@@ -124,6 +124,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)void __kprobes arch_remove_kprobe (struct kprobe *p) { +if (p->ainsn.api.insn) { +free_insn_slot (p->ainsn.api.insn,0 ); + p->ainsn.api.insn =NULL ; + } }static void __kprobes save_previous_kprobe (struct kprobe_ctlblk *kcb)
arch/m68k/coldfire/device.c +3 -3
@@ -581,7 +581,7 @@ static struct platform_device mcf_esdhc = { };#endif /* MCFSDHC_BASE */ -#if IS_ENABLED (CONFIG_CAN_FLEXCAN ) +#ifdef MCFFLEXCAN_SIZE #include <linux/can/platform/flexcan.h>
@@ -620,7 +620,7 @@ static struct platform_device mcf_flexcan0 = { .resource = mcf5441x_flexcan0_resource, .dev.platform_data = &mcf5441x_flexcan_info, }; -#endif /* IS_ENABLED(CONFIG_CAN_FLEXCAN) */ +#endif /* MCFFLEXCAN_SIZE */ static struct platform_device *mcf_devices[]__initdata = { &mcf_uart,
@@ -657,7 +657,7 @@ static struct platform_device *mcf_devices[] __initdata = {#ifdef MCFSDHC_BASE &mcf_esdhc,#endif -#if IS_ENABLED (CONFIG_CAN_FLEXCAN ) +#ifdef MCFFLEXCAN_SIZE &mcf_flexcan0,#endif };
arch/mips/cavium-octeon/octeon-platform.c +2 -1
@@ -86,11 +86,12 @@ static void octeon2_usb_clocks_start(struct device *dev) "refclk-frequency", &clock_rate);if (i) {dev_err (dev,"No UCTL \"refclk-frequency\"\n" ); +of_node_put (uctl_node); goto exit; } i =of_property_read_string (uctl_node,"refclk-type" , &clock_type); - +of_node_put (uctl_node);if (!i &&strcmp ("crystal" , clock_type) ==0 ) is_crystal_clock = true; }
arch/mips/mm/tlbex.c +2 -2
@@ -626,7 +626,7 @@ static __maybe_unused void build_convert_pte_to_entrylo(u32 **p,return ; } -if (cpu_has_rixi && !!_PAGE_NO_EXEC) { +if (cpu_has_rixi && _PAGE_NO_EXEC !=0 ) {if (fill_includes_sw_bits) {UASM_i_ROTR (p, reg, reg,ilog2 (_PAGE_GLOBAL)); }else {
@@ -2565,7 +2565,7 @@ static void check_pabits(void)unsigned long entry;unsigned pabits, fillbits; -if (!cpu_has_rixi || !_PAGE_NO_EXEC) { +if (!cpu_has_rixi || _PAGE_NO_EXEC ==0 ) {/* * We'll only be making use of the fact that we can rotate bits * into the fill if the CPU supports RIXI, so don't bother
arch/nios2/include/asm/entry.h +2 -1
@@ -50,7 +50,8 @@ stw r13, PT_R13(sp) stw r14, PT_R14(sp) stw r15, PT_R15(sp) - stw r2, PT_ORIG_R2(sp) + movi r24, -1 + stw r24, PT_ORIG_R2(sp) stw r7, PT_ORIG_R7(sp) stw ra, PT_RA(sp)
arch/nios2/include/asm/ptrace.h +2 -0
@@ -74,6 +74,8 @@ extern void show_regs(struct pt_regs *); ((struct pt_regs *)((unsigned long )current_thread_info () +THREAD_SIZE )\ - 1) +#define force_successful_syscall_return () (current_pt_regs()->orig_r2 = -1) +int do_syscall_trace_enter (void );void do_syscall_trace_exit (void );#endif /* __ASSEMBLY__ */
arch/nios2/kernel/entry.S +15 -7
@@ -185,6 +185,7 @@ ENTRY(handle_system_call) ldw r5, PT_R5(sp) local_restart: + stw r2, PT_ORIG_R2(sp) /* Check that the requested system call is within limits */ movui r1, __NR_syscalls bgeu r2, r1, ret_invsyscall
@@ -192,7 +193,6 @@ local_restart: movhi r11, %hiadj(sys_call_table) add r1, r1, r11 ldw r1, %lo(sys_call_table)(r1) - beq r1, r0, ret_invsyscall /* Check if we are being traced */ GET_THREAD_INFO r11
@@ -213,6 +213,9 @@ local_restart: translate_rc_and_ret: movi r1, 0 bge r2, zero, 3f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 3f sub r2, zero, r2 movi r1, 1 3:
@@ -255,9 +258,9 @@ traced_system_call: ldw r6, PT_R6(sp) ldw r7, PT_R7(sp) - /* Fetch the syscall function, we don't need to check the boundaries - * since this is already done. - */ + /* Fetch the syscall function. */ + movui r1, __NR_syscalls + bgeu r2, r1, traced_invsyscall slli r1, r2, 2 movhi r11,%hiadj(sys_call_table) add r1, r1, r11
@@ -276,6 +279,9 @@ traced_system_call: translate_rc_and_ret2: movi r1, 0 bge r2, zero, 4f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 4f sub r2, zero, r2 movi r1, 1 4:
@@ -287,6 +293,11 @@ end_translate_rc_and_ret2: RESTORE_SWITCH_STACK br ret_from_exception + /* If the syscall number was invalid return ENOSYS */ +traced_invsyscall: + movi r2, -ENOSYS + br translate_rc_and_ret2 + Luser_return: GET_THREAD_INFO r11 /* get thread_info pointer */ ldw r10, TI_FLAGS(r11) /* get thread_info->flags */
@@ -336,9 +347,6 @@ external_interrupt: /* skip if no interrupt is pending */ beq r12, r0, ret_from_interrupt - movi r24, -1 - stw r24, PT_ORIG_R2(sp) - /* * Process an external hardware interrupt. */
arch/nios2/kernel/signal.c +2 -1
@@ -242,7 +242,7 @@ static int do_signal(struct pt_regs *regs)/* * If we were from a system call, check for system call restarting... */ -if (regs->orig_r2 >=0 ) { +if (regs->orig_r2 >=0 && regs->r1) { continue_addr = regs->ea; restart_addr = continue_addr -4 ; retval = regs->r2;
@@ -264,6 +264,7 @@ static int do_signal(struct pt_regs *regs) regs->ea = restart_addr;break ; } + regs->orig_r2 =-1 ; }if (get_signal (&ksig)) {
arch/nios2/kernel/syscall_table.c +1 -0
@@ -13,5 +13,6 @@#define __SYSCALL (nr, call) [nr] = (call),void *sys_call_table[__NR_syscalls] = { + [0 ... __NR_syscalls-1 ] = sys_ni_syscall, #include <asm/unistd.h> };
arch/openrisc/include/asm/io.h +1 -1
@@ -31,7 +31,7 @@void __iomem *ioremap (phys_addr_t offset,unsigned long size);#define iounmap iounmap -extern void iounmap (void __iomem *addr); +extern void iounmap (volatile void __iomem *addr);#include <asm-generic/io.h>
arch/openrisc/mm/ioremap.c +1 -1
@@ -77,7 +77,7 @@ void __iomem *__ref ioremap(phys_addr_t addr, unsigned long size) }EXPORT_SYMBOL (ioremap); -void iounmap (void __iomem *addr) +void iounmap (volatile void __iomem *addr) {/* If the page is from the fixmap pool then we just clear out * the fixmap mapping.
arch/powerpc/Makefile +1 -25
@@ -15,23 +15,6 @@ HAS_BIARCH := $(call cc-option-yn, -m32) # Set default 32 bits cross compilers for vdso and boot wrapper CROSS32_COMPILE ?= -ifeq ($(HAS_BIARCH),y) -ifeq ($(CROSS32_COMPILE),) -ifdef CONFIG_PPC32 -# These options will be overridden by any -mcpu option that the CPU -# or platform code sets later on the command line, but they are needed -# to set a sane 32-bit cpu target for the 64-bit cross compiler which -# may default to the wrong ISA. -KBUILD_CFLAGS += -mcpu=powerpc -KBUILD_AFLAGS += -mcpu=powerpc -endif -endif -endif - -ifdef CONFIG_PPC_BOOK3S_32 -KBUILD_CFLAGS += -mcpu=powerpc -endif - # If we're on a ppc/ppc64/ppc64le machine use that defconfig, otherwise just use # ppc64_defconfig because we have nothing better to go on. uname := $(shell uname -m)
@@ -183,6 +166,7 @@ endif endif CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) +AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) # Altivec option not allowed with e500mc64 in GCC. ifdef CONFIG_ALTIVEC
@@ -193,14 +177,6 @@ endif CFLAGS-$(CONFIG_E5500_CPU) += $(E5500_CPU) CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU)) -ifdef CONFIG_PPC32 -ifdef CONFIG_PPC_E500MC -CFLAGS-y += $(call cc-option,-mcpu=e500mc,-mcpu=powerpc) -else -CFLAGS-$(CONFIG_E500) += $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc) -endif -endif - asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) KBUILD_CPPFLAGS += -I $(srctree)/arch/$(ARCH) $(asinstr)
arch/powerpc/include/asm/nmi.h +2 -0
@@ -5,8 +5,10 @@#ifdef CONFIG_PPC_WATCHDOG extern void arch_touch_nmi_watchdog (void );long soft_nmi_interrupt (struct pt_regs *regs); +void watchdog_nmi_set_timeout_pct (u64 pct);#else static inline void arch_touch_nmi_watchdog (void ) {} +static inline void watchdog_nmi_set_timeout_pct (u64 pct) {}#endif #ifdef CONFIG_NMI_IPI
arch/powerpc/kernel/head_book3s_32.S +2 -2
@@ -418,14 +418,14 @@ InstructionTLBMiss: */ /* Get PTE (linux-style) and check access */ mfspr r3,SPRN_IMISS -#if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE) +#ifdef CONFIG_MODULES lis r1, TASK_SIZE@h /* check if kernel address */ cmplw 0,r1,r3 #endif mfspr r2, SPRN_SDR1 li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC | _PAGE_USER rlwinm r2, r2, 28, 0xfffff000 -#if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE) +#ifdef CONFIG_MODULES bgt- 112f lis r2, (swapper_pg_dir - PAGE_OFFSET)@ha /* if kernel address, use */ li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
arch/powerpc/kernel/pci-common.c +10 -6
@@ -67,10 +67,6 @@ void __init set_pci_dma_ops(const struct dma_map_ops *dma_ops) pci_dma_ops = dma_ops; } -/* -* This function should run under locking protection, specifically -* hose_spinlock. -*/ static int get_phb_number (struct device_node *dn) {int ret, phb_id =-1 ;
@@ -107,15 +103,20 @@ static int get_phb_number(struct device_node *dn)if (!ret) phb_id = (int )(prop & (MAX_PHBS -1 )); +spin_lock (&hose_spinlock); +/* We need to be sure to not use the same PHB number twice. */ if ((phb_id >=0 ) && !test_and_set_bit (phb_id, phb_bitmap)) -return phb_id; + goto out_unlock;/* If everything fails then fallback to dynamic PHB numbering. */ phb_id =find_first_zero_bit (phb_bitmap,MAX_PHBS );BUG_ON (phb_id >=MAX_PHBS );set_bit (phb_id, phb_bitmap); +out_unlock: +spin_unlock (&hose_spinlock); +return phb_id; }
@@ -126,10 +127,13 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev) phb =zalloc_maybe_bootmem (sizeof (struct pci_controller ),GFP_KERNEL );if (phb ==NULL )return NULL ; -spin_lock (&hose_spinlock); + phb->global_number =get_phb_number (dev); + +spin_lock (&hose_spinlock);list_add_tail (&phb->list_node, &hose_list);spin_unlock (&hose_spinlock); + phb->dn = dev; phb->is_dynamic =slab_is_available ();#ifdef CONFIG_PPC64
arch/powerpc/kernel/prom.c +7 -0
@@ -751,6 +751,13 @@ void __init early_init_devtree(void *params)early_init_dt_scan_root ();early_init_dt_scan_memory_ppc (); +/* +* As generic code authors expect to be able to use static keys +* in early_param() handlers, we initialize the static keys just +* before parsing early params (it's fine to call jump_label_init() +* more than once). +*/ +jump_label_init ();parse_early_param ();/* make sure we've parsed cmdline for mem= before this */
arch/powerpc/kernel/watchdog.c +20 -1
@@ -91,6 +91,10 @@ static cpumask_t wd_smp_cpus_pending;static cpumask_t wd_smp_cpus_stuck;static u64 wd_smp_last_reset_tb; +#ifdef CONFIG_PPC_PSERIES +static u64 wd_timeout_pct; +#endif +/* * Try to take the exclusive watchdog action / NMI IPI / printing lock. * wd_smp_lock must be held. If this fails, we should return and wait
@@ -527,7 +531,13 @@ static int stop_watchdog_on_cpu(unsigned int cpu)static void watchdog_calc_timeouts (void ) { - wd_panic_timeout_tb = watchdog_thresh * ppc_tb_freq; +u64 threshold = watchdog_thresh; + +#ifdef CONFIG_PPC_PSERIES + threshold += (READ_ONCE (wd_timeout_pct) * threshold) /100 ; +#endif + + wd_panic_timeout_tb = threshold * ppc_tb_freq;/* Have the SMP detector trigger a bit later */ wd_smp_panic_timeout_tb = wd_panic_timeout_tb *3 /2 ;
@@ -570,3 +580,12 @@ int __init watchdog_nmi_probe(void) }return 0 ; } + +#ifdef CONFIG_PPC_PSERIES +void watchdog_nmi_set_timeout_pct (u64 pct) +{ +pr_info ("Set the NMI watchdog timeout factor to %llu%%\n" , pct); +WRITE_ONCE (wd_timeout_pct, pct); +lockup_detector_reconfigure (); +} +#endif
arch/powerpc/kvm/book3s_hv_p9_entry.c +2 -11
@@ -438,15 +438,6 @@ void restore_p9_host_os_sprs(struct kvm_vcpu *vcpu,EXPORT_SYMBOL_GPL (restore_p9_host_os_sprs);#ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING -static void __start_timing (struct kvm_vcpu *vcpu,struct kvmhv_tb_accumulator *next) -{ -struct kvmppc_vcore *vc = vcpu->arch.vcore; -u64 tb =mftb () - vc->tb_offset_applied; - - vcpu->arch.cur_activity = next; - vcpu->arch.cur_tb_start = tb; -} -static void __accumulate_time (struct kvm_vcpu *vcpu,struct kvmhv_tb_accumulator *next) {struct kvmppc_vcore *vc = vcpu->arch.vcore;
@@ -478,8 +469,8 @@ static void __accumulate_time(struct kvm_vcpu *vcpu, struct kvmhv_tb_accumulator curr->seqcount = seq + 2; } -#define start_timing (vcpu, next) __start_timing(vcpu, next) -#define end_timing (vcpu) __start_timing(vcpu, NULL) +#define start_timing (vcpu, next) __accumulate_time(vcpu, next) +#define end_timing (vcpu) __accumulate_time(vcpu, NULL)#define accumulate_time (vcpu, next) __accumulate_time(vcpu, next)#else #define start_timing (vcpu, next) do {} while (0)
arch/powerpc/mm/book3s32/mmu.c +4 -6
@@ -159,7 +159,10 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top) {unsigned long done;unsigned long border = (unsigned long )__init_begin -PAGE_OFFSET ; +unsigned long size; + size =roundup_pow_of_two ((unsigned long )_einittext -PAGE_OFFSET ); +setibat (0 ,PAGE_OFFSET ,0 , size,PAGE_KERNEL_X );if (debug_pagealloc_enabled_or_kfence () || __map_without_bats) {pr_debug_once ("Read-Write memory mapped without BATs\n" );
@@ -245,10 +248,9 @@ void mmu_mark_rodata_ro(void) }/* -* Set up one of the I/D BAT (block address translation) register pairs. +* Set up one of the D BAT (block address translation) register pairs. * The parameters are not checked; in particular size must be a power * of 2 between 128k and 256M. -* On 603+, only set IBAT when _PAGE_EXEC is set */ void __init setbat (int index,unsigned long virt,phys_addr_t phys,unsigned int size,pgprot_t prot)
@@ -284,10 +286,6 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys,/* G bit must be zero in IBATs */ flags &= ~_PAGE_EXEC; } -if (flags & _PAGE_EXEC) - bat[0 ] = bat[1 ]; -else - bat[0 ].batu = bat[0 ].batl =0 ; bat_addrs[index].start = virt; bat_addrs[index].limit = virt + ((bl +1 ) <<17 ) -1 ;
arch/powerpc/platforms/Kconfig.cputype +18 -3
@@ -136,9 +136,9 @@ config GENERIC_CPU select ARCH_HAS_FAST_MULTIPLIER select PPC_64S_HASH_MMU -config GENERIC_CPU +config POWERPC_CPU bool "Generic 32 bits powerpc" - depends on PPC32 && !PPC_8xx + depends on PPC32 && !PPC_8xx && !PPC_85xx config CELL_CPU bool "Cell Broadband Engine"
@@ -197,11 +197,23 @@ config G4_CPU depends on PPC_BOOK3S_32 select ALTIVEC +config E500_CPU + bool "e500 (8540)" + depends on PPC_85xx && !PPC_E500MC + +config E500MC_CPU + bool "e500mc" + depends on PPC_85xx && PPC_E500MC + +config TOOLCHAIN_DEFAULT_CPU + bool "Rely on the toolchain's implicit default CPU" + depends on PPC32 + endchoice config TARGET_CPU_BOOL bool - default !GENERIC_CPU + default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU config TARGET_CPU string
@@ -216,6 +228,9 @@ config TARGET_CPU default "e300c2" if E300C2_CPU default "e300c3" if E300C3_CPU default "G4" if G4_CPU + default "8540" if E500_CPU + default "e500mc" if E500MC_CPU + default "powerpc" if POWERPC_CPU config PPC_BOOK3S def_bool y
arch/powerpc/platforms/powernv/pci-ioda.c +2 -0
@@ -1609,6 +1609,7 @@ static void pnv_pci_ioda1_setup_dma_pe(struct pnv_phb *phb, tbl->it_ops = &pnv_ioda1_iommu_ops; pe->table_group.tce32_start = tbl->it_offset << tbl->it_page_shift; pe->table_group.tce32_size = tbl->it_size << tbl->it_page_shift; + tbl->it_index = (phb->hose->global_number <<16 ) | pe->pe_number;if (!iommu_init_table (tbl, phb->hose->node,0 ,0 ))panic ("Failed to initialize iommu table" );
@@ -1779,6 +1780,7 @@ static long pnv_pci_ioda2_setup_default_config(struct pnv_ioda_pe *pe) res_end =min (window_size,SZ_4G ) >> tbl->it_page_shift; } + tbl->it_index = (pe->phb->hose->global_number <<16 ) | pe->pe_number;if (iommu_init_table (tbl, pe->phb->hose->node, res_start, res_end)) rc =pnv_pci_ioda2_set_window (&pe->table_group,0 , tbl);else
arch/powerpc/platforms/pseries/mobility.c +43 -0
68 lines not on this page · raw message
arch/riscv/boot/dts/canaan/k210.dtsi +12 -0
@@ -65,6 +65,18 @@ cpu1_intc: interrupt-controller { compatible = "riscv,cpu-intc"; }; }; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + + core1 { + cpu = <&cpu1>; + }; + }; + }; }; sram: memory@80000000 {
arch/riscv/boot/dts/sifive/fu740-c000.dtsi +24 -0
@@ -134,6 +134,30 @@ cpu4_intc: interrupt-controller { interrupt-controller; }; }; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + + core1 { + cpu = <&cpu1>; + }; + + core2 { + cpu = <&cpu2>; + }; + + core3 { + cpu = <&cpu3>; + }; + + core4 { + cpu = <&cpu4>; + }; + }; + }; }; soc { #address-cells = <2>;
arch/riscv/kernel/sys_riscv.c +2 -3
@@ -18,9 +18,8 @@ static long riscv_sys_mmap(unsigned long addr, unsigned long len,if (unlikely (offset & (~PAGE_MASK >> page_shift_offset)))return -EINVAL ; -if ((prot &PROT_WRITE ) && (prot &PROT_EXEC )) -if (unlikely (!(prot &PROT_READ ))) -return -EINVAL ; +if (unlikely ((prot &PROT_WRITE ) && !(prot &PROT_READ ))) +return -EINVAL ;return ksys_mmap_pgoff (addr, len, prot, flags, fd, offset >> (PAGE_SHIFT - page_shift_offset));
arch/riscv/kernel/traps.c +4 -0
@@ -16,6 +16,7 @@#include <linux/mm.h> #include <linux/module.h> #include <linux/irq.h> +#include <linux/kexec.h> #include <asm/asm-prototypes.h> #include <asm/bug.h>
@@ -44,6 +45,9 @@ void die(struct pt_regs *regs, const char *str) ret =notify_die (DIE_OOPS , str, regs,0 , regs->cause,SIGSEGV ); +if (regs &&kexec_should_crash (current)) +crash_kexec (regs); +bust_spinlocks (0 );add_taint (TAINT_DIE ,LOCKDEP_NOW_UNRELIABLE );spin_unlock_irq (&die_lock);
arch/um/os-Linux/skas/process.c +16 -1
@@ -5,6 +5,7 @@*/ #include <stdlib.h> +#include <stdbool.h> #include <unistd.h> #include <sched.h> #include <errno.h>
@@ -707,10 +708,24 @@ void halt_skas(void)UML_LONGJMP (&initial_jmpbuf,INIT_JMP_HALT ); } +static bool noreboot; + +static int __init noreboot_cmd_param (char *str,int *add) +{ + noreboot = true; +return 0 ; +} + +__uml_setup ("noreboot" , noreboot_cmd_param, +"noreboot\n" +" Rather than rebooting, exit always, akin to QEMU's -no-reboot option.\n" +" This is useful if you're using CONFIG_PANIC_TIMEOUT in order to catch\n" +" crashes in CI\n" ); +void reboot_skas (void ) {block_signals_trace (); -UML_LONGJMP (&initial_jmpbuf,INIT_JMP_REBOOT ); +UML_LONGJMP (&initial_jmpbuf, noreboot ?INIT_JMP_HALT :INIT_JMP_REBOOT ); }void __switch_mm (struct mm_id *mm_idp)
arch/x86/include/asm/ibt.h +11 -0
@@ -31,6 +31,16 @@#define __noendbr __attribute__((nocf_check)) +/* +* Create a dummy function pointer reference to prevent objtool from marking +* the function as needing to be "sealed" (i.e. ENDBR converted to NOP by +* apply_ibt_endbr()). +*/ +#define IBT_NOSEAL (fname) \ + ".pushsection .discard.ibt_endbr_noseal\n\t" \ + _ASM_PTR fname "\n\t" \ + ".popsection\n\t" + static inline __attribute_const__ u32 gen_endbr(void) {u32 endbr;
@@ -84,6 +94,7 @@ extern __noendbr void ibt_restore(u64 save);#ifndef __ASSEMBLY__#define ASM_ENDBR +#define IBT_NOSEAL (name)#define __noendbr
arch/x86/kernel/kprobes/core.c +1 -1
@@ -505,7 +505,7 @@ static void kprobe_emulate_jcc(struct kprobe *p, struct pt_regs *regs) match = ((regs->flags &X86_EFLAGS_SF ) >>X86_EFLAGS_SF_BIT ) ^ ((regs->flags &X86_EFLAGS_OF ) >>X86_EFLAGS_OF_BIT );if (p->ainsn.jcc.type >=0xe ) - match = match && (regs->flags &X86_EFLAGS_ZF ); + match = match || (regs->flags &X86_EFLAGS_ZF ); }__kprobe_emulate_jmp (p, regs, (match && !invert) || (!match && invert)); }
arch/x86/kvm/emulate.c +2 -1
@@ -316,7 +316,8 @@ static int fastop(struct x86_emulate_ctxt *ctxt, fastop_t fop); ".align " __stringify(FASTOP_SIZE) " \n\t" \".type " name", @function \n\t" \ name":\n\t" \ - ASM_ENDBR +ASM_ENDBR \ + IBT_NOSEAL(name)#define FOP_FUNC (name) \ __FOP_FUNC(#name)
arch/x86/mm/init_64.c +1 -1
@@ -645,7 +645,7 @@ phys_pud_init(pud_t *pud_page, unsigned long paddr, unsigned long paddr_end, pages++;spin_lock (&init_mm.page_table_lock); - prot =__pgprot (pgprot_val (prot) | __PAGE_KERNEL_LARGE); + prot =__pgprot (pgprot_val (prot) | _PAGE_PSE); set_pte_init((pte_t *)pud, pfn_pte((paddr & PUD_MASK) >> PAGE_SHIFT,
block/blk-mq.c +1 -1
@@ -2568,7 +2568,7 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug, bool from_schedule)break ;case BLK_STS_RESOURCE :case BLK_STS_DEV_RESOURCE : -blk_mq_request_bypass_insert (rq, false, last); +blk_mq_request_bypass_insert (rq, false, true);blk_mq_commit_rqs (hctx, &queued, from_schedule);return ;default :
drivers/acpi/pci_mcfg.c +3 -0
@@ -41,6 +41,8 @@ struct mcfg_fixup { static struct mcfg_fixup mcfg_quirks[] = {/* { OEM_ID, OEM_TABLE_ID, REV, SEGMENT, BUS_RANGE, ops, cfgres }, */ +#ifdef CONFIG_ARM64 +#define AL_ECAM (table_id, rev, seg, ops) \ { "AMAZON", table_id, rev, seg, MCFG_BUS_ANY, ops }
@@ -169,6 +171,7 @@ static struct mcfg_fixup mcfg_quirks[] = {ALTRA_ECAM_QUIRK (1 ,13 ),ALTRA_ECAM_QUIRK (1 ,14 ), ALTRA_ECAM_QUIRK(1, 15), +#endif /* ARM64 */ };static char mcfg_oem_id[ACPI_OEM_ID_SIZE ];
drivers/acpi/pptt.c +47 -55
180 lines not on this page · raw message
drivers/acpi/property.c +4 -4
@@ -155,10 +155,10 @@ static bool acpi_nondev_subnode_ok(acpi_handle scope,return acpi_nondev_subnode_data_ok (handle, link, list, parent); } -static int acpi_add_nondev_subnodes (acpi_handle scope, -const union acpi_object *links, -struct list_head *list, -struct fwnode_handle *parent) +static bool acpi_add_nondev_subnodes (acpi_handle scope, +const union acpi_object *links, +struct list_head *list, +struct fwnode_handle *parent) {bool ret = false;int i;
drivers/ata/libata-eh.c +1 -0
@@ -2122,6 +2122,7 @@ const char *ata_get_cmd_name(u8 command) { ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" }, { ATA_CMD_FPDMA_READ, "READ FPDMA QUEUED" }, { ATA_CMD_FPDMA_WRITE, "WRITE FPDMA QUEUED" }, + { ATA_CMD_NCQ_NON_DATA, "NCQ NON-DATA" }, { ATA_CMD_FPDMA_SEND, "SEND FPDMA QUEUED" }, { ATA_CMD_FPDMA_RECV, "RECEIVE FPDMA QUEUED" }, { ATA_CMD_PIO_READ, "READ SECTOR(S)" },
drivers/atm/idt77252.c +1 -0
@@ -3752,6 +3752,7 @@ static void __exit idt77252_exit(void) card = idt77252_chain; dev = card->atmdev; idt77252_chain = card->next; +del_timer_sync (&card->tst_timer);if (dev->phy->stop) dev->phy->stop (dev);
drivers/block/virtio_blk.c +10 -14
@@ -101,6 +101,14 @@ static inline blk_status_t virtblk_result(struct virtblk_req *vbr) } } +static inline struct virtio_blk_vq *get_virtio_blk_vq (struct blk_mq_hw_ctx *hctx) +{ +struct virtio_blk *vblk = hctx->queue->queuedata; +struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num]; + +return vq; +} +static int virtblk_add_req (struct virtqueue *vq,struct virtblk_req *vbr) {struct scatterlist hdr, status, *sgs[3 ];
@@ -416,7 +424,7 @@ static void virtio_queue_rqs(struct request **rqlist)struct request *requeue_list =NULL ;rq_list_for_each_safe (rqlist, req, next) { -struct virtio_blk_vq *vq = req->mq_hctx->driver_data; +struct virtio_blk_vq *vq =get_virtio_blk_vq (req->mq_hctx);bool kick;if (!virtblk_prep_rq_batch (req)) {
@@ -837,7 +845,7 @@ static void virtblk_complete_batch(struct io_comp_batch *iob)static int virtblk_poll (struct blk_mq_hw_ctx *hctx,struct io_comp_batch *iob) {struct virtio_blk *vblk = hctx->queue->queuedata; -struct virtio_blk_vq *vq = hctx->driver_data; +struct virtio_blk_vq *vq =get_virtio_blk_vq (hctx);struct virtblk_req *vbr;unsigned long flags;unsigned int len;
@@ -862,22 +870,10 @@ static int virtblk_poll(struct blk_mq_hw_ctx *hctx, struct io_comp_batch *iob)return found; } -static int virtblk_init_hctx (struct blk_mq_hw_ctx *hctx,void *data, -unsigned int hctx_idx) -{ -struct virtio_blk *vblk = data; -struct virtio_blk_vq *vq = &vblk->vqs[hctx_idx]; - -WARN_ON (vblk->tag_set.tags[hctx_idx] != hctx->tags); - hctx->driver_data = vq; -return 0 ; -} -static const struct blk_mq_ops virtio_mq_ops = { .queue_rq = virtio_queue_rq, .queue_rqs = virtio_queue_rqs, .commit_rqs = virtio_commit_rqs, - .init_hctx = virtblk_init_hctx, .complete = virtblk_request_done, .map_queues = virtblk_map_queues, .poll = virtblk_poll,
drivers/block/zram/zcomp.c +5 -6
@@ -63,12 +63,6 @@ static int zcomp_strm_init(struct zcomp_strm *zstrm, struct zcomp *comp)bool zcomp_available_algorithm (const char *comp) { -int i; - - i =sysfs_match_string (backends, comp); -if (i >=0 ) -return true; -/* * Crypto does not ignore a trailing new line symbol, * so make sure you don't supply a string containing
@@ -217,6 +211,11 @@ struct zcomp *zcomp_create(const char *compress)struct zcomp *comp;int error; +/* +* Crypto API will execute /sbin/modprobe if the compression module +* is not loaded yet. We must do it here, otherwise we are about to +* call /sbin/modprobe under CPU hot-plug lock. +*/ if (!zcomp_available_algorithm (compress))return ERR_PTR (-EINVAL );
drivers/clk/imx/clk-imx93.c +1 -1
@@ -160,7 +160,7 @@ static const struct imx93_clk_ccgr { { IMX93_CLK_SEMA2_GATE, "sema2", "bus_wakeup_root", 0x8480, }, { IMX93_CLK_MU_A_GATE, "mu_a", "bus_aon_root", 0x84c0, }, { IMX93_CLK_MU_B_GATE, "mu_b", "bus_aon_root", 0x8500, }, - { IMX93_CLK_EDMA1_GATE, "edma1", "wakeup_axi_root", 0x8540, }, + { IMX93_CLK_EDMA1_GATE, "edma1", "m33_root", 0x8540, }, { IMX93_CLK_EDMA2_GATE, "edma2", "wakeup_axi_root", 0x8580, }, { IMX93_CLK_FLEXSPI1_GATE, "flexspi", "flexspi_root", 0x8640, }, { IMX93_CLK_GPIO1_GATE, "gpio1", "m33_root", 0x8880, },
drivers/clk/qcom/clk-alpha-pll.c +1 -1
@@ -1439,7 +1439,7 @@ const struct clk_ops clk_alpha_pll_postdiv_fabia_ops = {EXPORT_SYMBOL_GPL (clk_alpha_pll_postdiv_fabia_ops);/** -* clk_lucid_pll_configure - configure the lucid pll +* clk_trion_pll_configure - configure the trion pll * * @pll: clk alpha pll * @regmap: register map
drivers/clk/qcom/gcc-ipq8074.c +1 -0
@@ -662,6 +662,7 @@ static struct clk_branch gcc_sleep_clk_src = { }, .num_parents = 1, .ops = &clk_branch2_ops, + .flags = CLK_IS_CRITICAL, }, }, };
drivers/clk/ti/clk-44xx.c +105 -105
339 lines not on this page · raw message
drivers/clk/ti/clk-54xx.c +80 -80
249 lines not on this page · raw message
drivers/clk/ti/clkctrl.c +0 -4
@@ -528,10 +528,6 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)char *c;u16 soc_mask =0 ; -if (!(ti_clk_get_features ()->flags &TI_CLK_CLKCTRL_COMPAT ) && -of_node_name_eq (node,"clk" )) - ti_clk_features.flags |=TI_CLK_CLKCTRL_COMPAT ; - addrp =of_get_address (node,0 ,NULL ,NULL ); addr = (u32 )of_translate_address (node, addrp);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +11 -0
@@ -982,6 +982,11 @@ static int dw_axi_dma_chan_slave_config(struct dma_chan *dchan,static void axi_chan_dump_lli (struct axi_dma_chan *chan,struct axi_dma_hw_desc *desc) { +if (!desc->lli) { +dev_err (dchan2dev (&chan->vc.chan),"NULL LLI\n" ); +return ; + } + dev_err(dchan2dev(&chan->vc.chan), "SAR: 0x%llx DAR: 0x%llx LLP: 0x%llx BTS 0x%x CTL: 0x%x:%08x", le64_to_cpu(desc->lli->sar),
@@ -1049,6 +1054,11 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan)/* The completed descriptor currently is in the head of vc list */ vd =vchan_next_desc (&chan->vc); +if (!vd) { +dev_err (chan2dev (chan),"BUG: %s, IRQ with no descriptors\n" , +axi_chan_name (chan)); + goto out; + }if (chan->cyclic) { desc =vd_to_axi_desc (vd);
@@ -1078,6 +1088,7 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan)axi_chan_start_first_queued (chan); } +out:spin_unlock_irqrestore (&chan->vc.lock, flags); }
drivers/dma/sprd-dma.c +1 -4
@@ -1237,11 +1237,8 @@ static int sprd_dma_remove(struct platform_device *pdev) {struct sprd_dma_dev *sdev =platform_get_drvdata (pdev);struct sprd_dma_chn *c, *cn; -int ret; - ret =pm_runtime_get_sync (&pdev->dev); -if (ret <0 ) -return ret; +pm_runtime_get_sync (&pdev->dev);/* explicitly free the irq */ if (sdev->irq >0 )
drivers/dma/tegra186-gpc-dma.c +24 -2
@@ -157,8 +157,8 @@* If any burst is in flight and DMA paused then this is the time to complete * on-flight burst and update DMA status register. */ -#define TEGRA_GPCDMA_BURST_COMPLETE_TIME 20 -#define TEGRA_GPCDMA_BURST_COMPLETION_TIMEOUT 100 +#define TEGRA_GPCDMA_BURST_COMPLETE_TIME 10 +#define TEGRA_GPCDMA_BURST_COMPLETION_TIMEOUT 5000/* 5 msec */ /* Channel base address offset from GPCDMA base address */ #define TEGRA_GPCDMA_CHANNEL_BASE_ADD_OFFSET 0x20000
@@ -432,6 +432,17 @@ static int tegra_dma_device_resume(struct dma_chan *dc)return 0 ; } +static inline int tegra_dma_pause_noerr (struct tegra_dma_channel *tdc) +{ +/* Return 0 irrespective of PAUSE status. +* This is useful to recover channels that can exit out of flush +* state when the channel is disabled. +*/ + +tegra_dma_pause (tdc); +return 0 ; +} +static void tegra_dma_disable (struct tegra_dma_channel *tdc) {u32 csr, status;
@@ -1292,6 +1303,14 @@ static const struct tegra_dma_chip_data tegra194_dma_chip_data = { .terminate = tegra_dma_pause, }; +static const struct tegra_dma_chip_data tegra234_dma_chip_data = { + .nr_channels =31 , + .channel_reg_size =SZ_64K , + .max_dma_count =SZ_1G , + .hw_support_pause = true, + .terminate = tegra_dma_pause_noerr, +}; +static const struct of_device_id tegra_dma_of_match[] = { { .compatible ="nvidia,tegra186-gpcdma" ,
@@ -1299,6 +1318,9 @@ static const struct of_device_id tegra_dma_of_match[] = { }, { .compatible = "nvidia,tegra194-gpcdma", .data = &tegra194_dma_chip_data, + }, { + .compatible = "nvidia,tegra234-gpcdma", + .data = &tegra234_dma_chip_data, }, { }, };
drivers/gpu/drm/amd/amdgpu/aldebaran.c +14 -31
94 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +1 -1
@@ -314,7 +314,7 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev, mem_channel_number = vram_info->v30.channel_num; mem_channel_width = vram_info->v30.channel_width;if (vram_width) - *vram_width = mem_channel_number * mem_channel_width; + *vram_width = mem_channel_number * (1 << mem_channel_width);break ;default :return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +2 -6
@@ -837,16 +837,12 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)continue ; r =amdgpu_vm_bo_update (adev, bo_va, false); -if (r) { -mutex_unlock (&p->bo_list->bo_list_mutex); +if (r)return r; - } r =amdgpu_sync_fence (&p->job->sync, bo_va->last_pt_update); -if (r) { -mutex_unlock (&p->bo_list->bo_list_mutex); +if (r)return r; - } } r =amdgpu_vm_handle_moved (adev, vm);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -0
@@ -4746,6 +4746,8 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle, tmp_adev = list_first_entry(device_list_handle, struct amdgpu_device, reset_list);amdgpu_reset_reg_dumps (tmp_adev); + + reset_context->reset_device_list = device_list_handle; r =amdgpu_reset_perform_reset (tmp_adev, reset_context);/* If reset handler not implemented, continue; otherwise return */ if (r == -ENOSYS )
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h +1 -0
@@ -37,6 +37,7 @@ struct amdgpu_reset_context {struct amdgpu_device *reset_req_dev;struct amdgpu_job *job;struct amdgpu_hive_info *hive; +struct list_head *reset_device_list;unsigned long flags; };
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +1 -2
@@ -496,8 +496,7 @@ static int amdgpu_vkms_sw_init(void *handle)adev_to_drm (adev)->mode_config.max_height =YRES_MAX ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;adev_to_drm (adev)->mode_config.fb_base = adev->gmc.aper_base;
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +1 -2
@@ -2796,8 +2796,7 @@ static int dce_v10_0_sw_init(void *handle)adev_to_drm (adev)->mode_config.max_height =16384 ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;adev_to_drm (adev)->mode_config.fb_modifiers_not_supported = true;
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +1 -2
@@ -2914,8 +2914,7 @@ static int dce_v11_0_sw_init(void *handle)adev_to_drm (adev)->mode_config.max_height =16384 ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;adev_to_drm (adev)->mode_config.fb_modifiers_not_supported = true;
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +1 -2
@@ -2673,8 +2673,7 @@ static int dce_v6_0_sw_init(void *handle)adev_to_drm (adev)->mode_config.max_width =16384 ;adev_to_drm (adev)->mode_config.max_height =16384 ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;adev_to_drm (adev)->mode_config.fb_modifiers_not_supported = true;adev_to_drm (adev)->mode_config.fb_base = adev->gmc.aper_base;
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +5 -2
@@ -2693,8 +2693,11 @@ static int dce_v8_0_sw_init(void *handle)adev_to_drm (adev)->mode_config.max_height =16384 ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +if (adev->asic_type ==CHIP_HAWAII ) +/* disable prefer shadow for now due to hibernation issues */ +adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +else +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;adev_to_drm (adev)->mode_config.fb_modifiers_not_supported = true;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +5 -2
@@ -3894,8 +3894,11 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)adev_to_drm (adev)->mode_config.max_height =16384 ;adev_to_drm (adev)->mode_config.preferred_depth =24 ; -/* disable prefer shadow for now due to hibernation issues */ -adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +if (adev->asic_type ==CHIP_HAWAII ) +/* disable prefer shadow for now due to hibernation issues */ +adev_to_drm (adev)->mode_config.prefer_shadow =0 ; +else +adev_to_drm (adev)->mode_config.prefer_shadow =1 ;/* indicates support for immediate flip */ adev_to_drm (adev)->mode_config.async_page_flip = true;
drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c +1 -1
@@ -372,7 +372,7 @@ static struct stream_encoder *dcn303_stream_encoder_create(enum engine_id eng_idint afmt_inst;/* Mapping of VPG, AFMT, DME register blocks to DIO block instance */ -if (eng_id <=ENGINE_ID_DIGE ) { +if (eng_id <=ENGINE_ID_DIGB ) { vpg_inst = eng_id; afmt_inst = eng_id; }else
drivers/gpu/drm/bridge/lvds-codec.c +1 -1
@@ -180,7 +180,7 @@ static int lvds_codec_probe(struct platform_device *pdev)of_node_put (bus_node);if (ret == -ENODEV ) {dev_warn (dev,"missing 'data-mapping' DT property\n" ); - }else if (ret) { + }else if (ret <0 ) {dev_err (dev,"invalid 'data-mapping' DT property\n" );return ret; }else {
drivers/gpu/drm/i915/gem/i915_gem_object.c +4 -12
@@ -268,7 +268,7 @@ static void __i915_gem_object_free_mmaps(struct drm_i915_gem_object *obj)*/ void __i915_gem_object_pages_fini (struct drm_i915_gem_object *obj) { -assert_object_held (obj); +assert_object_held_shared (obj);if (!list_empty (&obj->vma.list)) {struct i915_vma *vma;
@@ -331,15 +331,7 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,continue ; } -if (!i915_gem_object_trylock (obj,NULL )) { -/* busy, toss it back to the pile */ -if (llist_add (&obj->freed, &i915->mm.free_list)) -queue_delayed_work (i915->wq, &i915->mm.free_work,msecs_to_jiffies (10 )); -continue ; - } -__i915_gem_object_pages_fini (obj); -i915_gem_object_unlock (obj);__i915_gem_free_object (obj);/* But keep the pointer alive for RCU-protected lookups */
@@ -359,7 +351,7 @@ void i915_gem_flush_free_objects(struct drm_i915_private *i915)static void __i915_gem_free_work (struct work_struct *work) {struct drm_i915_private *i915 = - container_of(work, struct drm_i915_private, mm.free_work.work); + container_of(work, struct drm_i915_private, mm.free_work);i915_gem_flush_free_objects (i915); }
@@ -391,7 +383,7 @@ static void i915_gem_free_object(struct drm_gem_object *gem_obj)*/ if (llist_add (&obj->freed, &i915->mm.free_list)) -queue_delayed_work (i915->wq, &i915->mm.free_work,0 ); +queue_work (i915->wq, &i915->mm.free_work); } void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj,
@@ -719,7 +711,7 @@ bool i915_gem_object_placement_possible(struct drm_i915_gem_object *obj,void i915_gem_init__objects (struct drm_i915_private *i915) { -INIT_DELAYED_WORK (&i915->mm.free_work, __i915_gem_free_work); +INIT_WORK (&i915->mm.free_work, __i915_gem_free_work); }void i915_objects_module_exit (void )
drivers/gpu/drm/i915/gem/i915_gem_object_types.h +2 -1
@@ -335,7 +335,6 @@ struct drm_i915_gem_object {#define I915_BO_READONLY BIT(7)#define I915_TILING_QUIRK_BIT 8/* unknown swizzling; do not release! */ #define I915_BO_PROTECTED BIT(9) -#define I915_BO_WAS_BOUND_BIT 10/** * @mem_flags - Mutable placement-related flags *
@@ -598,6 +597,8 @@ struct drm_i915_gem_object {* pages were last acquired. */ bool dirty:1; + +u32 tlb; } mm;struct {
drivers/gpu/drm/i915/gem/i915_gem_pages.c +16 -9
@@ -6,14 +6,15 @@#include <drm/drm_cache.h> +#include "gt/intel_gt.h" +#include "gt/intel_gt_pm.h" +#include "i915_drv.h" #include "i915_gem_object.h" #include "i915_scatterlist.h" #include "i915_gem_lmem.h" #include "i915_gem_mman.h" -#include "gt/intel_gt.h" -void __i915_gem_object_set_pages (struct drm_i915_gem_object *obj,struct sg_table *pages,unsigned int sg_page_sizes)
@@ -190,6 +191,18 @@ static void unmap_object(struct drm_i915_gem_object *obj, void *ptr)vunmap (ptr); } +static void flush_tlb_invalidate (struct drm_i915_gem_object *obj) +{ +struct drm_i915_private *i915 =to_i915 (obj->base.dev); +struct intel_gt *gt =to_gt (i915); + +if (!obj->mm.tlb) +return ; + +intel_gt_invalidate_tlb (gt, obj->mm.tlb); + obj->mm.tlb =0 ; +} +struct sg_table *__i915_gem_object_unset_pages (struct drm_i915_gem_object *obj) {
@@ -215,13 +228,7 @@ __i915_gem_object_unset_pages(struct drm_i915_gem_object *obj)__i915_gem_object_reset_page_iter (obj); obj->mm.page_sizes.phys = obj->mm.page_sizes.sg =0 ; -if (test_and_clear_bit (I915_BO_WAS_BOUND_BIT , &obj->flags)) { -struct drm_i915_private *i915 =to_i915 (obj->base.dev); -intel_wakeref_t wakeref; - - with_intel_runtime_pm_if_active(&i915->runtime_pm, wakeref) -intel_gt_invalidate_tlbs (to_gt (i915)); - } +flush_tlb_invalidate (obj);return pages; }
drivers/gpu/drm/i915/gt/intel_gt.c +60 -17
152 lines not on this page · raw message
drivers/gpu/drm/i915/gt/intel_gt.h +11 -1
@@ -123,7 +123,17 @@ void intel_gt_info_print(const struct intel_gt_info *info,void intel_gt_watchdog_work (struct work_struct *work); -void intel_gt_invalidate_tlbs (struct intel_gt *gt); +static inline u32 intel_gt_tlb_seqno (const struct intel_gt *gt) +{ +return seqprop_sequence (>->tlb.seqno); +} + +static inline u32 intel_gt_next_invalidate_tlb_full (const struct intel_gt *gt) +{ +return intel_gt_tlb_seqno (gt) |1 ; +} + +void intel_gt_invalidate_tlb (struct intel_gt *gt,u32 seqno);struct resource intel_pci_resource (struct pci_dev *pdev,int bar);
drivers/gpu/drm/i915/gt/intel_gt_pm.h +3 -0
@@ -55,6 +55,9 @@ static inline void intel_gt_pm_might_put(struct intel_gt *gt)for (tmp =1 ,intel_gt_pm_get (gt); tmp; \ intel_gt_pm_put(gt), tmp = 0) +#define with_intel_gt_pm_if_awake (gt, wf) \ + for (wf = intel_gt_pm_get_if_awake(gt); wf; intel_gt_pm_put_async(gt), wf = 0) +static inline int intel_gt_pm_wait_for_idle (struct intel_gt *gt) {return intel_wakeref_wait_for_idle (>->wakeref);
drivers/gpu/drm/i915/gt/intel_gt_types.h +17 -1
@@ -11,6 +11,7 @@#include <linux/llist.h> #include <linux/mutex.h> #include <linux/notifier.h> +#include <linux/seqlock.h> #include <linux/spinlock.h> #include <linux/types.h> #include <linux/workqueue.h>
@@ -76,7 +77,22 @@ struct intel_gt {struct intel_uc uc;struct intel_gsc gsc; -struct mutex tlb_invalidate_lock; +struct { +/* Serialize global tlb invalidations */ +struct mutex invalidate_lock; + +/* +* Batch TLB invalidations +* +* After unbinding the PTE, we need to ensure the TLB +* are invalidated prior to releasing the physical pages. +* But we only need one such invalidation for all unbinds, +* so we track how many TLB invalidations have been +* performed since unbind the PTE and only emit an extra +* invalidate if no full barrier has been passed. +*/ +seqcount_mutex_t seqno; + } tlb;struct i915_wa_list wa_list;
drivers/gpu/drm/i915/gt/intel_migrate.c +22 -1
@@ -708,7 +708,7 @@ intel_context_migrate_copy(struct intel_context *ce,u8 src_access, dst_access;struct i915_request *rq;int src_sz, dst_sz; -bool ccs_is_src; +bool ccs_is_src, overwrite_ccs;int err;GEM_BUG_ON (ce->vm != ce->engine->gt->migrate.context->vm);
@@ -749,6 +749,8 @@ intel_context_migrate_copy(struct intel_context *ce,get_ccs_sg_sgt (&it_ccs, bytes_to_cpy); } + overwrite_ccs =HAS_FLAT_CCS (i915) && !ccs_bytes_to_cpy && dst_is_lmem; + src_offset =0 ; dst_offset =CHUNK_SZ ;if (HAS_64K_PAGES (ce->engine->i915)) {
@@ -852,6 +854,25 @@ intel_context_migrate_copy(struct intel_context *ce,if (err) goto out_rq; ccs_bytes_to_cpy -= ccs_sz; + }else if (overwrite_ccs) { + err = rq->engine->emit_flush (rq,EMIT_INVALIDATE ); +if (err) + goto out_rq; + +/* +* While we can't always restore/manage the CCS state, +* we still need to ensure we don't leak the CCS state +* from the previous user, so make sure we overwrite it +* with something. +*/ + err =emit_copy_ccs (rq, dst_offset,INDIRECT_ACCESS , + dst_offset,DIRECT_ACCESS , len); +if (err) + goto out_rq; + + err = rq->engine->emit_flush (rq,EMIT_INVALIDATE ); +if (err) + goto out_rq; }/* Arbitration is re-enabled between requests. */
drivers/gpu/drm/i915/gt/intel_ppgtt.c +6 -2
@@ -206,8 +206,12 @@ void ppgtt_bind_vma(struct i915_address_space *vm,void ppgtt_unbind_vma (struct i915_address_space *vm,struct i915_vma_resource *vma_res) { -if (vma_res->allocated) - vm->clear_range (vm, vma_res->start, vma_res->vma_size); +if (!vma_res->allocated) +return ; + + vm->clear_range (vm, vma_res->start, vma_res->vma_size); +if (vma_res->tlb) +vma_invalidate_tlb (vm, vma_res->tlb); }static unsigned long pd_count (u64 size,int shift)
drivers/gpu/drm/i915/i915_drv.h +2 -2
@@ -254,7 +254,7 @@ struct i915_gem_mm {* List of objects which are pending destruction. */ struct llist_head free_list; -struct delayed_work free_work; +struct work_struct free_work;/** * Count of objects pending destructions. Used to skip needlessly * waiting on an RCU barrier if no objects are waiting to be freed.
@@ -1415,7 +1415,7 @@ static inline void i915_gem_drain_freed_objects(struct drm_i915_private *i915)* armed the work again. */ while (atomic_read (&i915->mm.free_count)) { -flush_delayed_work (&i915->mm.free_work); +flush_work (&i915->mm.free_work);flush_delayed_work (&i915->bdev.wq);rcu_barrier (); }
drivers/gpu/drm/i915/i915_vma.c +26 -7
@@ -537,8 +537,6 @@ int i915_vma_bind(struct i915_vma *vma, bind_flags); } -set_bit (I915_BO_WAS_BOUND_BIT , &vma->obj->flags); -atomic_or (bind_flags, &vma->flags);return 0 ; }
@@ -1301,6 +1299,19 @@ I915_SELFTEST_EXPORT int i915_vma_get_pages(struct i915_vma *vma)return err; } +void vma_invalidate_tlb (struct i915_address_space *vm,u32 *tlb) +{ +/* +* Before we release the pages that were bound by this vma, we +* must invalidate all the TLBs that may still have a reference +* back to our physical address. It only needs to be done once, +* so after updating the PTE to point away from the pages, record +* the most recent TLB invalidation seqno, and if we have not yet +* flushed the TLBs upon release, perform a full invalidation. +*/ +WRITE_ONCE (*tlb,intel_gt_next_invalidate_tlb_full (vm->gt)); +} +static void __vma_put_pages (struct i915_vma *vma,unsigned int count) {/* We allocate under vma_get_pages, so beware the shrinker */
@@ -1927,7 +1938,12 @@ struct dma_fence *__i915_vma_evict(struct i915_vma *vma, bool async) vma->vm->skip_pte_rewrite;trace_i915_vma_unbind (vma); - unbind_fence =i915_vma_resource_unbind (vma_res); +if (async) + unbind_fence =i915_vma_resource_unbind (vma_res, + &vma->obj->mm.tlb); +else + unbind_fence =i915_vma_resource_unbind (vma_res,NULL ); + vma->resource =NULL ; atomic_and(~(I915_VMA_BIND_MASK | I915_VMA_ERROR | I915_VMA_GGTT_WRITE),
@@ -1935,10 +1951,13 @@ struct dma_fence *__i915_vma_evict(struct i915_vma *vma, bool async)i915_vma_detach (vma); -if (!async && unbind_fence) { -dma_fence_wait (unbind_fence, false); -dma_fence_put (unbind_fence); - unbind_fence =NULL ; +if (!async) { +if (unbind_fence) { +dma_fence_wait (unbind_fence, false); +dma_fence_put (unbind_fence); + unbind_fence =NULL ; + } +vma_invalidate_tlb (vma->vm, &vma->obj->mm.tlb); }/*
drivers/gpu/drm/i915/i915_vma.h +1 -0
@@ -213,6 +213,7 @@ bool i915_vma_misplaced(const struct i915_vma *vma, u64 size, u64 alignment, u64 flags);void __i915_vma_set_map_and_fenceable (struct i915_vma *vma);void i915_vma_revoke_mmap (struct i915_vma *vma); +void vma_invalidate_tlb (struct i915_address_space *vm,u32 *tlb);struct dma_fence *__i915_vma_evict (struct i915_vma *vma,bool async);int __i915_vma_unbind (struct i915_vma *vma);int __must_check i915_vma_unbind (struct i915_vma *vma);
drivers/gpu/drm/i915/i915_vma_resource.c +4 -1
@@ -223,10 +223,13 @@ i915_vma_resource_fence_notify(struct i915_sw_fence *fence,* Return: A refcounted pointer to a dma-fence that signals when unbinding is * complete. */ -struct dma_fence *i915_vma_resource_unbind (struct i915_vma_resource *vma_res) +struct dma_fence *i915_vma_resource_unbind (struct i915_vma_resource *vma_res, +u32 *tlb) {struct i915_address_space *vm = vma_res->vm; + vma_res->tlb = tlb; +/* Reference for the sw fence */ i915_vma_resource_get (vma_res);
drivers/gpu/drm/i915/i915_vma_resource.h +5 -1
@@ -67,6 +67,7 @@ struct i915_page_sizes {* taken when the unbind is scheduled. * @skip_pte_rewrite: During ggtt suspend and vm takedown pte rewriting * needs to be skipped for unbind. +* @tlb: pointer for obj->mm.tlb, if async unbind. Otherwise, NULL
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +22 -0
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-etm4x.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/sw/rxe/rxe_mr.c +66 -133
199 lines not on this page · raw message
drivers/infiniband/sw/rxe/rxe_verbs.c +27 -12
Lines of this file are not shown. View the raw message.
drivers/infiniband/ulp/iser/iser_initiator.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/input/misc/iqs7222.c +116 -62
178 lines not on this page · raw message
drivers/iommu/io-pgtable-arm-v7s.c +56 -19
75 lines not on this page · raw message
drivers/media/platform/qcom/venus/pm_helpers.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/misc/habanalabs/gaudi/gaudi.c +30 -20
50 lines not on this page · raw message
drivers/misc/habanalabs/goya/goya_hwmgr.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/misc/uacce/uacce.c +87 -46
133 lines not on this page · raw message
drivers/mmc/host/renesas_sdhi_internal_dmac.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/dsa/ocelot/felix_vsc9959.c +387 -104
491 lines not on this page · raw message
drivers/net/dsa/ocelot/seville_vsc9953.c +382 -102
484 lines not on this page · raw message
drivers/net/dsa/sja1105/sja1105_devlink.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_nic.c +8 -13
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmmii.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/t4_msg.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/engleder/tsnep_main.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_ptp.c +1 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_txrx.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_adminq.c +13 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +17 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_fltr.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_lib.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_main.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_switch.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_vf_lib.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_virtchnl.c +50 -7
57 lines not on this page · raw message
drivers/net/ethernet/intel/igb/igb_main.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +11 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +14 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/moxa/moxart_ether.c +10 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mscc/ocelot.c +32 -19
51 lines not on this page · raw message
drivers/net/ethernet/mscc/ocelot_net.c +30 -25
55 lines not on this page · raw message
drivers/net/ethernet/mscc/ocelot_vsc7514.c +373 -95
468 lines not on this page · raw message
drivers/net/ethernet/mscc/vsc7514_regs.c +14 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/nomadik/pinctrl-nomadik.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzg2l.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/platform/chrome/cros_ec_proto.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/spi/spi-meson-spicc.c +101 -28
129 lines not on this page · raw message
drivers/staging/r8188eu/core/rtw_cmd.c +13 -2
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/core/rtw_efuse.c +25 -8
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/core/rtw_fw.c +55 -17
72 lines not on this page · raw message
drivers/staging/r8188eu/core/rtw_led.c +13 -3
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/core/rtw_mlme_ext.c +52 -10
62 lines not on this page · raw message
drivers/staging/r8188eu/core/rtw_pwrctrl.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/core/rtw_wlan_util.c +17 -3
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c +17 -4
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c +17 -4
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/HalPwrSeqCmd.c +7 -2
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/rtl8188e_cmd.c +31 -6
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/rtl8188e_dm.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c +103 -33
136 lines not on this page · raw message
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c +24 -6
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/hal/usb_halinit.c +209 -42
251 lines not on this page · raw message
drivers/staging/r8188eu/hal/usb_ops_linux.c +20 -13
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/include/rtw_io.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/os_dep/ioctl_linux.c +36 -11
47 lines not on this page · raw message
drivers/staging/r8188eu/os_dep/os_intfs.c +16 -3
Lines of this file are not shown. View the raw message.
drivers/ufs/host/ufs-mediatek.c +55 -5
60 lines not on this page · raw message
drivers/usb/gadget/function/uvc_queue.c +12 -5
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/uvc_video.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/virt/vboxguest/vboxguest_linux.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/xen/xenbus/xenbus_dev_frontend.c +2 -2
Lines of this file are not shown. View the raw message.
fs/nfs/nfs4idmap.c +24 -22
46 lines not on this page · raw message
include/linux/usb/typec_mux.h +38 -6
44 lines not on this page · raw message
include/soc/mscc/ocelot.h +102 -11
113 lines not on this page · raw message
include/uapi/linux/atm_zatm.h new file +47 -0
47 lines not on this page · raw message
kernel/trace/trace_eprobe.c +85 -6
91 lines not on this page · raw message
net/mptcp/protocol.c +22 -25
47 lines not on this page · raw message
net/netfilter/nf_conntrack_sane.c +30 -38
68 lines not on this page · raw message
net/netfilter/nf_tables_api.c +57 -17
74 lines not on this page · raw message
net/netfilter/nfnetlink.c +71 -12
83 lines not on this page · raw message
sound/core/misc.c +94 -0
94 lines not on this page · raw message
sound/soc/codecs/tas2770.c +43 -55
98 lines not on this page · raw message
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc +0 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/custom_multipath_hash.sh +16 -8
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh +16 -8
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh +16 -8
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_connect.c +17 -9
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.