Skip to contentSkip to conversation

Linux 6.3.3

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages May 17, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.3.3 kernel.

All users of the 6.3 kernel series must upgrade.

The updated 6.3.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.3.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/devicetree/bindings/perf/riscv,pmu.yaml                 |    1 
 Makefile                                                              |    2 
 arch/arm/boot/dts/aspeed-bmc-asrock-e3c246d4i.dts                     |    2 
 arch/arm/boot/dts/aspeed-bmc-asrock-romed8hm3.dts                     |    4 
 arch/arm/boot/dts/exynos4412-itop-elite.dts                           |    2 
 arch/arm/boot/dts/s5pv210.dtsi                                        |    2 
 arch/arm64/kernel/cpu-reset.S                                         |    2 
 arch/arm64/kernel/head.S                                              |    4 
 arch/arm64/kernel/sleep.S                                             |    2 
 arch/arm64/mm/proc.S                                                  |    6 
 arch/parisc/include/asm/pgtable.h                                     |    8 
 arch/riscv/kernel/Makefile                                            |    1 
 arch/riscv/mm/pageattr.c                                              |    8 
 arch/s390/boot/vmem.c                                                 |   27 
 arch/s390/include/asm/pgtable.h                                       |    2 
 arch/s390/kernel/uv.c                                                 |   32 
 arch/s390/kvm/pv.c                                                    |    5 
 arch/s390/mm/gmap.c                                                   |    7 
 arch/s390/mm/pageattr.c                                               |    2 
 arch/sh/Kconfig.debug                                                 |    2 
 arch/sh/kernel/head_32.S                                              |    6 
 arch/sh/kernel/nmi_debug.c                                            |    4 
 arch/sh/kernel/setup.c                                                |    4 
 arch/sh/math-emu/sfp-util.h                                           |    4 
 arch/x86/events/core.c                                                |    6 
 arch/x86/kernel/amd_nb.c                                              |    2 
 arch/x86/kvm/kvm_cache_regs.h                                         |    2 
 arch/x86/kvm/mmu.h                                                    |   26 
 arch/x86/kvm/mmu/mmu.c                                                |   46 
 arch/x86/kvm/mmu/paging_tmpl.h                                        |    2 
 arch/x86/kvm/pmu.c                                                    |    4 
 arch/x86/kvm/vmx/nested.c                                             |    4 
 arch/x86/kvm/vmx/vmx.c                                                |    6 
 arch/x86/kvm/vmx/vmx.h                                                |   18 
 arch/x86/kvm/x86.c                                                    |   12 
 arch/x86/lib/clear_page_64.S                                          |    2 
 arch/x86/lib/retpoline.S                                              |    4 
 block/blk-cgroup.c                                                    |    3 
 crypto/algapi.c                                                       |    3 
 crypto/crypto_engine.c                                                |    6 
 drivers/block/ublk_drv.c                                              |   31 
 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c                   |    2 
 drivers/crypto/ccp/psp-dev.c                                          |    6 
 drivers/edac/qcom_edac.c                                              |   50 
 drivers/firewire/net.c                                                |   21 
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c                                |   13 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                            |    6 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c                               |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c                             |    6 
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c                                |   46 
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c                                 |    3 
 drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c                                |    1 
 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c                                |    1 
 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c                                 |    1 
 drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c                                |    1 
 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c                                |    8 
 drivers/gpu/drm/amd/amdgpu/soc21.c                                    |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                     |   27 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c             |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c           |   17 
 drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c                      |    4 
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c          |    5 
 drivers/gpu/drm/amd/display/dc/core/dc.c                              |  156 --
 drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c                 |   87 +
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c                     |    3 
 drivers/gpu/drm/amd/display/dc/dc.h                                   |  554 +++++++++-
 drivers/gpu/drm/amd/display/dc/dc_dp_types.h                          |  107 +
 drivers/gpu/drm/amd/display/dc/dc_hw_types.h                          |   14 
 drivers/gpu/drm/amd/display/dc/dc_types.h                             |  111 ++
 drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c                         |    2 
 drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h                         |    5 
 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c           |    2 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c             |   18 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c                    |    8 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c       |    1 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c                    |    2 
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c                     |   13 
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c      |    1 
 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c    |    2 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c                   |   23 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c                  |   10 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h                  |    2 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c                   |    1 
 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c               |    1 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c      |    1 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c                    |    3 
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c                 |   12 
 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c               |   10 
 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c                  |    3 
 drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c                  |   18 
 drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c        |    1 
 drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c        |    1 
 drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c                |    4 
 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c      |    1 
 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c        |    6 
 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.h        |    1 
 drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c                |   24 
 drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h                          |   25 
 drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h                     |   14 
 drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h                  |   52 
 drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h                |    1 
 drivers/gpu/drm/amd/display/dc/inc/hw_sequencer_private.h             |    4 
 drivers/gpu/drm/amd/display/dc/inc/link.h                             |    1 
 drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c         |   17 
 drivers/gpu/drm/amd/display/dc/link/link_detection.c                  |   99 +
 drivers/gpu/drm/amd/display/dc/link/link_factory.c                    |    9 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c          |    1 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c       |    1 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c |    1 
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c                     |    3 
 drivers/gpu/drm/amd/display/include/link_service_types.h              |   26 
 drivers/gpu/drm/amd/pm/amdgpu_dpm.c                                   |   25 
 drivers/gpu/drm/bridge/lontium-lt8912b.c                              |    1 
 drivers/gpu/drm/i915/display/icl_dsi.c                                |    2 
 drivers/gpu/drm/i915/display/intel_dsi_vbt.c                          |   11 
 drivers/gpu/drm/i915/display/intel_dsi_vbt.h                          |    1 
 drivers/gpu/drm/i915/display/skl_scaler.c                             |   17 
 drivers/gpu/drm/i915/display/vlv_dsi.c                                |   22 
 drivers/gpu/drm/i915/gt/intel_gt_regs.h                               |    4 
 drivers/gpu/drm/i915/gt/intel_workarounds.c                           |   33 
 drivers/gpu/drm/i915/gt/uc/intel_uc.c                                 |   42 
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c                              |  132 +-
 drivers/gpu/drm/i915/i915_pci.c                                       |    2 
 drivers/gpu/drm/i915/i915_reg.h                                       |    4 
 drivers/gpu/drm/i915/i915_reg_defs.h                                  |   29 
 drivers/gpu/drm/msm/adreno/adreno_device.c                            |   16 
 drivers/gpu/drm/msm/msm_drv.c                                         |   52 
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c                      |    2 
 drivers/hid/wacom_wac.c                                               |   38 
 drivers/hid/wacom_wac.h                                               |    1 
 drivers/i2c/busses/i2c-gxp.c                                          |    2 
 drivers/i2c/busses/i2c-tegra.c                                        |   40 
 drivers/infiniband/sw/rxe/rxe.c                                       |    8 
 drivers/infiniband/sw/rxe/rxe.h                                       |   45 
 drivers/infiniband/sw/rxe/rxe_cq.c                                    |    6 
 drivers/infiniband/sw/rxe/rxe_icrc.c                                  |    4 
 drivers/infiniband/sw/rxe/rxe_mmap.c                                  |    6 
 drivers/infiniband/sw/rxe/rxe_net.c                                   |    4 
 drivers/infiniband/sw/rxe/rxe_qp.c                                    |   16 
 drivers/infiniband/sw/rxe/rxe_srq.c                                   |    6 
 drivers/infiniband/sw/rxe/rxe_verbs.c                                 |    2 
 drivers/irqchip/irq-loongson-eiointc.c                                |   32 
 drivers/irqchip/irq-loongson-pch-pic.c                                |    6 
 drivers/mtd/spi-nor/core.c                                            |    6 
 drivers/mtd/spi-nor/core.h                                            |    4 
 drivers/mtd/spi-nor/debugfs.c                                         |    2 
 drivers/mtd/spi-nor/spansion.c                                        |   20 
 drivers/net/dsa/mt7530.c                                              |  113 +-
 drivers/net/dsa/mv88e6xxx/chip.c                                      |    1 
 drivers/net/ethernet/freescale/enetc/enetc_qos.c                      |    2 
 drivers/net/ethernet/freescale/fec_main.c                             |   13 
 drivers/net/ethernet/intel/ice/ice_tc_lib.c                           |    3 
 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c                          |    3 
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c                         |    6 
 drivers/net/ethernet/marvell/octeontx2/af/cgx.c                       |    8 
 drivers/net/ethernet/marvell/octeontx2/af/mbox.c                      |    5 
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h                      |   19 
 drivers/net/ethernet/marvell/octeontx2/af/mcs.c                       |  110 -
 drivers/net/ethernet/marvell/octeontx2/af/mcs.h                       |   26 
 drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c               |   63 +
 drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h                   |    6 
 drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c                |   37 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c                       |   49 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h                       |    1 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c                   |    2 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c                 |   13 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c               |    5 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c                |   26 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h                |    4 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c              |  125 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h              |   10 
 drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c             |   48 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h              |    6 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c                  |   14 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c                  |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c                  |    2 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                           |  106 -
 drivers/net/ethernet/mediatek/mtk_eth_soc.h                           |    1 
 drivers/net/ethernet/pensando/ionic/ionic_devlink.c                   |    2 
 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c                   |    2 
 drivers/net/ethernet/sfc/mcdi_port_common.c                           |   11 
 drivers/net/usb/r8152.c                                               |   85 +
 drivers/net/virtio_net.c                                              |    2 
 drivers/platform/x86/hp/hp-wmi.c                                      |    1 
 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c |    6 
 drivers/platform/x86/thinkpad_acpi.c                                  |   24 
 drivers/platform/x86/touchscreen_dmi.c                                |   41 
 drivers/remoteproc/imx_dsp_rproc.c                                    |   12 
 drivers/remoteproc/imx_rproc.c                                        |    7 
 drivers/remoteproc/rcar_rproc.c                                       |    9 
 drivers/remoteproc/st_remoteproc.c                                    |    5 
 drivers/remoteproc/stm32_rproc.c                                      |    6 
 drivers/scsi/qedi/qedi_main.c                                         |    3 
 drivers/soc/qcom/llcc-qcom.c                                          |   15 
 drivers/spi/spi-fsl-cpm.c                                             |   23 
 drivers/spi/spi-fsl-spi.c                                             |   49 
 drivers/ufs/core/ufs-mcq.c                                            |    6 
 drivers/usb/dwc3/gadget.c                                             |   59 -
 drivers/watchdog/dw_wdt.c                                             |    7 
 fs/afs/afs.h                                                          |    4 
 fs/afs/internal.h                                                     |    2 
 fs/afs/rxrpc.c                                                        |    8 
 fs/btrfs/backref.c                                                    |   19 
 fs/btrfs/backref.h                                                    |    6 
 fs/btrfs/block-rsv.c                                                  |    3 
 fs/btrfs/ctree.c                                                      |   32 
 fs/btrfs/disk-io.c                                                    |   25 
 fs/btrfs/file-item.c                                                  |    5 
 fs/btrfs/free-space-cache.c                                           |    7 
 fs/btrfs/free-space-tree.c                                            |   50 
 fs/btrfs/free-space-tree.h                                            |    3 
 fs/btrfs/inode.c                                                      |    3 
 fs/btrfs/ioctl.c                                                      |    4 
 fs/btrfs/print-tree.c                                                 |    6 
 fs/btrfs/relocation.c                                                 |    2 
 fs/btrfs/super.c                                                      |    6 
 fs/btrfs/zoned.c                                                      |   17 
 fs/cifs/cifsfs.c                                                      |   16 
 fs/cifs/connect.c                                                     |    7 
 fs/cifs/smb2ops.c                                                     |    2 
 fs/ext4/balloc.c                                                      |   25 
 fs/ext4/ext4.h                                                        |   24 
 fs/ext4/extents_status.c                                              |   30 
 fs/ext4/hash.c                                                        |    6 
 fs/ext4/inline.c                                                      |   17 
 fs/ext4/inode.c                                                       |   20 
 fs/ext4/mballoc.c                                                     |    6 
 fs/ext4/migrate.c                                                     |   11 
 fs/ext4/mmp.c                                                         |   30 
 fs/ext4/namei.c                                                       |   53 
 fs/ext4/super.c                                                       |   19 
 fs/ext4/xattr.c                                                       |    5 
 fs/f2fs/extent_cache.c                                                |  241 +---
 fs/f2fs/f2fs.h                                                        |   38 
 fs/f2fs/gc.c                                                          |  139 +-
 fs/f2fs/gc.h                                                          |   14 
 fs/f2fs/namei.c                                                       |   16 
 fs/f2fs/segment.c                                                     |  251 ++--
 fs/fs-writeback.c                                                     |    2 
 fs/notify/inotify/inotify_fsnotify.c                                  |   11 
 fs/ntfs3/bitmap.c                                                     |    3 
 fs/ntfs3/frecord.c                                                    |    2 
 fs/ntfs3/fsntfs.c                                                     |    6 
 fs/ntfs3/namei.c                                                      |   10 
 fs/ntfs3/ntfs.h                                                       |    3 
 fs/proc/proc_sysctl.c                                                 |   42 
 include/drm/display/drm_dp.h                                          |    1 
 include/drm/display/drm_dp_helper.h                                   |    5 
 include/linux/i2c.h                                                   |    4 
 include/linux/pci_ids.h                                               |    1 
 include/net/af_rxrpc.h                                                |   21 
 include/net/netfilter/nf_tables.h                                     |    6 
 kernel/locking/rwsem.c                                                |    8 
 net/core/skbuff.c                                                     |   20 
 net/ethtool/ioctl.c                                                   |    2 
 net/ipv6/sit.c                                                        |    8 
 net/ipv6/tcp_ipv6.c                                                   |    2 
 net/ncsi/ncsi-aen.c                                                   |    1 
 net/netfilter/nf_tables_api.c                                         |  282 +++--
 net/netfilter/nft_ct_fast.c                                           |   14 
 net/packet/af_packet.c                                                |    2 
 net/rxrpc/af_rxrpc.c                                                  |    3 
 net/rxrpc/ar-internal.h                                               |    1 
 net/rxrpc/call_object.c                                               |    9 
 net/rxrpc/sendmsg.c                                                   |   22 
 net/sched/act_mirred.c                                                |    2 
 net/sched/cls_api.c                                                   |    1 
 net/sched/cls_flower.c                                                |    9 
 sound/soc/intel/common/soc-acpi-intel-byt-match.c                     |    2 
 sound/usb/caiaq/input.c                                               |    1 
 tools/perf/Build                                                      |    2 
 tools/perf/Makefile.perf                                              |    7 
 tools/perf/builtin-ftrace.c                                           |    6 
 tools/perf/builtin-record.c                                           |    2 
 tools/perf/builtin-script.c                                           |    2 
 tools/perf/builtin-stat.c                                             |    4 
 tools/perf/pmu-events/arch/powerpc/power9/other.json                  |    4 
 tools/perf/pmu-events/arch/powerpc/power9/pipeline.json               |    2 
 tools/perf/pmu-events/arch/s390/cf_z16/extended.json                  |   10 
 tools/perf/pmu-events/empty-pmu-events.c                              |    6 
 tools/perf/scripts/Build                                              |    4 
 tools/perf/scripts/python/Perf-Trace-Util/Build                       |    2 
 tools/perf/scripts/python/Perf-Trace-Util/Context.c                   |    4 
 tools/perf/scripts/python/intel-pt-events.py                          |    2 
 tools/perf/tests/attr/base-record                                     |    2 
 tools/perf/tests/attr/base-stat                                       |    2 
 tools/perf/tests/attr/system-wide-dummy                               |    2 
 tools/perf/tests/make                                                 |    5 
 tools/perf/tests/shell/record_offcpu.sh                               |    2 
 tools/perf/util/Build                                                 |    2 
 tools/perf/util/bpf_skel/lock_contention.bpf.c                        |    8 
 tools/perf/util/cs-etm.c                                              |   30 
 tools/perf/util/evsel.h                                               |    5 
 tools/perf/util/pmu.c                                                 |    2 
 tools/perf/util/scripting-engines/Build                               |    2 
 tools/perf/util/scripting-engines/trace-event-python.c                |   75 -
 tools/perf/util/sort.c                                                |   10 
 tools/perf/util/symbol-elf.c                                          |   12 
 tools/perf/util/trace-event-scripting.c                               |    9 
 tools/perf/util/tracepoint.c                                          |    1 
 tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh               |   10 
 tools/testing/selftests/netfilter/Makefile                            |    7 
 302 files changed, 3852 insertions(+), 1924 deletions(-)

Adrian Hunter (3):
perf script: Fix Python support when no libtraceevent perf symbols: Fix use-after-free in get_plt_got_name() perf symbols: Fix unaligned access in get_x86_64_plt_disp()

Akhil R (1):
i2c: tegra: Fix PEC support for SMBUS block read

Alice Chao (1):

      scsi: ufs: core: mcq: Fix &hwq->cq_lock deadlock issue

Alvin Lee (1):
drm/amd/display: Enforce 60us prefetch for 200Mhz DCFCLK modes

Anastasia Belova (1):
btrfs: print-tree: parent bytenr must be aligned to sector size

Andrea Mayer (1):
selftests: srv6: make srv6_end_dt46_l3vpn_test more robust

Andrey Avdeev (1):
platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i

Andy Moreton (1):
sfc: Fix module EEPROM reporting for QSFP modules

Angelo Dureghello (1):

      net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu

Antoine Tenart (1):
net: ipv6: fix skb hash for some RST packets

Arnaldo Carvalho de Melo (1):
perf pmu: zfree() expects a pointer to a pointer to zero it after freeing its contents

Arnd Bergmann (1):
i2c: gxp: fix build failure without CONFIG_I2C_SLAVE

Arınç ÜNAL (2):
net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
net: dsa: mt7530: fix network connectivity with multiple CPU ports

Aurabindo Pillai (4):
drm/amd/display: Fixes for dcn32_clk_mgr implementation drm/amd/display: Do not clear GPINT register when releasing DMUB from reset drm/amd/display: Update bounding box values for DCN321 drm/amd/display: Fix hang when skipping modeset

Baokun Li (1):
ext4: check iomap type only if ext4_iomap_begin() does not fail

Bob Pearson (2):
RDMA/rxe: Change rxe_dbg to rxe_dbg_dev RDMA/rxe: Extend dbg log messages to err and info

Boris Burkov (1):
btrfs: fix encoded write i_size corruption with no-holes

Borislav Petkov (AMD) (1):
x86/retbleed: Fix return thunk alignment

Chaitanya Kumar Borah (1):
drm/i915/color: Fix typo for Plane CSC indexes

Chia-I Wu (1):
drm/amdgpu: add a missing lock for AMDGPU_SCHED

Christoph Hellwig (1):
btrfs: zero the buffer before marking it dirty in btrfs_redirty_list_add

Christophe JAILLET (2):
watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe()
crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs()

Christophe Leroy (2):
spi: fsl-spi: Re-organise transfer bits_per_word adaptation
spi: fsl-cpm: Use 16 bit mode for large transfers with even size

Claudio Imbrenda (2):
KVM: s390: pv: fix asynchronous teardown for small VMs
KVM: s390: fix race in gmap_make_secure()

Cong Wang (1):

      sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()

Conor Dooley (1):
dt-bindings: perf: riscv,pmu: fix property dependencies

Cosmo Chou (1):
net/ncsi: clear Tx enable mode when handling a Config required AEN

Cruise Hung (1):
drm/amd/display: Reset OUTBOX0 r/w pointer on DMUB reset

Daniel Golle (1):
net: dsa: mt7530: split-off common parts from mt7531_setup

David Howells (4):
rxrpc: Fix potential data race in rxrpc_wait_to_be_connected()
rxrpc: Fix hard call timeout units
rxrpc: Make it so that a waiting process can be aborted
rxrpc: Fix timeout of a call that hasn't yet been granted a channel

Dmitrii Dolgov (1):
perf stat: Separate bperf from bpf_profiler

Eric Dumazet (1):
tcp: fix skb_copy_ubufs() vs BIG TCP

Fae (1):
platform/x86: hp-wmi: add micmute to hp_wmi_keymap struct

Felix Fietkau (1):
net: ethernet: mtk_eth_soc: drop generic vlan rx offload, only use DSA untagging

Filipe Manana (3):
btrfs: fix btrfs_prev_leaf() to not return the same key twice
btrfs: fix space cache inconsistency after error loading it from disk
btrfs: fix backref walking not returning all inode refs

Florian Westphal (1):
netfilter: nf_tables: fix ct untracked match breakage

Francesco Dolcini (1):
drm/bridge: lt8912b: Fix DSI Video Mode

Geetha sowjanya (4):
octeonxt2-af: mcs: Fix per port bypass config
octeontx2-af: mcs: Config parser to skip 8B header
octeontx2-af: mcs: Fix MCS block interrupt
octeontx2-af: Secure APR table update with the lock

Greg Kroah-Hartman (1):

      Linux 6.3.3

Guchun Chen (5):
drm/amdgpu: drop redundant sched job cleanup when cs is aborted drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras drm/amd/pm: parse pp_handle under appropriate conditions drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend drm/amd/pm: avoid potential UBSAN issue on legacy asics

Guo Ren (1):
riscv: compat_syscall_table: Fixup compile warning

Hamza Mahfooz (2):
drm/amd/display: fix flickering caused by S/G mode drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()

Hans de Goede (3):
ASoC: Intel: soc-acpi-byt: Fix "WM510205" match no longer working platform/x86: touchscreen_dmi: Add upside-down quirk for GDIX1002 ts on the Juno Tablet drm/i915/dsi: Use unconditional msleep() instead of intel_dsi_msleep()

Haridhar Kalvala (1):

      drm/i915/mtl: Add Wa_14017856879

Hariprasad Kelam (1):
octeontx2-af: Add validation for lmac type

Hayes Wang (4):
r8152: fix flow control issue of RTL8156A
r8152: fix the poor throughput for 2.5G devices
r8152: move setting r8153b_rx_agg_chg_indicate()
r8152: fix the autosuspend doesn't work

Heiko Carstens (2):
s390/mm: rename POPULATE_ONE2ONE to POPULATE_DIRECT s390/mm: fix direct map accounting

Helge Deller (1):
parisc: Fix encoding of swp_entry due to added SWP_EXCLUSIVE flag

Hersen Wu (2):
drm/amd/display: Return error code on DSC atomic check failure drm/amd/display: fix access hdcp_workqueue assert

Horatio Zhang (3):
drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v10_0_hw_fini drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v11_0_hw_fini drm/amdgpu: drop gfx_v11_0_cp_ecc_error_irq_funcs

Ian Rogers (3):
perf lock contention: Fix compiler builtin detection perf build: Support python/perf.so testing perf test: Fix "PMU event table sanity" for NO_JEVENTS=1

Ido Schimmel (1):
ethtool: Fix uninitialized number of lanes

Ivan Vecera (1):
net/sched: flower: Fix wrong handle assignment during filter change

Jaegeuk Kim (5):
f2fs: factor out victim_entry usage from general rb_tree use
f2fs: factor out discard_cmd usage from general rb_tree use
f2fs: remove entire rb_entry sharing
f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block
f2fs: fix potential corruption when moving a directory

James Clark (1):
perf cs-etm: Fix timeless decode mode detection

James Cowgill (1):
drm/panel: otm8009a: Set backlight parent to panel device

Jan Kara (4):
inotify: Avoid reporting event with invalid wd
ext4: fix data races when using cached status extents
ext4: avoid deadlock in fs reclaim with page writeback
ext4: fix lockdep warning when enabling MMP

Jani Nikula (1):
drm/dsc: fix drm_edp_dsc_sink_output_bpp() DPCD high byte usage

Jeremi Piotrowski (1):
crypto: ccp - Clear PSP interrupt status register before calling handler

Jeremy Sowden (1):
selftests: netfilter: fix libmnl pkg-config usage

Jianmin Lv (5):
irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling irqchip/loongson-pch-pic: Fix registration of syscore_ops irqchip/loongson-eiointc: Fix returned value on parsing MADT irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent irqchip/loongson-eiointc: Fix registration of syscore_ops

Johan Hovold (8):
USB: dwc3: gadget: drop dead hibernation code drm/msm/adreno: fix runtime PM imbalance at gpu load drm/msm: fix NULL-deref on snapshot tear down drm/msm: fix NULL-deref on irq uninstall drm/msm: fix drm device leak on bind errors drm/msm: fix vram leak on bind errors drm/msm: fix missing wq allocation error handling drm/msm: fix workqueue leak on bind errors

John Harrison (2):
drm/i915/guc: More debug print updates - UC firmware drm/i915/guc: Actually return an error if GuC version range check fails

John Hickey (1):
ixgbe: Fix panic during XDP_TX with > 64 CPUs

John Stultz (1):
locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers

Josef Bacik (1):
btrfs: don't free qgroup space unless specified

Kajol Jain (1):
perf vendor events power9: Remove UTF-8 characters from JSON files

Kan Liang (1):
perf record: Fix "read LOST count failed" msg with sample read

Konrad Dybcio (1):
drm/msm/adreno: adreno_gpu: Use suspend() instead of idle() on load error

Konstantin Komarov (1):
fs/ntfs3: Refactoring of various minor issues

Krzysztof Kozlowski (2):
ARM: dts: exynos: fix WM8960 clock name in Itop Elite
ARM: dts: s5pv210: correct MIPI CSIS clock name

Kuniyuki Iwashima (1):
af_packet: Don't send zero-byte data in packet_sendmsg_spkt().

Leo Chen (2):
drm/amd/display: Change default Z8 watermark values drm/amd/display: Lowering min Z8 residency time

Lin.Cao (1):
drm/amdgpu: Fix vram recover doesn't work after whole GPU reset (v2)

Linus Torvalds (1):
x86: fix clear_user_rep_good() exception handling annotation

Lionel Landwerlin (1):
drm/i915: disable sampler indirect state in bindless heap

Lucas De Marchi (1):

      drm/i915: Add _PICK_EVEN_2RANGES()

Luis Chamberlain (3):
proc_sysctl: update docs for __register_sysctl_table()
proc_sysctl: enhance documentation
sysctl: clarify register_sysctl_init() base directory order

Manivannan Sadhasivam (2):
qcom: llcc/edac: Support polling mode for ECC handling
soc: qcom: llcc: Do not create EDAC platform device on SDM845

Mario Limonciello (1):
x86/amd_nb: Add PCI ID for family 19h model 78h

Mark Pearson (2):
platform/x86: thinkpad_acpi: Fix platform profiles on T490 platform/x86: thinkpad_acpi: Add profile force ability

Markus Elfring (1):
perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp()

Mathias Krause (3):
KVM: x86: Do not unload MMU roots when only toggling CR0.WP with TDP enabled
KVM: x86: Make use of kvm_read_cr*_bits() when testing bits
KVM: VMX: Make CR0.WP a guest owned bit

Mathieu Poirier (5):
remoteproc: stm32: Call of_node_put() on iteration error
remoteproc: st: Call of_node_put() on iteration error
remoteproc: imx_dsp_rproc: Call of_node_put() on iteration error
remoteproc: imx_rproc: Call of_node_put() on iteration error
remoteproc: rcar_rproc: Call of_node_put() on iteration error

Maxim Korotkov (1):
writeback: fix call of incorrect macro

Michal Swiatkowski (1):
ice: block LAN in case of VF to VF offload

Ming Lei (1):
ublk: add timeout handler

Miquel Raynal (1):
mtd: spi-nor: Add a RWW flag

Namhyung Kim (2):
perf hist: Improve srcfile sort key performance (really) perf/x86: Fix missing sample size update on AMD BRS

Naohiro Aota (3):
btrfs: zoned: fix wrong use of bitops API in btrfs_ensure_empty_zones
btrfs: zoned: zone finish data relocation BG with last IO
btrfs: zoned: fix full zone super block reading on ZNS

Neeraj Upadhyay (1):
arm64: Fix label placement in record_mmu_state()

Nicholas Kazlauskas (4):
drm/amd/display: Add NULL plane_state check for cursor disable logic drm/amd/display: Fix 4to1 MPC black screen with DPP RCO drm/amd/display: Add minimum Z8 residency debug option drm/amd/display: Update minimum stutter residency for DCN314 Z8

Olivier Bacon (1):
crypto: engine - fix crypto_queue backlog handling

Pablo Neira Ayuso (4):
netfilter: nf_tables: extended netlink error reporting for netdevice
netfilter: nf_tables: rename function to destroy hook list
netfilter: nf_tables: support for adding new devices to an existing netdev chain
netfilter: nf_tables: hit ENOENT on unexisting chain/flowtable update with missing attributes

Paolo Bonzini (1):
KVM: x86/mmu: Avoid indirect call for get_cr3

Patrice Duroux (1):
perf tests record_offcpu.sh: Fix redirection of stderr to stdin

Pawel Witek (1):
cifs: fix pcchunk length type in smb2_copychunk_range

Ping Cheng (2):
HID: wacom: Set a default resolution for older tablets
HID: wacom: insert timestamp to packed Bluetooth (BT) events

Qu Wenruo (2):
btrfs: properly reject clear_cache and v1 cache for block-group-tree
btrfs: make clear_cache mount option to rebuild FST without disabling it

Radhakrishna Sripada (2):
drm/i915/mtl: Add the missing CPU transcoder mask in intel_device_info drm/i915/mtl: Add workarounds Wa_14017066071 and Wa_14017654203

Randy Dunlap (4):
sh: math-emu: fix macro redefined warning
sh: mcount.S: fix build error when PRINTK is not enabled
sh: init: use OF_EARLY_FLATTREE for early init
sh: nmi_debug: fix return value of __setup handler

Ratheesh Kannoth (6):
octeontx2-af: Fix start and end bit for scan config
octeontx2-af: Fix depth of cam and mem table.
octeontx2-pf: Increase the size of dmac filter flows
octeontx2-af: Update/Fix NPC field hash extract feature
octeontx2-af: Fix issues with NPC field hash extract
octeontx2-af: Skip PFs if not enabled

Robin Chen (1):
drm/amd/display: hpd rx irq not working with eDP interface

Rodrigo Siqueira (1):
drm/amd/display: Add missing WA and MCLK validation

Roman Lozko (1):
perf scripts intel-pt-events.py: Fix IPC output for Python 2

Ruliang Lin (1):
ALSA: caiaq: input: Add error handling for unsupported input methods in snd_usb_caiaq_input_init

Saleemkhan Jamadar (1):
drm/amdgpu/jpeg: Remove harvest checking for JPEG3

Samson Tam (1):
drm/amd/display: filter out invalid bits in pipe_fuses

Sean Christopherson (1):
KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults

Shannon Nelson (2):
ionic: remove noise from ethtool rxnfc error msg
ionic: catch failure from devlink_alloc

Shenwei Wang (1):
net: fec: correct the counting of XDP sent frames

Sia Jee Heng (1):
RISC-V: mm: Enable huge page support to kernel_page_present() function

Srinivas Pandruvada (1):
platform/x86/intel-uncore-freq: Return error on write frequency

Steve French (3):
cifs: release leases for deferred close handles when freezing
smb3: fix problem remounting a share after shutdown
SMB3: force unmount was failing to close deferred close files

Subbaraya Sundeep (8):
octeontx2-af: mcs: Write TCAM_DATA and TCAM_MASK registers at once
octeontx2-pf: mcs: Fix NULL pointer dereferences
octeontx2-pf: mcs: Match macsec ethertype along with DMAC
octeontx2-pf: mcs: Clear stats before freeing resource
octeontx2-pf: mcs: Fix shared counters logic
octeontx2-pf: mcs: Do not reset PN while updating secy
octeontx2-pf: Disable packet I/O for graceful exit
octeontx2-vf: Detach LF resources on probe cleanup

Suman Ghosh (1):
octeontx2-af: Update correct mask to filter IPv4 fragments

Takahiro Kuwano (2):
mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash
mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s25hx SEMPER flash

Takashi Sakamoto (1):
firewire: net: fix unexpected release of object for asynchronous request packet

Tao Su (1):
block: Skip destroyed blkg when restart in blkg_destroy_all()

Theodore Ts'o (7):
ext4: improve error recovery code paths in __ext4_remount()
ext4: improve error handling from ext4_dirhash()
ext4: fix deadlock when converting an inline directory in nojournal mode
ext4: add bounds checking in get_max_inline_xattr_value_size()
ext4: bail out of ext4_xattr_ibody_get() fails for any reason
ext4: remove a BUG_ON in ext4_mb_release_group_pa()
ext4: fix invalid free tracking in ext4_xattr_move_to_block()

Thomas Richter (2):
perf test: Fix wrong size expectation for 'Setup struct perf_event_attr' perf vendor events s390: Remove UTF-8 characters from JSON file

Tudor Ambarus (1):
ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum

Victor Nogueira (1):
net/sched: act_mirred: Add carrier check

Ville Syrjälä (1):
drm/i915: Check pipe source size when using skl+ scalers

Vlad Buslov (4):
net/sched: cls_api: remove block_cb from driver_list before freeing net/sched: flower: fix filter idr initialization
net/sched: flower: fix error handler on replace
Revert "net/sched: flower: Fix wrong handle assignment during filter change"

Wei Fang (1):
net: enetc: check the index of the SFI rather than the handle

Wenjing Liu (1):
drm/amd/display: merge dc_link.h into dc.h and dc_types.h

Wenliang Wang (1):
virtio_net: suppress cpu stall when free_unused_bufs

Wesley Cheng (1):
usb: dwc3: gadget: Execute gadget stop after halting the controller

Yang Jihong (3):
perf ftrace: Make system wide the default target for latency subcommand perf symbols: Fix return incorrect build_id size in elf_read_build_id() perf tracepoint: Fix memory leak in is_valid_tracepoint()

Ye Bin (1):
ext4: fix WARNING in mb_find_extent

Yifan Zhang (1):
drm/amdgpu: change gfx 11.0.4 external_id range

Zev Weiss (2):
ARM: dts: aspeed: asrock: Correct firmware flash SPI clocks
ARM: dts: aspeed: romed8hm3: Fix GPIO polarity of system-fault LED

ZhangPeng (1):

      fs/ntfs3: Fix null-ptr-deref on inode->i_op in ntfs_lookup()

Zheng Wang (1):
scsi: qedi: Fix use after free bug in qedi_remove()

[email protected] (1):
arm64: kernel: remove SHF_WRITE|SHF_EXECINSTR from .idmap.text

xiaoshoukui (1):
btrfs: fix assertion of exclop condition when starting balance

author maintainer
#1 lore raw
Documentation/devicetree/bindings/perf/riscv,pmu.yaml +0 -1
index a55a4d047d3f..c8448de2f2a0 100644
@@ -91,7 +91,6 @@ properties:
 
 dependencies:
   "riscv,event-to-mhpmevent": [ "riscv,event-to-mhpmcounters" ]
-  "riscv,event-to-mhpmcounters": [ "riscv,event-to-mhpmevent" ]
 
 required:
   - compatible
Makefile +1 -1
index 80cdc03e25aa..a3108cf700a0 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 3
-SUBLEVEL = 2
+SUBLEVEL = 3
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm/boot/dts/aspeed-bmc-asrock-e3c246d4i.dts +1 -1
index 9b4cf5ebe6d5..c62aff908ab4 100644
@@ -63,7 +63,7 @@ flash@0 {
 		status = "okay";
 		m25p,fast-read;
 		label = "bmc";
-		spi-max-frequency = <100000000>; /* 100 MHz */
+		spi-max-frequency = <50000000>; /* 50 MHz */
 #include "openbmc-flash-layout.dtsi"
 	};
 };
arch/arm/boot/dts/aspeed-bmc-asrock-romed8hm3.dts +2 -2
index ff4c07c69af1..4554abf0c7cd 100644
@@ -31,7 +31,7 @@ heartbeat {
 		};
 
 		system-fault {
-			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
+			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
 			panic-indicator;
 		};
 	};
@@ -51,7 +51,7 @@ flash@0 {
 		status = "okay";
 		m25p,fast-read;
 		label = "bmc";
-		spi-max-frequency = <100000000>; /* 100 MHz */
+		spi-max-frequency = <50000000>; /* 50 MHz */
 #include "openbmc-flash-layout-64.dtsi"
 	};
 };
arch/arm/boot/dts/exynos4412-itop-elite.dts +1 -1
index b596e997e451..6260da187e92 100644
@@ -182,7 +182,7 @@ codec: audio-codec@1a {
 		compatible = "wlf,wm8960";
 		reg = <0x1a>;
 		clocks = <&pmu_system_controller 0>;
-		clock-names = "MCLK1";
+		clock-names = "mclk";
 		wlf,shared-lrclk;
 		#sound-dai-cells = <0>;
 	};
arch/arm/boot/dts/s5pv210.dtsi +1 -1
index 12e90a1cc6a1..1a9e4a96b2ff 100644
@@ -566,7 +566,7 @@ csis0: csis@fa600000 {
 				interrupts = <29>;
 				clocks = <&clocks CLK_CSIS>,
 						<&clocks SCLK_CSIS>;
-				clock-names = "clk_csis",
+				clock-names = "csis",
 						"sclk_csis";
 				bus-width = <4>;
 				status = "disabled";
arch/arm64/kernel/cpu-reset.S +1 -1
index 6b752fe89745..c87445dde674 100644
@@ -14,7 +14,7 @@
 #include <asm/virt.h>
 
 .text
-.pushsection    .idmap.text, "awx"
+.pushsection    .idmap.text, "a"
 
 /*
  * cpu_soft_restart(el2_switch, entry, arg0, arg1, arg2)
arch/arm64/kernel/head.S +2 -2
index b98970907226..e92caebff46a 100644
@@ -150,8 +150,8 @@ CPU_BE( tbz	x19, #SCTLR_ELx_EE_SHIFT, 1f	)
 	pre_disable_mmu_workaround
 	msr	sctlr_el2, x19
 	b	3f
-	pre_disable_mmu_workaround
-2:	msr	sctlr_el1, x19
+2:	pre_disable_mmu_workaround
+	msr	sctlr_el1, x19
 3:	isb
 	mov	x19, xzr
 	ret
arch/arm64/kernel/sleep.S +1 -1
index 2ae7cff1953a..2aa5129d8253 100644
@@ -97,7 +97,7 @@ SYM_FUNC_START(__cpu_suspend_enter)
 	ret
 SYM_FUNC_END(__cpu_suspend_enter)
 
-	.pushsection ".idmap.text", "awx"
+	.pushsection ".idmap.text", "a"
 SYM_CODE_START(cpu_resume)
 	mov	x0, xzr
 	bl	init_kernel_el
arch/arm64/mm/proc.S +3 -3
index 91410f488090..c2cb437821ca 100644
@@ -167,7 +167,7 @@ alternative_else_nop_endif
 SYM_FUNC_END(cpu_do_resume)
 #endif
 
-	.pushsection ".idmap.text", "awx"
+	.pushsection ".idmap.text", "a"
 
 .macro	__idmap_cpu_set_reserved_ttbr1, tmp1, tmp2
 	adrp	\tmp1, reserved_pg_dir
@@ -201,7 +201,7 @@ SYM_FUNC_END(idmap_cpu_replace_ttbr1)
 
 #define KPTI_NG_PTE_FLAGS	(PTE_ATTRINDX(MT_NORMAL) | SWAPPER_PTE_FLAGS)
 
-	.pushsection ".idmap.text", "awx"
+	.pushsection ".idmap.text", "a"
 
 	.macro	kpti_mk_tbl_ng, type, num_entries
 	add	end_\type\()p, cur_\type\()p, #\num_entries * 8
@@ -400,7 +400,7 @@ SYM_FUNC_END(idmap_kpti_install_ng_mappings)
  * Output:
  *	Return in x0 the value of the SCTLR_EL1 register.
  */
-	.pushsection ".idmap.text", "awx"
+	.pushsection ".idmap.text", "a"
 SYM_FUNC_START(__cpu_setup)
 	tlbi	vmalle1				// Invalidate local TLB
 	dsb	nsh
arch/parisc/include/asm/pgtable.h +4 -4
index e2950f5db7c9..e715df5385d6 100644
@@ -413,12 +413,12 @@ extern void paging_init (void);
  *   For the 64bit version, the offset is extended by 32bit.
  */
 #define __swp_type(x)                     ((x).val & 0x1f)
-#define __swp_offset(x)                   ( (((x).val >> 6) &  0x7) | \
-					  (((x).val >> 8) & ~0x7) )
+#define __swp_offset(x)                   ( (((x).val >> 5) & 0x7) | \
+					  (((x).val >> 10) << 3) )
 #define __swp_entry(type, offset)         ((swp_entry_t) { \
 					    ((type) & 0x1f) | \
-					    ((offset &  0x7) << 6) | \
-					    ((offset & ~0x7) << 8) })
+					    ((offset & 0x7) << 5) | \
+					    ((offset >> 3) << 10) })
 #define __pte_to_swp_entry(pte)		((swp_entry_t) { pte_val(pte) })
 #define __swp_entry_to_pte(x)		((pte_t) { (x).val })
 
arch/riscv/kernel/Makefile +1 -0
index 4cf303a779ab..8d02b9d05738 100644
@@ -9,6 +9,7 @@ CFLAGS_REMOVE_patch.o	= $(CC_FLAGS_FTRACE)
 CFLAGS_REMOVE_sbi.o	= $(CC_FLAGS_FTRACE)
 endif
 CFLAGS_syscall_table.o	+= $(call cc-option,-Wno-override-init,)
+CFLAGS_compat_syscall_table.o += $(call cc-option,-Wno-override-init,)
 
 ifdef CONFIG_KEXEC
 AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
arch/riscv/mm/pageattr.c +8 -0
index 86c56616e5de..ea3d61de065b 100644
@@ -217,18 +217,26 @@ bool kernel_page_present(struct page *page)
 	pgd = pgd_offset_k(addr);
 	if (!pgd_present(*pgd))
 		return false;
+	if (pgd_leaf(*pgd))
+		return true;
 
 	p4d = p4d_offset(pgd, addr);
 	if (!p4d_present(*p4d))
 		return false;
+	if (p4d_leaf(*p4d))
+		return true;
 
 	pud = pud_offset(p4d, addr);
 	if (!pud_present(*pud))
 		return false;
+	if (pud_leaf(*pud))
+		return true;
 
 	pmd = pmd_offset(pud, addr);
 	if (!pmd_present(*pmd))
 		return false;
+	if (pmd_leaf(*pmd))
+		return true;
 
 	pte = pte_offset_kernel(pmd, addr);
 	return pte_present(*pte);
arch/s390/boot/vmem.c +20 -7
index 4d1d0d8e99cb..a354d8bc1f0f 100644
@@ -10,6 +10,10 @@
 #include "decompressor.h"
 #include "boot.h"
 
+#ifdef CONFIG_PROC_FS
+atomic_long_t __bootdata_preserved(direct_pages_count[PG_DIRECT_MAP_MAX]);
+#endif
+
 #define init_mm			(*(struct mm_struct *)vmlinux.init_mm_off)
 #define swapper_pg_dir		vmlinux.swapper_pg_dir_off
 #define invalid_pg_dir		vmlinux.invalid_pg_dir_off
@@ -29,7 +33,7 @@ unsigned long __bootdata(pgalloc_low);
 
 enum populate_mode {
 	POPULATE_NONE,
-	POPULATE_ONE2ONE,
+	POPULATE_DIRECT,
 	POPULATE_ABS_LOWCORE,
 };
 
@@ -102,7 +106,7 @@ static unsigned long _pa(unsigned long addr, enum populate_mode mode)
 	switch (mode) {
 	case POPULATE_NONE:
 		return -1;
-	case POPULATE_ONE2ONE:
+	case POPULATE_DIRECT:
 		return addr;
 	case POPULATE_ABS_LOWCORE:
 		return __abs_lowcore_pa(addr);
@@ -126,7 +130,7 @@ static bool can_large_pmd(pmd_t *pm_dir, unsigned long addr, unsigned long end)
 static void pgtable_pte_populate(pmd_t *pmd, unsigned long addr, unsigned long end,
 				 enum populate_mode mode)
 {
-	unsigned long next;
+	unsigned long pages = 0;
 	pte_t *pte, entry;
 
 	pte = pte_offset_kernel(pmd, addr);
@@ -135,14 +139,17 @@ static void pgtable_pte_populate(pmd_t *pmd, unsigned long addr, unsigned long e
 			entry = __pte(_pa(addr, mode));
 			entry = set_pte_bit(entry, PAGE_KERNEL_EXEC);
 			set_pte(pte, entry);
+			pages++;
 		}
 	}
+	if (mode == POPULATE_DIRECT)
+		update_page_count(PG_DIRECT_MAP_4K, pages);
 }
 
 static void pgtable_pmd_populate(pud_t *pud, unsigned long addr, unsigned long end,
 				 enum populate_mode mode)
 {
-	unsigned long next;
+	unsigned long next, pages = 0;
 	pmd_t *pmd, entry;
 	pte_t *pte;
 
@@ -154,6 +161,7 @@ static void pgtable_pmd_populate(pud_t *pud, unsigned long addr, unsigned long e
 				entry = __pmd(_pa(addr, mode));
 				entry = set_pmd_bit(entry, SEGMENT_KERNEL_EXEC);
 				set_pmd(pmd, entry);
+				pages++;
 				continue;
 			}
 			pte = boot_pte_alloc();
@@ -163,12 +171,14 @@ static void pgtable_pmd_populate(pud_t *pud, unsigned long addr, unsigned long e
 		}
 		pgtable_pte_populate(pmd, addr, next, mode);
 	}
+	if (mode == POPULATE_DIRECT)
+		update_page_count(PG_DIRECT_MAP_1M, pages);
 }
 
 static void pgtable_pud_populate(p4d_t *p4d, unsigned long addr, unsigned long end,
 				 enum populate_mode mode)
 {
-	unsigned long next;
+	unsigned long next, pages = 0;
 	pud_t *pud, entry;
 	pmd_t *pmd;
 
@@ -180,6 +190,7 @@ static void pgtable_pud_populate(p4d_t *p4d, unsigned long addr, unsigned long e
 				entry = __pud(_pa(addr, mode));
 				entry = set_pud_bit(entry, REGION3_KERNEL_EXEC);
 				set_pud(pud, entry);
+				pages++;
 				continue;
 			}
 			pmd = boot_crst_alloc(_SEGMENT_ENTRY_EMPTY);
@@ -189,6 +200,8 @@ static void pgtable_pud_populate(p4d_t *p4d, unsigned long addr, unsigned long e
 		}
 		pgtable_pmd_populate(pud, addr, next, mode);
 	}
+	if (mode == POPULATE_DIRECT)
+		update_page_count(PG_DIRECT_MAP_2G, pages);
 }
 
 static void pgtable_p4d_populate(pgd_t *pgd, unsigned long addr, unsigned long end,
@@ -251,9 +264,9 @@ void setup_vmem(unsigned long asce_limit)
 	 * the lowcore and create the identity mapping only afterwards.
 	 */
 	pgtable_populate_init();
-	pgtable_populate(0, sizeof(struct lowcore), POPULATE_ONE2ONE);
+	pgtable_populate(0, sizeof(struct lowcore), POPULATE_DIRECT);
 	for_each_mem_detect_usable_block(i, &start, &end)
-		pgtable_populate(start, end, POPULATE_ONE2ONE);
+		pgtable_populate(start, end, POPULATE_DIRECT);
 	pgtable_populate(__abs_lowcore, __abs_lowcore + sizeof(struct lowcore),
 			 POPULATE_ABS_LOWCORE);
 	pgtable_populate(__memcpy_real_area, __memcpy_real_area + PAGE_SIZE,
arch/s390/include/asm/pgtable.h +1 -1
index 2c70b4d1263d..acbe1ac2d571 100644
@@ -34,7 +34,7 @@ enum {
 	PG_DIRECT_MAP_MAX
 };
 
-extern atomic_long_t direct_pages_count[PG_DIRECT_MAP_MAX];
+extern atomic_long_t __bootdata_preserved(direct_pages_count[PG_DIRECT_MAP_MAX]);
 
 static inline void update_page_count(int level, long count)
 {
arch/s390/kernel/uv.c +11 -21
index 9f18a4af9c13..cb2ee06df286 100644
@@ -192,21 +192,10 @@ static int expected_page_refs(struct page *page)
 	return res;
 }
 
-static int make_secure_pte(pte_t *ptep, unsigned long addr,
-			   struct page *exp_page, struct uv_cb_header *uvcb)
+static int make_page_secure(struct page *page, struct uv_cb_header *uvcb)
 {
-	pte_t entry = READ_ONCE(*ptep);
-	struct page *page;
 	int expected, cc = 0;
 
-	if (!pte_present(entry))
-		return -ENXIO;
-	if (pte_val(entry) & _PAGE_INVALID)
-		return -ENXIO;
-
-	page = pte_page(entry);
-	if (page != exp_page)
-		return -ENXIO;
 	if (PageWriteback(page))
 		return -EAGAIN;
 	expected = expected_page_refs(page);
@@ -304,17 +293,18 @@ int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb)
 		goto out;
 
 	rc = -ENXIO;
-	page = follow_page(vma, uaddr, FOLL_WRITE);
-	if (IS_ERR_OR_NULL(page))
-		goto out;
-
-	lock_page(page);
 	ptep = get_locked_pte(gmap->mm, uaddr, &ptelock);
-	if (should_export_before_import(uvcb, gmap->mm))
-		uv_convert_from_secure(page_to_phys(page));
-	rc = make_secure_pte(ptep, uaddr, page, uvcb);
+	if (pte_present(*ptep) && !(pte_val(*ptep) & _PAGE_INVALID) && pte_write(*ptep)) {
+		page = pte_page(*ptep);
+		rc = -EAGAIN;
+		if (trylock_page(page)) {
+			if (should_export_before_import(uvcb, gmap->mm))
+				uv_convert_from_secure(page_to_phys(page));
+			rc = make_page_secure(page, uvcb);
+			unlock_page(page);
+		}
+	}
 	pte_unmap_unlock(ptep, ptelock);
-	unlock_page(page);
 out:
 	mmap_read_unlock(gmap->mm);
 
arch/s390/kvm/pv.c +5 -0
index e032ebbf51b9..3ce5f4351156 100644
@@ -314,6 +314,11 @@ int kvm_s390_pv_set_aside(struct kvm *kvm, u16 *rc, u16 *rrc)
 	 */
 	if (kvm->arch.pv.set_aside)
 		return -EINVAL;
+
+	/* Guest with segment type ASCE, refuse to destroy asynchronously */
+	if ((kvm->arch.gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT)
+		return -EINVAL;
+
 	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
arch/s390/mm/gmap.c +7 -0
index 5a716bdcba05..2267cf9819b2 100644
@@ -2833,6 +2833,9 @@ EXPORT_SYMBOL_GPL(s390_unlist_old_asce);
  * s390_replace_asce - Try to replace the current ASCE of a gmap with a copy
  * @gmap: the gmap whose ASCE needs to be replaced
  *
+ * If the ASCE is a SEGMENT type then this function will return -EINVAL,
+ * otherwise the pointers in the host_to_guest radix tree will keep pointing
+ * to the wrong pages, causing use-after-free and memory corruption.
  * If the allocation of the new top level page table fails, the ASCE is not
  * replaced.
  * In any case, the old ASCE is always removed from the gmap CRST list.
@@ -2847,6 +2850,10 @@ int s390_replace_asce(struct gmap *gmap)
 
 	s390_unlist_old_asce(gmap);
 
+	/* Replacing segment type ASCEs would cause serious issues */
+	if ((gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT)
+		return -EINVAL;
+
 	page = alloc_pages(GFP_KERNEL_ACCOUNT, CRST_ALLOC_ORDER);
 	if (!page)
 		return -ENOMEM;
arch/s390/mm/pageattr.c +1 -1
index 85195c18b2e8..7be699b4974a 100644
@@ -41,7 +41,7 @@ void __storage_key_init_range(unsigned long start, unsigned long end)
 }
 
 #ifdef CONFIG_PROC_FS
-atomic_long_t direct_pages_count[PG_DIRECT_MAP_MAX];
+atomic_long_t __bootdata_preserved(direct_pages_count[PG_DIRECT_MAP_MAX]);
 
 void arch_report_meminfo(struct seq_file *m)
 {
arch/sh/Kconfig.debug +1 -1
index 10290e5c1f43..c449e7c1b20f 100644
@@ -15,7 +15,7 @@ config SH_STANDARD_BIOS
 
 config STACK_DEBUG
 	bool "Check for stack overflows"
-	depends on DEBUG_KERNEL
+	depends on DEBUG_KERNEL && PRINTK
 	help
 	  This option will cause messages to be printed if free stack space
 	  drops below a certain limit. Saying Y here will add overhead to
arch/sh/kernel/head_32.S +3 -3
index 4adbd4ade319..b603b7968b38 100644
@@ -64,7 +64,7 @@ ENTRY(_stext)
 	ldc	r0, r6_bank
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 	mov	r4, r12		! Store device tree blob pointer in r12
 #endif
 	
@@ -315,7 +315,7 @@ ENTRY(_stext)
 10:		
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 	mov.l	8f, r0		! Make flat device tree available early.
 	jsr	@r0
 	 mov	r12, r4
@@ -346,7 +346,7 @@ ENTRY(stack_start)
 5:	.long	start_kernel
 6:	.long	cpu_init
 7:	.long	init_thread_union
-#if defined(CONFIG_OF_FLATTREE)
+#if defined(CONFIG_OF_EARLY_FLATTREE)
 8:	.long	sh_fdt_init
 #endif
 
arch/sh/kernel/nmi_debug.c +2 -2
index 11777867c6f5..a212b645b4cf 100644
@@ -49,7 +49,7 @@ static int __init nmi_debug_setup(char *str)
 	register_die_notifier(&nmi_debug_nb);
 
 	if (*str != '=')
-		return 0;
+		return 1;
 
 	for (p = str + 1; *p; p = sep + 1) {
 		sep = strchr(p, ',');
@@ -70,6 +70,6 @@ static int __init nmi_debug_setup(char *str)
 			break;
 	}
 
-	return 0;
+	return 1;
 }
 __setup("nmi_debug", nmi_debug_setup);
arch/sh/kernel/setup.c +2 -2
index 1fcb6659822a..af977ec4ca5e 100644
@@ -244,7 +244,7 @@ void __init __weak plat_early_device_setup(void)
 {
 }
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 void __ref sh_fdt_init(phys_addr_t dt_phys)
 {
 	static int done = 0;
@@ -326,7 +326,7 @@ void __init setup_arch(char **cmdline_p)
 	/* Let earlyprintk output early console messages */
 	sh_early_platform_driver_probe("earlyprintk", 1, 1);
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 #ifdef CONFIG_USE_BUILTIN_DTB
 	unflatten_and_copy_device_tree();
 #else
arch/sh/math-emu/sfp-util.h +0 -4
index 784f541344f3..bda50762b3d3 100644
@@ -67,7 +67,3 @@
   } while (0)
 
 #define abort()	return 0
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-
arch/x86/events/core.c +2 -4
index d096b04bf80e..9d248703cbdd 100644
@@ -1703,10 +1703,8 @@ int x86_pmu_handle_irq(struct pt_regs *regs)
 
 		perf_sample_data_init(&data, 0, event->hw.last_period);
 
-		if (has_branch_stack(event)) {
-			data.br_stack = &cpuc->lbr_stack;
-			data.sample_flags |= PERF_SAMPLE_BRANCH_STACK;
-		}
+		if (has_branch_stack(event))
+			perf_sample_save_brstack(&data, event, &cpuc->lbr_stack);
 
 		if (perf_event_overflow(event, &data, regs))
 			x86_pmu_stop(event, 0);
arch/x86/kernel/amd_nb.c +2 -0
index 4266b64631a4..7e331e8f3692 100644
@@ -36,6 +36,7 @@
 #define PCI_DEVICE_ID_AMD_19H_M50H_DF_F4 0x166e
 #define PCI_DEVICE_ID_AMD_19H_M60H_DF_F4 0x14e4
 #define PCI_DEVICE_ID_AMD_19H_M70H_DF_F4 0x14f4
+#define PCI_DEVICE_ID_AMD_19H_M78H_DF_F4 0x12fc
 
 /* Protect the PCI config register pairs used for SMN. */
 static DEFINE_MUTEX(smn_mutex);
@@ -79,6 +80,7 @@ static const struct pci_device_id amd_nb_misc_ids[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M50H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M60H_DF_F3) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M70H_DF_F3) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M78H_DF_F3) },
 	{}
 };
 
arch/x86/kvm/kvm_cache_regs.h +1 -1
index 4c91f626c058..e50d353b5c1c 100644
@@ -4,7 +4,7 @@
 
 #include <linux/kvm_host.h>
 
-#define KVM_POSSIBLE_CR0_GUEST_BITS X86_CR0_TS
+#define KVM_POSSIBLE_CR0_GUEST_BITS	(X86_CR0_TS | X86_CR0_WP)
 #define KVM_POSSIBLE_CR4_GUEST_BITS				  \
 	(X86_CR4_PVI | X86_CR4_DE | X86_CR4_PCE | X86_CR4_OSFXSR  \
 	 | X86_CR4_OSXMMEXCPT | X86_CR4_PGE | X86_CR4_TSD | X86_CR4_FSGSBASE)
arch/x86/kvm/mmu.h +25 -1
index 168c46fd8dd1..0f38b78ab04b 100644
@@ -113,6 +113,8 @@ void kvm_init_shadow_ept_mmu(struct kvm_vcpu *vcpu, bool execonly,
 bool kvm_can_do_async_pf(struct kvm_vcpu *vcpu);
 int kvm_handle_page_fault(struct kvm_vcpu *vcpu, u64 error_code,
 				u64 fault_address, char *insn, int insn_len);
+void __kvm_mmu_refresh_passthrough_bits(struct kvm_vcpu *vcpu,
+					struct kvm_mmu *mmu);
 
 int kvm_mmu_load(struct kvm_vcpu *vcpu);
 void kvm_mmu_unload(struct kvm_vcpu *vcpu);
@@ -153,6 +155,24 @@ static inline void kvm_mmu_load_pgd(struct kvm_vcpu *vcpu)
 					  vcpu->arch.mmu->root_role.level);
 }
 
+static inline void kvm_mmu_refresh_passthrough_bits(struct kvm_vcpu *vcpu,
+						    struct kvm_mmu *mmu)
+{
+	/*
+	 * When EPT is enabled, KVM may passthrough CR0.WP to the guest, i.e.
+	 * @mmu's snapshot of CR0.WP and thus all related paging metadata may
+	 * be stale.  Refresh CR0.WP and the metadata on-demand when checking
+	 * for permission faults.  Exempt nested MMUs, i.e. MMUs for shadowing
+	 * nEPT and nNPT, as CR0.WP is ignored in both cases.  Note, KVM does
+	 * need to refresh nested_mmu, a.k.a. the walker used to translate L2
+	 * GVAs to GPAs, as that "MMU" needs to honor L2's CR0.WP.
+	 */
+	if (!tdp_enabled || mmu == &vcpu->arch.guest_mmu)
+		return;
+
+	__kvm_mmu_refresh_passthrough_bits(vcpu, mmu);
+}
+
 /*
  * Check if a given access (described through the I/D, W/R and U/S bits of a
  * page fault error code pfec) causes a permission fault with the given PTE
@@ -184,8 +204,12 @@ static inline u8 permission_fault(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu,
 	u64 implicit_access = access & PFERR_IMPLICIT_ACCESS;
 	bool not_smap = ((rflags & X86_EFLAGS_AC) | implicit_access) == X86_EFLAGS_AC;
 	int index = (pfec + (not_smap << PFERR_RSVD_BIT)) >> 1;
-	bool fault = (mmu->permissions[index] >> pte_access) & 1;
 	u32 errcode = PFERR_PRESENT_MASK;
+	bool fault;
+
+	kvm_mmu_refresh_passthrough_bits(vcpu, mmu);
+
+	fault = (mmu->permissions[index] >> pte_access) & 1;
 
 	WARN_ON(pfec & (PFERR_PK_MASK | PFERR_RSVD_MASK));
 	if (unlikely(mmu->pkru_mask)) {
arch/x86/kvm/mmu/mmu.c +35 -11

100 lines not on this page · raw message

arch/x86/kvm/mmu/paging_tmpl.h +1 -1
index 57f0b75c80f9..2ea2861bbb3c 100644
@@ -324,7 +324,7 @@ static int FNAME(walk_addr_generic)(struct guest_walker *walker,
 	trace_kvm_mmu_pagetable_walk(addr, access);
 retry_walk:
 	walker->level = mmu->cpu_role.base.level;
-	pte           = mmu->get_guest_pgd(vcpu);
+	pte           = kvm_mmu_get_guest_pgd(vcpu, mmu);
 	have_ad       = PT_HAVE_ACCESSED_DIRTY(mmu);
 
 #if PTTYPE == 64
arch/x86/kvm/pmu.c +2 -2
index 612e6c70ce2e..f4aa170b5b97 100644
@@ -540,9 +540,9 @@ int kvm_pmu_rdpmc(struct kvm_vcpu *vcpu, unsigned idx, u64 *data)
 	if (!pmc)
 		return 1;
 
-	if (!(kvm_read_cr4(vcpu) & X86_CR4_PCE) &&
+	if (!(kvm_read_cr4_bits(vcpu, X86_CR4_PCE)) &&
 	    (static_call(kvm_x86_get_cpl)(vcpu) != 0) &&
-	    (kvm_read_cr0(vcpu) & X86_CR0_PE))
+	    (kvm_read_cr0_bits(vcpu, X86_CR0_PE)))
 		return 1;
 
 	*data = pmc_read_counter(pmc) & mask;
arch/x86/kvm/vmx/nested.c +2 -2
index 768487611db7..89fa35fba3d8 100644
@@ -4483,7 +4483,7 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
 	 * CR0_GUEST_HOST_MASK is already set in the original vmcs01
 	 * (KVM doesn't change it);
 	 */
-	vcpu->arch.cr0_guest_owned_bits = KVM_POSSIBLE_CR0_GUEST_BITS;
+	vcpu->arch.cr0_guest_owned_bits = vmx_l1_guest_owned_cr0_bits();
 	vmx_set_cr0(vcpu, vmcs12->host_cr0);
 
 	/* Same as above - no reason to call set_cr4_guest_host_mask().  */
@@ -4634,7 +4634,7 @@ static void nested_vmx_restore_host_state(struct kvm_vcpu *vcpu)
 	 */
 	vmx_set_efer(vcpu, nested_vmx_get_vmcs01_guest_efer(vmx));
 
-	vcpu->arch.cr0_guest_owned_bits = KVM_POSSIBLE_CR0_GUEST_BITS;
+	vcpu->arch.cr0_guest_owned_bits = vmx_l1_guest_owned_cr0_bits();
 	vmx_set_cr0(vcpu, vmcs_readl(CR0_READ_SHADOW));
 
 	vcpu->arch.cr4_guest_owned_bits = ~vmcs_readl(CR4_GUEST_HOST_MASK);
arch/x86/kvm/vmx/vmx.c +3 -3
index dd92361f41b3..8ead0916e252 100644
@@ -4773,7 +4773,7 @@ static void init_vmcs(struct vcpu_vmx *vmx)
 	/* 22.2.1, 20.8.1 */
 	vm_entry_controls_set(vmx, vmx_vmentry_ctrl());
 
-	vmx->vcpu.arch.cr0_guest_owned_bits = KVM_POSSIBLE_CR0_GUEST_BITS;
+	vmx->vcpu.arch.cr0_guest_owned_bits = vmx_l1_guest_owned_cr0_bits();
 	vmcs_writel(CR0_GUEST_HOST_MASK, ~vmx->vcpu.arch.cr0_guest_owned_bits);
 
 	set_cr4_guest_host_mask(vmx);
@@ -5500,7 +5500,7 @@ static int handle_cr(struct kvm_vcpu *vcpu)
 		break;
 	case 3: /* lmsw */
 		val = (exit_qualification >> LMSW_SOURCE_DATA_SHIFT) & 0x0f;
-		trace_kvm_cr_write(0, (kvm_read_cr0(vcpu) & ~0xful) | val);
+		trace_kvm_cr_write(0, (kvm_read_cr0_bits(vcpu, ~0xful) | val));
 		kvm_lmsw(vcpu, val);
 
 		return kvm_skip_emulated_instruction(vcpu);
@@ -7558,7 +7558,7 @@ static u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio)
 	if (!kvm_arch_has_noncoherent_dma(vcpu->kvm))
 		return (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT) | VMX_EPT_IPAT_BIT;
 
-	if (kvm_read_cr0(vcpu) & X86_CR0_CD) {
+	if (kvm_read_cr0_bits(vcpu, X86_CR0_CD)) {
 		if (kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_CD_NW_CLEARED))
 			cache = MTRR_TYPE_WRBACK;
 		else
arch/x86/kvm/vmx/vmx.h +18 -0
index 2acdc54bc34b..423e9d3c9c40 100644
@@ -640,6 +640,24 @@ BUILD_CONTROLS_SHADOW(tertiary_exec, TERTIARY_VM_EXEC_CONTROL, 64)
 				(1 << VCPU_EXREG_EXIT_INFO_1) | \
 				(1 << VCPU_EXREG_EXIT_INFO_2))
 
+static inline unsigned long vmx_l1_guest_owned_cr0_bits(void)
+{
+	unsigned long bits = KVM_POSSIBLE_CR0_GUEST_BITS;
+
+	/*
+	 * CR0.WP needs to be intercepted when KVM is shadowing legacy paging
+	 * in order to construct shadow PTEs with the correct protections.
+	 * Note!  CR0.WP technically can be passed through to the guest if
+	 * paging is disabled, but checking CR0.PG would generate a cyclical
+	 * dependency of sorts due to forcing the caller to ensure CR0 holds
+	 * the correct value prior to determining which CR0 bits can be owned
+	 * by L1.  Keep it simple and limit the optimization to EPT.
+	 */
+	if (!enable_ept)
+		bits &= ~X86_CR0_WP;
+	return bits;
+}
+
 static __always_inline struct kvm_vmx *to_kvm_vmx(struct kvm *kvm)
 {
 	return container_of(kvm, struct kvm_vmx, kvm);
arch/x86/kvm/x86.c +12 -0
index 3d852ce84920..999b2db0737b 100644
@@ -906,6 +906,18 @@ EXPORT_SYMBOL_GPL(load_pdptrs);
 
 void kvm_post_set_cr0(struct kvm_vcpu *vcpu, unsigned long old_cr0, unsigned long cr0)
 {
+	/*
+	 * CR0.WP is incorporated into the MMU role, but only for non-nested,
+	 * indirect shadow MMUs.  If TDP is enabled, the MMU's metadata needs
+	 * to be updated, e.g. so that emulating guest translations does the
+	 * right thing, but there's no need to unload the root as CR0.WP
+	 * doesn't affect SPTEs.
+	 */
+	if (tdp_enabled && (cr0 ^ old_cr0) == X86_CR0_WP) {
+		kvm_init_mmu(vcpu);
+		return;
+	}
+
 	if ((cr0 ^ old_cr0) & X86_CR0_PG) {
 		kvm_clear_async_pf_completion_queue(vcpu);
 		kvm_async_pf_hash_reset(vcpu);
arch/x86/lib/clear_page_64.S +1 -1
index ecbfb4dd3b01..faa4cdc747a3 100644
@@ -142,8 +142,8 @@ SYM_FUNC_START(clear_user_rep_good)
 	and $7, %edx
 	jz .Lrep_good_exit
 
-.Lrep_good_bytes:
 	mov %edx, %ecx
+.Lrep_good_bytes:
 	rep stosb
 
 .Lrep_good_exit:
arch/x86/lib/retpoline.S +2 -2
index 5f61c65322be..22fc313c6500 100644
@@ -144,8 +144,8 @@ SYM_CODE_END(__x86_indirect_jump_thunk_array)
  */
 	.align 64
 	.skip 63, 0xcc
-SYM_FUNC_START_NOALIGN(zen_untrain_ret);
-
+SYM_START(zen_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE)
+	ANNOTATE_NOENDBR
 	/*
 	 * As executed from zen_untrain_ret, this is:
 	 *
block/blk-cgroup.c +3 -0
index bd50b55bdb61..75bad5d60c9f 100644
@@ -528,6 +528,9 @@ static void blkg_destroy_all(struct gendisk *disk)
 	list_for_each_entry_safe(blkg, n, &q->blkg_list, q_node) {
 		struct blkcg *blkcg = blkg->blkcg;
 
+		if (hlist_unhashed(&blkg->blkcg_node))
+			continue;
+
 		spin_lock(&blkcg->lock);
 		blkg_destroy(blkg);
 		spin_unlock(&blkcg->lock);
crypto/algapi.c +3 -0
index 9de0677b3643..60b98d2c400e 100644
@@ -963,6 +963,9 @@ EXPORT_SYMBOL_GPL(crypto_enqueue_request);
 void crypto_enqueue_request_head(struct crypto_queue *queue,
 				 struct crypto_async_request *request)
 {
+	if (unlikely(queue->qlen >= queue->max_qlen))
+		queue->backlog = queue->backlog->prev;
+
 	queue->qlen++;
 	list_add(&request->list, &queue->list);
 }
crypto/crypto_engine.c +3 -3
index 21f791615114..74fcc0897041 100644
@@ -129,9 +129,6 @@ static void crypto_pump_requests(struct crypto_engine *engine,
 	if (!engine->retry_support)
 		engine->cur_req = async_req;
 
-	if (backlog)
-		crypto_request_complete(backlog, -EINPROGRESS);
-
 	if (engine->busy)
 		was_busy = true;
 	else
@@ -217,6 +214,9 @@ static void crypto_pump_requests(struct crypto_engine *engine,
 	crypto_request_complete(async_req, ret);
 
 retry:
+	if (backlog)
+		crypto_request_complete(backlog, -EINPROGRESS);
+
 	/* If retry mechanism is supported, send new requests to engine */
 	if (engine->retry_support) {
 		spin_lock_irqsave(&engine->queue_lock, flags);
drivers/block/ublk_drv.c +31 -0
index 604c1a13c76e..41c35ab2c25a 100644
@@ -128,6 +128,7 @@ struct ublk_queue {
 	unsigned long io_addr;	/* mapped vm address */
 	unsigned int max_io_sz;
 	bool force_abort;
+	bool timeout;
 	unsigned short nr_io_ready;	/* how many ios setup */
 	struct ublk_device *dev;
 	struct ublk_io ios[];
@@ -900,6 +901,22 @@ static void ublk_queue_cmd(struct ublk_queue *ubq, struct request *rq)
 	}
 }
 
+static enum blk_eh_timer_return ublk_timeout(struct request *rq)
+{
+	struct ublk_queue *ubq = rq->mq_hctx->driver_data;
+
+	if (ubq->flags & UBLK_F_UNPRIVILEGED_DEV) {
+		if (!ubq->timeout) {
+			send_sig(SIGKILL, ubq->ubq_daemon, 0);
+			ubq->timeout = true;
+		}
+
+		return BLK_EH_DONE;
+	}
+
+	return BLK_EH_RESET_TIMER;
+}
+
 static blk_status_t ublk_queue_rq(struct blk_mq_hw_ctx *hctx,
 		const struct blk_mq_queue_data *bd)
 {
@@ -959,6 +976,7 @@ static const struct blk_mq_ops ublk_mq_ops = {
 	.queue_rq       = ublk_queue_rq,
 	.init_hctx	= ublk_init_hctx,
 	.init_request   = ublk_init_rq,
+	.timeout	= ublk_timeout,
 };
 
 static int ublk_ch_open(struct inode *inode, struct file *filp)
@@ -1721,6 +1739,18 @@ static int ublk_ctrl_add_dev(struct io_uring_cmd *cmd)
 	else if (!(info.flags & UBLK_F_UNPRIVILEGED_DEV))
 		return -EPERM;
 
+	/*
+	 * unprivileged device can't be trusted, but RECOVERY and
+	 * RECOVERY_REISSUE still may hang error handling, so can't
+	 * support recovery features for unprivileged ublk now
+	 *
+	 * TODO: provide forward progress for RECOVERY handler, so that
+	 * unprivileged device can benefit from it
+	 */
+	if (info.flags & UBLK_F_UNPRIVILEGED_DEV)
+		info.flags &= ~(UBLK_F_USER_RECOVERY_REISSUE |
+				UBLK_F_USER_RECOVERY);
+
 	/* the created device is always owned by current user */
 	ublk_store_owner_uid_gid(&info.owner_uid, &info.owner_gid);
 
@@ -1989,6 +2019,7 @@ static void ublk_queue_reinit(struct ublk_device *ub, struct ublk_queue *ubq)
 	put_task_struct(ubq->ubq_daemon);
 	/* We have to reset it to NULL, otherwise ub won't accept new FETCH_REQ */
 	ubq->ubq_daemon = NULL;
+	ubq->timeout = false;
 
 	for (i = 0; i < ubq->q_depth; i++) {
 		struct ublk_io *io = &ubq->ios[i];
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c +1 -1
index 83c6dfad77e1..16966cc94e24 100644
@@ -151,7 +151,7 @@ static int sun8i_ss_setup_ivs(struct skcipher_request *areq)
 		}
 		rctx->p_iv[i] = a;
 		/* we need to setup all others IVs only in the decrypt way */
-		if (rctx->op_dir & SS_ENCRYPTION)
+		if (rctx->op_dir == SS_ENCRYPTION)
 			return 0;
 		todo = min(len, sg_dma_len(sg));
 		len -= todo;
drivers/crypto/ccp/psp-dev.c +3 -3
index c9c741ac8442..949a3fa0b94a 100644
@@ -42,6 +42,9 @@ static irqreturn_t psp_irq_handler(int irq, void *data)
 	/* Read the interrupt status: */
 	status = ioread32(psp->io_regs + psp->vdata->intsts_reg);
 
+	/* Clear the interrupt status by writing the same value we read. */
+	iowrite32(status, psp->io_regs + psp->vdata->intsts_reg);
+
 	/* invoke subdevice interrupt handlers */
 	if (status) {
 		if (psp->sev_irq_handler)
@@ -51,9 +54,6 @@ static irqreturn_t psp_irq_handler(int irq, void *data)
 			psp->tee_irq_handler(irq, psp->tee_irq_data, status);
 	}
 
-	/* Clear the interrupt status by writing the same value we read. */
-	iowrite32(status, psp->io_regs + psp->vdata->intsts_reg);
-
 	return IRQ_HANDLED;
 }
 
drivers/edac/qcom_edac.c +29 -21

78 lines not on this page · raw message

drivers/firewire/net.c +11 -10
index af22be84034b..538bd677c254 100644
@@ -706,21 +706,22 @@ static void fwnet_receive_packet(struct fw_card *card, struct fw_request *r,
 	int rcode;
 
 	if (destination == IEEE1394_ALL_NODES) {
-		kfree(r);
-
-		return;
-	}
-
-	if (offset != dev->handler.offset)
+		// Although the response to the broadcast packet is not necessarily required, the
+		// fw_send_response() function should still be called to maintain the reference
+		// counting of the object. In the case, the call of function just releases the
+		// object as a result to decrease the reference counting.
+		rcode = RCODE_COMPLETE;
+	} else if (offset != dev->handler.offset) {
 		rcode = RCODE_ADDRESS_ERROR;
-	else if (tcode != TCODE_WRITE_BLOCK_REQUEST)
+	} else if (tcode != TCODE_WRITE_BLOCK_REQUEST) {
 		rcode = RCODE_TYPE_ERROR;
-	else if (fwnet_incoming_packet(dev, payload, length,
-				       source, generation, false) != 0) {
+	} else if (fwnet_incoming_packet(dev, payload, length,
+					 source, generation, false) != 0) {
 		dev_err(&dev->netdev->dev, "incoming packet failure\n");
 		rcode = RCODE_CONFLICT_ERROR;
-	} else
+	} else {
 		rcode = RCODE_COMPLETE;
+	}
 
 	fw_send_response(card, r, rcode);
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +3 -10
index 08eced097bd8..2eb2c66843a8 100644
@@ -1276,7 +1276,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
 		r = drm_sched_job_add_dependency(&leader->base, fence);
 		if (r) {
 			dma_fence_put(fence);
-			goto error_cleanup;
+			return r;
 		}
 	}
 
@@ -1303,7 +1303,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
 	}
 	if (r) {
 		r = -EAGAIN;
-		goto error_unlock;
+		mutex_unlock(&p->adev->notifier_lock);
+		return r;
 	}
 
 	p->fence = dma_fence_get(&leader->base.s_fence->finished);
@@ -1350,14 +1351,6 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
 	mutex_unlock(&p->adev->notifier_lock);
 	mutex_unlock(&p->bo_list->bo_list_mutex);
 	return 0;
-
-error_unlock:
-	mutex_unlock(&p->adev->notifier_lock);
-
-error_cleanup:
-	for (i = 0; i < p->gang_size; ++i)
-		drm_sched_job_cleanup(&p->jobs[i]->base);
-	return r;
 }
 
 /* Cleanup the parser structure */
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +5 -1
index 6f715fb930bb..aa46726dfdb0 100644
@@ -4482,7 +4482,11 @@ static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
 	dev_info(adev->dev, "recover vram bo from shadow start\n");
 	mutex_lock(&adev->shadow_list_lock);
 	list_for_each_entry(vmbo, &adev->shadow_list, shadow_list) {
-		shadow = &vmbo->bo;
+		/* If vm is compute context or adev is APU, shadow will be NULL */
+		if (!vmbo->shadow)
+			continue;
+		shadow = vmbo->shadow;
+
 		/* No need to recover an evicted BO */
 		if (shadow->tbo.resource->mem_type != TTM_PL_TT ||
 		    shadow->tbo.resource->start == AMDGPU_BO_INVALID_OFFSET ||
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +5 -3
index 35ed46b9249c..8a0a4464ea83 100644
@@ -686,9 +686,11 @@ int amdgpu_gfx_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *r
 		if (r)
 			return r;
 
-		r = amdgpu_irq_get(adev, &adev->gfx.cp_ecc_error_irq, 0);
-		if (r)
-			goto late_fini;
+		if (adev->gfx.cp_ecc_error_irq.funcs) {
+			r = amdgpu_irq_get(adev, &adev->gfx.cp_ecc_error_irq, 0);
+			if (r)
+				goto late_fini;
+		}
 	} else {
 		amdgpu_ras_feature_enable_on_boot(adev, ras_block, 0);
 	}
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +5 -1
index e9b45089a28a..863b2a34b2d6 100644
@@ -38,6 +38,7 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,
 {
 	struct fd f = fdget(fd);
 	struct amdgpu_fpriv *fpriv;
+	struct amdgpu_ctx_mgr *mgr;
 	struct amdgpu_ctx *ctx;
 	uint32_t id;
 	int r;
@@ -51,8 +52,11 @@ static int amdgpu_sched_process_priority_override(struct amdgpu_device *adev,
 		return r;
 	}
 
-	idr_for_each_entry(&fpriv->ctx_mgr.ctx_handles, ctx, id)
+	mgr = &fpriv->ctx_mgr;
+	mutex_lock(&mgr->lock);
+	idr_for_each_entry(&mgr->ctx_handles, ctx, id)
 		amdgpu_ctx_priority_override(ctx, priority);
+	mutex_unlock(&mgr->lock);
 
 	fdput(f);
 	return 0;
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +0 -46

76 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +2 -1
index ae09fc1cfe6b..c54d05bdc2d8 100644
@@ -3751,7 +3751,8 @@ static int gfx_v9_0_hw_fini(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-	amdgpu_irq_put(adev, &adev->gfx.cp_ecc_error_irq, 0);
+	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__GFX))
+		amdgpu_irq_put(adev, &adev->gfx.cp_ecc_error_irq, 0);
 	amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
 	amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
 
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +0 -1
index ab2556ca984e..be16e627e54b 100644
@@ -1161,7 +1161,6 @@ static int gmc_v10_0_hw_fini(void *handle)
 		return 0;
 	}
 
-	amdgpu_irq_put(adev, &adev->gmc.ecc_irq, 0);
 	amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
 
 	return 0;
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c +0 -1
index af7b3ba1ca00..abdb8d8421b1 100644
@@ -954,7 +954,6 @@ static int gmc_v11_0_hw_fini(void *handle)
 		return 0;
 	}
 
-	amdgpu_irq_put(adev, &adev->gmc.ecc_irq, 0);
 	amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
 	gmc_v11_0_gart_disable(adev);
 
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +0 -1
index b06170c00dfc..83d22dd8b871 100644
@@ -1987,7 +1987,6 @@ static int gmc_v9_0_hw_fini(void *handle)
 	if (adev->mmhub.funcs->update_power_gating)
 		adev->mmhub.funcs->update_power_gating(adev, false);
 
-	amdgpu_irq_put(adev, &adev->gmc.ecc_irq, 0);
 	amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
 
 	return 0;
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c +1 -0
index a1b751d9ac06..323d68b2124f 100644
@@ -54,6 +54,7 @@ static int jpeg_v3_0_early_init(void *handle)
 
 	switch (adev->ip_versions[UVD_HWIP][0]) {
 	case IP_VERSION(3, 1, 1):
+	case IP_VERSION(3, 1, 2):
 		break;
 	default:
 		harvest = RREG32_SOC15(JPEG, 0, mmCC_UVD_HARVESTING);
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +5 -3
index b5affba22156..8b8ddf050266 100644
@@ -1903,9 +1903,11 @@ static int sdma_v4_0_hw_fini(void *handle)
 		return 0;
 	}
 
-	for (i = 0; i < adev->sdma.num_instances; i++) {
-		amdgpu_irq_put(adev, &adev->sdma.ecc_irq,
-			       AMDGPU_SDMA_IRQ_INSTANCE0 + i);
+	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__SDMA)) {
+		for (i = 0; i < adev->sdma.num_instances; i++) {
+			amdgpu_irq_put(adev, &adev->sdma.ecc_irq,
+				       AMDGPU_SDMA_IRQ_INSTANCE0 + i);
+		}
 	}
 
 	sdma_v4_0_ctx_switch_enable(adev, false);
drivers/gpu/drm/amd/amdgpu/soc21.c +1 -1
index c82b3a7ea5f0..20cf861bfda1 100644
@@ -778,7 +778,7 @@ static int soc21_common_early_init(void *handle)
 			AMD_PG_SUPPORT_VCN_DPG |
 			AMD_PG_SUPPORT_GFX_PG |
 			AMD_PG_SUPPORT_JPEG;
-		adev->external_rev_id = adev->rev_id + 0x1;
+		adev->external_rev_id = adev->rev_id + 0x80;
 		break;
 
 	default:
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +23 -4
index 62af874f26e0..f54d670ab3ab 100644
@@ -2274,7 +2274,7 @@ static int dm_late_init(void *handle)
 		struct dc_link *edp_links[MAX_NUM_EDP];
 		int edp_num;
 
-		get_edp_links(adev->dm.dc, edp_links, &edp_num);
+		dc_get_edp_links(adev->dm.dc, edp_links, &edp_num);
 		for (i = 0; i < edp_num; i++) {
 			if (!dmub_init_abm_config(adev->dm.dc->res_pool, params, i))
 				return -EINVAL;
@@ -7876,6 +7876,13 @@ static void amdgpu_dm_commit_cursors(struct drm_atomic_state *state)
 			handle_cursor_update(plane, old_plane_state);
 }
 
+static inline uint32_t get_mem_type(struct drm_framebuffer *fb)
+{
+	struct amdgpu_bo *abo = gem_to_amdgpu_bo(fb->obj[0]);
+
+	return abo->tbo.resource ? abo->tbo.resource->mem_type : 0;
+}
+
 static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
 				    struct dc_state *dc_state,
 				    struct drm_device *dev,
@@ -7950,6 +7957,8 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
 			continue;
 
 		dc_plane = dm_new_plane_state->dc_state;
+		if (!dc_plane)
+			continue;
 
 		bundle->surface_updates[planes_count].surface = dc_plane;
 		if (new_pcrtc_state->color_mgmt_changed) {
@@ -8016,11 +8025,13 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
 
 		/*
 		 * Only allow immediate flips for fast updates that don't
-		 * change FB pitch, DCC state, rotation or mirroing.
+		 * change memory domain, FB pitch, DCC state, rotation or
+		 * mirroring.
 		 */
 		bundle->flip_addrs[planes_count].flip_immediate =
 			crtc->state->async_flip &&
-			acrtc_state->update_type == UPDATE_TYPE_FAST;
+			acrtc_state->update_type == UPDATE_TYPE_FAST &&
+			get_mem_type(old_plane_state->fb) == get_mem_type(fb);
 
 		timestamp_ns = ktime_get_ns();
 		bundle->flip_addrs[planes_count].flip_timestamp_in_us = div_u64(timestamp_ns, 1000);
@@ -8533,6 +8544,9 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
 		struct amdgpu_crtc *acrtc = to_amdgpu_crtc(dm_new_con_state->base.crtc);
 		struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
 
+		if (!adev->dm.hdcp_workqueue)
+			continue;
+
 		pr_debug("[HDCP_DM] -------------- i : %x ----------\n", i);
 
 		if (!connector)
@@ -8581,6 +8595,9 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
 		struct amdgpu_crtc *acrtc = to_amdgpu_crtc(dm_new_con_state->base.crtc);
 		struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
 
+		if (!adev->dm.hdcp_workqueue)
+			continue;
+
 		new_crtc_state = NULL;
 		old_crtc_state = NULL;
 
@@ -9601,8 +9618,9 @@ static int dm_update_plane_state(struct dc *dc,
 			return -EINVAL;
 		}
 
+		if (dm_old_plane_state->dc_state)
+			dc_plane_state_release(dm_old_plane_state->dc_state);
 
-		dc_plane_state_release(dm_old_plane_state->dc_state);
 		dm_new_plane_state->dc_state = NULL;
 
 		*lock_and_validation_needed = true;
@@ -10150,6 +10168,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
 		ret = compute_mst_dsc_configs_for_state(state, dm_state->context, vars);
 		if (ret) {
 			DRM_DEBUG_DRIVER("compute_mst_dsc_configs_for_state() failed\n");
+			ret = -EINVAL;
 			goto fail;
 		}
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +1 -1
index 09a3efa517da..4a5dae578d97 100644
@@ -724,7 +724,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __us
 	for (i = 0; i < (unsigned int)(link_training_settings.link_settings.lane_count); i++)
 		link_training_settings.hw_lane_settings[i] = link->cur_lane_setting[i];
 
-	dc_link_set_test_pattern(
+	dc_link_dp_set_test_pattern(
 		link,
 		test_pattern,
 		DP_TEST_PATTERN_COLOR_SPACE_RGB,
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +11 -6
index 8dc442f90eaf..3da519957f6c 100644
@@ -385,13 +385,17 @@ static int dm_dp_mst_get_modes(struct drm_connector *connector)
 		if (aconnector->dc_sink && connector->state) {
 			struct drm_device *dev = connector->dev;
 			struct amdgpu_device *adev = drm_to_adev(dev);
-			struct hdcp_workqueue *hdcp_work = adev->dm.hdcp_workqueue;
-			struct hdcp_workqueue *hdcp_w = &hdcp_work[aconnector->dc_link->link_index];
 
-			connector->state->hdcp_content_type =
-			hdcp_w->hdcp_content_type[connector->index];
-			connector->state->content_protection =
-			hdcp_w->content_protection[connector->index];
+			if (adev->dm.hdcp_workqueue) {
+				struct hdcp_workqueue *hdcp_work = adev->dm.hdcp_workqueue;
+				struct hdcp_workqueue *hdcp_w =
+					&hdcp_work[aconnector->dc_link->link_index];
+
+				connector->state->hdcp_content_type =
+				hdcp_w->hdcp_content_type[connector->index];
+				connector->state->content_protection =
+				hdcp_w->content_protection[connector->index];
+			}
 		}
 #endif
 
@@ -1410,6 +1414,7 @@ int pre_validate_dsc(struct drm_atomic_state *state,
 	ret = pre_compute_mst_dsc_configs_for_state(state, local_dc_state, vars);
 	if (ret != 0) {
 		DRM_INFO_ONCE("pre_compute_mst_dsc_configs_for_state() failed\n");
+		ret = -EINVAL;
 		goto clean_exit;
 	}
 
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c +2 -2
index 69691daf4dbb..73a45ec27f90 100644
@@ -104,7 +104,7 @@ void clk_mgr_exit_optimized_pwr_state(const struct dc *dc, struct clk_mgr *clk_m
 	int edp_num;
 	unsigned int panel_inst;
 
-	get_edp_links(dc, edp_links, &edp_num);
+	dc_get_edp_links(dc, edp_links, &edp_num);
 	if (dc->hwss.exit_optimized_pwr_state)
 		dc->hwss.exit_optimized_pwr_state(dc, dc->current_state);
 
@@ -129,7 +129,7 @@ void clk_mgr_optimize_pwr_state(const struct dc *dc, struct clk_mgr *clk_mgr)
 	int edp_num;
 	unsigned int panel_inst;
 
-	get_edp_links(dc, edp_links, &edp_num);
+	dc_get_edp_links(dc, edp_links, &edp_num);
 	if (edp_num) {
 		for (panel_inst = 0; panel_inst < edp_num; panel_inst++) {
 			edp_link = edp_links[panel_inst];
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c +5 -0
index 61768bf726f8..31ee81ebb4ea 100644
@@ -805,6 +805,8 @@ void dcn32_clk_mgr_construct(
 		struct pp_smu_funcs *pp_smu,
 		struct dccg *dccg)
 {
+	struct clk_log_info log_info = {0};
+
 	clk_mgr->base.ctx = ctx;
 	clk_mgr->base.funcs = &dcn32_funcs;
 	if (ASICREV_IS_GC_11_0_2(clk_mgr->base.ctx->asic_id.hw_internal_rev)) {
@@ -838,6 +840,7 @@ void dcn32_clk_mgr_construct(
 			clk_mgr->base.clks.ref_dtbclk_khz = 268750;
 	}
 
+
 	/* integer part is now VCO frequency in kHz */
 	clk_mgr->base.dentist_vco_freq_khz = dcn32_get_vco_frequency_from_reg(clk_mgr);
 
@@ -845,6 +848,8 @@ void dcn32_clk_mgr_construct(
 	if (clk_mgr->base.dentist_vco_freq_khz == 0)
 		clk_mgr->base.dentist_vco_freq_khz = 4300000; /* Updated as per HW docs */
 
+	dcn32_dump_clk_registers(&clk_mgr->base.boot_snapshot, &clk_mgr->base, &log_info);
+
 	if (ctx->dc->debug.disable_dtb_ref_clk_switch &&
 			clk_mgr->base.clks.ref_dtbclk_khz != clk_mgr->base.boot_snapshot.dtbclk) {
 		clk_mgr->base.clks.ref_dtbclk_khz = clk_mgr->base.boot_snapshot.dtbclk;
drivers/gpu/drm/amd/display/dc/core/dc.c +2 -154

180 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c +87 -0

96 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/core/dc_resource.c +3 -0
index d9f2ef242b0f..0ae6dcc403a4 100644
@@ -1707,6 +1707,9 @@ bool dc_remove_plane_from_context(
 	struct dc_stream_status *stream_status = NULL;
 	struct resource_pool *pool = dc->res_pool;
 
+	if (!plane_state)
+		return true;
+
 	for (i = 0; i < context->stream_count; i++)
 		if (context->streams[i] == stream) {
 			stream_status = &context->stream_status[i];
drivers/gpu/drm/amd/display/dc/dc.h +552 -2

593 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dc_dp_types.h +107 -0

111 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dc_hw_types.h +14 -0
index cc3d6fb39364..a583a72845fe 100644
@@ -1085,5 +1085,19 @@ struct tg_color {
 	uint16_t color_b_cb;
 };
 
+enum symclk_state {
+	SYMCLK_OFF_TX_OFF,
+	SYMCLK_ON_TX_ON,
+	SYMCLK_ON_TX_OFF,
+};
+
+struct phy_state {
+	struct {
+		uint8_t otg		: 1;
+		uint8_t reserved	: 7;
+	} symclk_ref_cnts;
+	enum symclk_state symclk_state;
+};
+
 #endif /* DC_HW_TYPES_H */
 
drivers/gpu/drm/amd/display/dc/dc_types.h +111 -0

121 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c +1 -1
index fb0dec4ed3a6..9fc48208c2e4 100644
@@ -148,7 +148,7 @@ static bool dmub_abm_set_level(struct abm *abm, uint32_t level)
 	int edp_num;
 	uint8_t panel_mask = 0;
 
-	get_edp_links(dc->dc, edp_links, &edp_num);
+	dc_get_edp_links(dc->dc, edp_links, &edp_num);
 
 	for (i = 0; i < edp_num; i++) {
 		if (edp_links[i]->link_status.link_active)
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h +3 -2
index 74005b9d352a..289e42070ece 100644
@@ -26,8 +26,9 @@
 #ifndef _DMUB_PSR_H_
 #define _DMUB_PSR_H_
 
-#include "os_types.h"
-#include "dc_link.h"
+#include "dc_types.h"
+struct dc_link;
+struct dmub_psr_funcs;
 
 struct dmub_psr {
 	struct dc_context *ctx;
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +1 -1
index 0d4d3d586166..cb3bb5402c52 100644
@@ -1739,7 +1739,7 @@ void dce110_enable_accelerated_mode(struct dc *dc, struct dc_state *context)
 
 
 	get_edp_links_with_sink(dc, edp_links_with_sink, &edp_with_sink_num);
-	get_edp_links(dc, edp_links, &edp_num);
+	dc_get_edp_links(dc, edp_links, &edp_num);
 
 	if (hws->funcs.init_pipes)
 		hws->funcs.init_pipes(dc, context);
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +14 -4
index a1a29c508394..e255519cb5cc 100644
@@ -726,11 +726,15 @@ void dcn10_hubp_pg_control(
 	}
 }
 
-static void power_on_plane(
+static void power_on_plane_resources(
 	struct dce_hwseq *hws,
 	int plane_id)
 {
 	DC_LOGGER_INIT(hws->ctx->logger);
+
+	if (hws->funcs.dpp_root_clock_control)
+		hws->funcs.dpp_root_clock_control(hws, plane_id, true);
+
 	if (REG(DC_IP_REQUEST_CNTL)) {
 		REG_SET(DC_IP_REQUEST_CNTL, 0,
 				IP_REQUEST_EN, 1);
@@ -1237,11 +1241,15 @@ void dcn10_plane_atomic_power_down(struct dc *dc,
 			hws->funcs.hubp_pg_control(hws, hubp->inst, false);
 
 		dpp->funcs->dpp_reset(dpp);
+
 		REG_SET(DC_IP_REQUEST_CNTL, 0,
 				IP_REQUEST_EN, 0);
 		DC_LOG_DEBUG(
 				"Power gated front end %d\n", hubp->inst);
 	}
+
+	if (hws->funcs.dpp_root_clock_control)
+		hws->funcs.dpp_root_clock_control(hws, dpp->inst, false);
 }
 
 /* disable HW used by plane.
@@ -1638,7 +1646,7 @@ void dcn10_power_down_on_boot(struct dc *dc)
 	int edp_num;
 	int i = 0;
 
-	get_edp_links(dc, edp_links, &edp_num);
+	dc_get_edp_links(dc, edp_links, &edp_num);
 	if (edp_num)
 		edp_link = edp_links[0];
 
@@ -2462,7 +2470,7 @@ static void dcn10_enable_plane(
 
 	undo_DEGVIDCN10_253_wa(dc);
 
-	power_on_plane(dc->hwseq,
+	power_on_plane_resources(dc->hwseq,
 		pipe_ctx->plane_res.hubp->inst);
 
 	/* enable DCFCLK current DCHUB */
@@ -3385,7 +3393,9 @@ static bool dcn10_can_pipe_disable_cursor(struct pipe_ctx *pipe_ctx)
 	for (test_pipe = pipe_ctx->top_pipe; test_pipe;
 	     test_pipe = test_pipe->top_pipe) {
 		// Skip invisible layer and pipe-split plane on same layer
-		if (!test_pipe->plane_state->visible || test_pipe->plane_state->layer_index == cur_layer)
+		if (!test_pipe->plane_state ||
+		    !test_pipe->plane_state->visible ||
+		    test_pipe->plane_state->layer_index == cur_layer)
 			continue;
 
 		r2 = test_pipe->plane_res.scl_data.recout;
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +6 -2
index b83873a3a534..0789129727e4 100644
@@ -1121,11 +1121,15 @@ void dcn20_blank_pixel_data(
 }
 
 
-static void dcn20_power_on_plane(
+static void dcn20_power_on_plane_resources(
 	struct dce_hwseq *hws,
 	struct pipe_ctx *pipe_ctx)
 {
 	DC_LOGGER_INIT(hws->ctx->logger);
+
+	if (hws->funcs.dpp_root_clock_control)
+		hws->funcs.dpp_root_clock_control(hws, pipe_ctx->plane_res.dpp->inst, true);
+
 	if (REG(DC_IP_REQUEST_CNTL)) {
 		REG_SET(DC_IP_REQUEST_CNTL, 0,
 				IP_REQUEST_EN, 1);
@@ -1149,7 +1153,7 @@ static void dcn20_enable_plane(struct dc *dc, struct pipe_ctx *pipe_ctx,
 	//if (dc->debug.sanity_checks) {
 	//	dcn10_verify_allow_pstate_change_high(dc);
 	//}
-	dcn20_power_on_plane(dc->hwseq, pipe_ctx);
+	dcn20_power_on_plane_resources(dc->hwseq, pipe_ctx);
 
 	/* enable DCFCLK current DCHUB */
 	pipe_ctx->plane_res.hubp->funcs->hubp_clk_cntl(pipe_ctx->plane_res.hubp, true);
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c +1 -0
index 5f9079d3943a..9d08127d209b 100644
@@ -28,6 +28,7 @@
 #include "dcn30_dio_stream_encoder.h"
 #include "reg_helper.h"
 #include "hw_shared.h"
+#include "dc.h"
 #include "core_types.h"
 #include <linux/delay.h>
 
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +1 -1
index df787fcf8e86..b4df540c0c61 100644
@@ -567,7 +567,7 @@ void dcn30_init_hw(struct dc *dc)
 		struct dc_link *edp_links[MAX_NUM_EDP];
 		struct dc_link *edp_link = NULL;
 
-		get_edp_links(dc, edp_links, &edp_num);
+		dc_get_edp_links(dc, edp_links, &edp_num);
 		if (edp_num)
 			edp_link = edp_links[0];
 		if (edp_link && edp_link->link_enc->funcs->is_dig_enabled &&
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c +2 -11
index 7f34418e6308..7d2b982506fd 100644
@@ -66,17 +66,8 @@ void dccg31_update_dpp_dto(struct dccg *dccg, int dpp_inst, int req_dppclk)
 		REG_UPDATE(DPPCLK_DTO_CTRL,
 				DPPCLK_DTO_ENABLE[dpp_inst], 1);
 	} else {
-		//DTO must be enabled to generate a 0Hz clock output
-		if (dccg->ctx->dc->debug.root_clock_optimization.bits.dpp) {
-			REG_UPDATE(DPPCLK_DTO_CTRL,
-					DPPCLK_DTO_ENABLE[dpp_inst], 1);
-			REG_SET_2(DPPCLK_DTO_PARAM[dpp_inst], 0,
-					DPPCLK0_DTO_PHASE, 0,
-					DPPCLK0_DTO_MODULO, 1);
-		} else {
-			REG_UPDATE(DPPCLK_DTO_CTRL,
-					DPPCLK_DTO_ENABLE[dpp_inst], 0);
-		}
+		REG_UPDATE(DPPCLK_DTO_CTRL,
+				DPPCLK_DTO_ENABLE[dpp_inst], 0);
 	}
 	dccg->pipe_dppclk_khz[dpp_inst] = req_dppclk;
 }
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c +0 -1
index 0b317ed31f91..5b7ad38f85e0 100644
@@ -26,7 +26,6 @@
 #include "dc_bios_types.h"
 #include "dcn31_hpo_dp_link_encoder.h"
 #include "reg_helper.h"
-#include "dc_link.h"
 #include "stream_encoder.h"
 
 #define DC_LOGGER \
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c +1 -1
index d76f55a12eb4..0278bae50a9d 100644
@@ -26,7 +26,7 @@
 #include "dc_bios_types.h"
 #include "dcn31_hpo_dp_stream_encoder.h"
 #include "reg_helper.h"
-#include "dc_link.h"
+#include "dc.h"
 
 #define DC_LOGGER \
 		enc3->base.ctx->logger
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c +23 -0
index 0b769ee71405..081ce168f621 100644
@@ -289,8 +289,31 @@ static void dccg314_set_valid_pixel_rate(
 	dccg314_set_dtbclk_dto(dccg, &dto_params);
 }
 
+static void dccg314_dpp_root_clock_control(
+		struct dccg *dccg,
+		unsigned int dpp_inst,
+		bool clock_on)
+{
+	struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg);
+
+	if (clock_on) {
+		/* turn off the DTO and leave phase/modulo at max */
+		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_ENABLE[dpp_inst], 0);
+		REG_SET_2(DPPCLK_DTO_PARAM[dpp_inst], 0,
+			  DPPCLK0_DTO_PHASE, 0xFF,
+			  DPPCLK0_DTO_MODULO, 0xFF);
+	} else {
+		/* turn on the DTO to generate a 0hz clock */
+		REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_ENABLE[dpp_inst], 1);
+		REG_SET_2(DPPCLK_DTO_PARAM[dpp_inst], 0,
+			  DPPCLK0_DTO_PHASE, 0,
+			  DPPCLK0_DTO_MODULO, 1);
+	}
+}
+
 static const struct dccg_funcs dccg314_funcs = {
 	.update_dpp_dto = dccg31_update_dpp_dto,
+	.dpp_root_clock_control = dccg314_dpp_root_clock_control,
 	.get_dccg_ref_freq = dccg31_get_dccg_ref_freq,
 	.dccg_init = dccg31_init,
 	.set_dpstreamclk = dccg314_set_dpstreamclk,
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c +10 -0
index 575d3501c848..0d180f13803d 100644
@@ -390,6 +390,16 @@ void dcn314_set_pixels_per_cycle(struct pipe_ctx *pipe_ctx)
 				pix_per_cycle);
 }
 
+void dcn314_dpp_root_clock_control(struct dce_hwseq *hws, unsigned int dpp_inst, bool clock_on)
+{
+	if (!hws->ctx->dc->debug.root_clock_optimization.bits.dpp)
+		return;
+
+	if (hws->ctx->dc->res_pool->dccg->funcs->dpp_root_clock_control)
+		hws->ctx->dc->res_pool->dccg->funcs->dpp_root_clock_control(
+			hws->ctx->dc->res_pool->dccg, dpp_inst, clock_on);
+}
+
 void dcn314_hubp_pg_control(struct dce_hwseq *hws, unsigned int hubp_inst, bool power_on)
 {
 	struct dc_context *ctx = hws->ctx;
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h +2 -0
index c419d3dbdfee..c786d5e6a428 100644
@@ -43,4 +43,6 @@ void dcn314_set_pixels_per_cycle(struct pipe_ctx *pipe_ctx);
 
 void dcn314_hubp_pg_control(struct dce_hwseq *hws, unsigned int hubp_inst, bool power_on);
 
+void dcn314_dpp_root_clock_control(struct dce_hwseq *hws, unsigned int dpp_inst, bool clock_on);
+
 #endif /* __DC_HWSS_DCN314_H__ */
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c +1 -0
index 343f4d9dd5e3..5267e901a35c 100644
@@ -137,6 +137,7 @@ static const struct hwseq_private_funcs dcn314_private_funcs = {
 	.plane_atomic_disable = dcn20_plane_atomic_disable,
 	.plane_atomic_power_down = dcn10_plane_atomic_power_down,
 	.enable_power_gating_plane = dcn314_enable_power_gating_plane,
+	.dpp_root_clock_control = dcn314_dpp_root_clock_control,
 	.hubp_pg_control = dcn314_hubp_pg_control,
 	.program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree,
 	.update_odm = dcn314_update_odm,
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c +1 -0
index 9ffba4c6fe55..30129fb9c27a 100644
@@ -887,6 +887,7 @@ static const struct dc_plane_cap plane_cap = {
 static const struct dc_debug_options debug_defaults_drv = {
 	.disable_z10 = false,
 	.enable_z9_disable_interface = true,
+	.minimum_z8_residency_time = 2000,
 	.psr_skip_crtc_disable = true,
 	.disable_dmcu = true,
 	.force_abm_enable = false,
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c +0 -1
index 4dbad8d4b4fc..8af01f579690 100644
@@ -26,7 +26,6 @@
 #include "dcn31/dcn31_hpo_dp_link_encoder.h"
 #include "dcn32_hpo_dp_link_encoder.h"
 #include "reg_helper.h"
-#include "dc_link.h"
 #include "stream_encoder.h"
 
 #define DC_LOGGER \
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +2 -1
index 9d14045cccd6..823f29c292d0 100644
@@ -828,7 +828,7 @@ void dcn32_init_hw(struct dc *dc)
 		struct dc_link *edp_links[MAX_NUM_EDP];
 		struct dc_link *edp_link;
 
-		get_edp_links(dc, edp_links, &edp_num);
+		dc_get_edp_links(dc, edp_links, &edp_num);
 		if (edp_num) {
 			for (i = 0; i < edp_num; i++) {
 				edp_link = edp_links[i];
@@ -912,6 +912,7 @@ void dcn32_init_hw(struct dc *dc)
 	if (dc->ctx->dmub_srv) {
 		dc_dmub_srv_query_caps_cmd(dc->ctx->dmub_srv->dmub);
 		dc->caps.dmub_caps.psr = dc->ctx->dmub_srv->dmub->feature_caps.psr;
+		dc->caps.dmub_caps.mclk_sw = dc->ctx->dmub_srv->dmub->feature_caps.fw_assisted_mclk_switch;
 	}
 }
 
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c +10 -2
index 4b7abb4af623..a518243792df 100644
@@ -2021,7 +2021,7 @@ int dcn32_populate_dml_pipes_from_context(
 	// In general cases we want to keep the dram clock change requirement
 	// (prefer configs that support MCLK switch). Only override to false
 	// for SubVP
-	if (subvp_in_use)
+	if (context->bw_ctx.bw.dcn.clk.fw_based_mclk_switching || subvp_in_use)
 		context->bw_ctx.dml.soc.dram_clock_change_requirement_final = false;
 	else
 		context->bw_ctx.dml.soc.dram_clock_change_requirement_final = true;
@@ -2077,6 +2077,14 @@ static struct resource_funcs dcn32_res_pool_funcs = {
 	.restore_mall_state = dcn32_restore_mall_state,
 };
 
+static uint32_t read_pipe_fuses(struct dc_context *ctx)
+{
+	uint32_t value = REG_READ(CC_DC_PIPE_DIS);
+	/* DCN32 support max 4 pipes */
+	value = value & 0xf;
+	return value;
+}
+
 
 static bool dcn32_resource_construct(
 	uint8_t num_virtual_links,
@@ -2119,7 +2127,7 @@ static bool dcn32_resource_construct(
 	pool->base.res_cap = &res_cap_dcn32;
 	/* max number of pipes for ASIC before checking for pipe fuses */
 	num_pipes  = pool->base.res_cap->num_timing_generator;
-	pipe_fuses = REG_READ(CC_DC_PIPE_DIS);
+	pipe_fuses = read_pipe_fuses(ctx);
 
 	for (i = 0; i < pool->base.res_cap->num_timing_generator; i++)
 		if (pipe_fuses & 1 << i)
drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c +9 -1
index 55f918b44077..1a805dcdf534 100644
@@ -1626,6 +1626,14 @@ static struct resource_funcs dcn321_res_pool_funcs = {
 	.restore_mall_state = dcn32_restore_mall_state,
 };
 
+static uint32_t read_pipe_fuses(struct dc_context *ctx)
+{
+	uint32_t value = REG_READ(CC_DC_PIPE_DIS);
+	/* DCN321 support max 4 pipes */
+	value = value & 0xf;
+	return value;
+}
+
 
 static bool dcn321_resource_construct(
 	uint8_t num_virtual_links,
@@ -1668,7 +1676,7 @@ static bool dcn321_resource_construct(
 	pool->base.res_cap = &res_cap_dcn321;
 	/* max number of pipes for ASIC before checking for pipe fuses */
 	num_pipes  = pool->base.res_cap->num_timing_generator;
-	pipe_fuses = REG_READ(CC_DC_PIPE_DIS);
+	pipe_fuses = read_pipe_fuses(ctx);
 
 	for (i = 0; i < pool->base.res_cap->num_timing_generator; i++)
 		if (pipe_fuses & 1 << i)
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c +2 -1
index d3ba65efe1d2..f3cfc144e358 100644
@@ -973,7 +973,8 @@ static enum dcn_zstate_support_state  decide_zstate_support(struct dc *dc, struc
 	else if (context->stream_count == 1 &&  context->streams[0]->signal == SIGNAL_TYPE_EDP) {
 		struct dc_link *link = context->streams[0]->sink->link;
 		struct dc_stream_status *stream_status = &context->stream_status[0];
-		bool allow_z8 = context->bw_ctx.dml.vba.StutterPeriod > 1000.0;
+		int minmum_z8_residency = dc->debug.minimum_z8_residency_time > 0 ? dc->debug.minimum_z8_residency_time : 1000;
+		bool allow_z8 = context->bw_ctx.dml.vba.StutterPeriod > (double)minmum_z8_residency;
 		bool is_pwrseq0 = link->link_index == 0;
 
 		if (dc_extended_blank_supported(dc)) {
drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c +17 -1
index 4fa636364793..fdfb19337ea6 100644
@@ -368,7 +368,9 @@ void dcn30_fpu_update_soc_for_wm_a(struct dc *dc, struct dc_state *context)
 	dc_assert_fp_enabled();
 
 	if (dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].valid) {
-		context->bw_ctx.dml.soc.dram_clock_change_latency_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.pstate_latency_us;
+		if (!context->bw_ctx.bw.dcn.clk.fw_based_mclk_switching ||
+				context->bw_ctx.dml.soc.dram_clock_change_latency_us == 0)
+			context->bw_ctx.dml.soc.dram_clock_change_latency_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.pstate_latency_us;
 		context->bw_ctx.dml.soc.sr_enter_plus_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.sr_enter_plus_exit_time_us;
 		context->bw_ctx.dml.soc.sr_exit_time_us = dc->clk_mgr->bw_params->wm_table.nv_entries[WM_A].dml_input.sr_exit_time_us;
 	}
@@ -520,6 +522,20 @@ void dcn30_fpu_calculate_wm_and_dlg(
 		pipe_idx++;
 	}
 
+	// WA: restrict FPO to use first non-strobe mode (NV24 BW issue)
+	if (context->bw_ctx.bw.dcn.clk.fw_based_mclk_switching &&
+			dc->dml.soc.num_chans <= 4 &&
+			context->bw_ctx.dml.vba.DRAMSpeed <= 1700 &&
+			context->bw_ctx.dml.vba.DRAMSpeed >= 1500) {
+
+		for (i = 0; i < dc->dml.soc.num_states; i++) {
+			if (dc->dml.soc.clock_limits[i].dram_speed_mts > 1700) {
+				context->bw_ctx.dml.vba.DRAMSpeed = dc->dml.soc.clock_limits[i].dram_speed_mts;
+				break;
+			}
+		}
+	}
+
 	dcn20_calculate_dlg_params(dc, context, pipes, pipe_cnt, vlevel);
 
 	if (!pstate_en)
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +0 -1
index c3d75e56410c..899105da0433 100644
@@ -25,7 +25,6 @@
 
 #ifdef CONFIG_DRM_AMD_DC_DCN
 #include "dc.h"
-#include "dc_link.h"
 #include "../display_mode_lib.h"
 #include "display_mode_vba_30.h"
 #include "../dml_inline_defs.h"
drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c +0 -1
index 27f488405335..2b57f5b2362a 100644
@@ -24,7 +24,6 @@
  */
 
 #include "dc.h"
-#include "dc_link.h"
 #include "../display_mode_lib.h"
 #include "../dcn30/display_mode_vba_30.h"
 #include "display_mode_vba_31.h"
drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c +2 -2
index acda3e1babd4..3bbc46a67335 100644
@@ -149,8 +149,8 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_14_soc = {
 	.num_states = 5,
 	.sr_exit_time_us = 16.5,
 	.sr_enter_plus_exit_time_us = 18.5,
-	.sr_exit_z8_time_us = 210.0,
-	.sr_enter_plus_exit_z8_time_us = 310.0,
+	.sr_exit_z8_time_us = 268.0,
+	.sr_enter_plus_exit_z8_time_us = 393.0,
 	.writeback_latency_us = 12.0,
 	.dram_channel_width_bytes = 4,
 	.round_trip_ping_latency_dcfclk_cycles = 106,
drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c +0 -1
index c843b394aeb4..461ab6d2030e 100644
@@ -27,7 +27,6 @@
 #define UNIT_TEST 0
 #if !UNIT_TEST
 #include "dc.h"
-#include "dc_link.h"
 #endif
 #include "../display_mode_lib.h"
 #include "display_mode_vba_314.h"
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c +3 -3
index 3b2a014ccf8f..02d99b6bfe5e 100644
@@ -24,7 +24,6 @@
  */
 
 #include "dc.h"
-#include "dc_link.h"
 #include "../display_mode_lib.h"
 #include "display_mode_vba_32.h"
 #include "../dml_inline_defs.h"
@@ -810,7 +809,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman
 					v->SwathHeightY[k],
 					v->SwathHeightC[k],
 					TWait,
-					v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ?
+					(v->DRAMSpeedPerState[mode_lib->vba.VoltageLevel] <= MEM_STROBE_FREQ_MHZ ||
+						v->DCFCLKPerState[mode_lib->vba.VoltageLevel] <= MIN_DCFCLK_FREQ_MHZ) ?
 							mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
 					/* Output */
 					&v->DSTXAfterScaler[k],
@@ -3309,7 +3309,7 @@ void dml32_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l
 							v->swath_width_chroma_ub_this_state[k],
 							v->SwathHeightYThisState[k],
 							v->SwathHeightCThisState[k], v->TWait,
-							v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ ?
+							(v->DRAMSpeedPerState[i] <= MEM_STROBE_FREQ_MHZ || v->DCFCLKState[i][j] <= MIN_DCFCLK_FREQ_MHZ) ?
 									mode_lib->vba.ip.min_prefetch_in_strobe_us : 0,
 
 							/* Output */
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.h +1 -0
index 500b3dd6052d..d98e36a9a09c 100644
@@ -53,6 +53,7 @@
 #define BPP_BLENDED_PIPE 0xffffffff
 
 #define MEM_STROBE_FREQ_MHZ 1600
+#define MIN_DCFCLK_FREQ_MHZ 200
 #define MEM_STROBE_MAX_DELIVERY_TIME_US 60.0
 
 struct display_mode_lib;
drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c +12 -12
index b80cef70fa60..383a409a3f54 100644
@@ -106,16 +106,16 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_21_soc = {
 	.clock_limits = {
 		{
 			.state = 0,
-			.dcfclk_mhz = 1564.0,
-			.fabricclk_mhz = 400.0,
-			.dispclk_mhz = 2150.0,
-			.dppclk_mhz = 2150.0,
+			.dcfclk_mhz = 1434.0,
+			.fabricclk_mhz = 2250.0,
+			.dispclk_mhz = 1720.0,
+			.dppclk_mhz = 1720.0,
 			.phyclk_mhz = 810.0,
 			.phyclk_d18_mhz = 667.0,
-			.phyclk_d32_mhz = 625.0,
+			.phyclk_d32_mhz = 313.0,
 			.socclk_mhz = 1200.0,
-			.dscclk_mhz = 716.667,
-			.dram_speed_mts = 1600.0,
+			.dscclk_mhz = 573.333,
+			.dram_speed_mts = 16000.0,
 			.dtbclk_mhz = 1564.0,
 		},
 	},
@@ -125,14 +125,14 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_21_soc = {
 	.sr_exit_z8_time_us = 285.0,
 	.sr_enter_plus_exit_z8_time_us = 320,
 	.writeback_latency_us = 12.0,
-	.round_trip_ping_latency_dcfclk_cycles = 263,
+	.round_trip_ping_latency_dcfclk_cycles = 207,
 	.urgent_latency_pixel_data_only_us = 4,
 	.urgent_latency_pixel_mixed_with_vm_data_us = 4,
 	.urgent_latency_vm_data_only_us = 4,
-	.fclk_change_latency_us = 20,
-	.usr_retraining_latency_us = 2,
-	.smn_latency_us = 2,
-	.mall_allocated_for_dcn_mbytes = 64,
+	.fclk_change_latency_us = 7,
+	.usr_retraining_latency_us = 0,
+	.smn_latency_us = 0,
+	.mall_allocated_for_dcn_mbytes = 32,
 	.urgent_out_of_order_return_per_channel_pixel_only_bytes = 4096,
 	.urgent_out_of_order_return_per_channel_pixel_and_vm_bytes = 4096,
 	.urgent_out_of_order_return_per_channel_vm_only_bytes = 4096,
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h +14 -11
index ce006762f257..ad6acd1b34e1 100644
@@ -148,18 +148,21 @@ struct dccg_funcs {
 		struct dccg *dccg,
 		int inst);
 
-void (*set_pixel_rate_div)(
-        struct dccg *dccg,
-        uint32_t otg_inst,
-        enum pixel_rate_div k1,
-        enum pixel_rate_div k2);
-
-void (*set_valid_pixel_rate)(
-        struct dccg *dccg,
-	int ref_dtbclk_khz,
-        int otg_inst,
-        int pixclk_khz);
+	void (*set_pixel_rate_div)(struct dccg *dccg,
+			uint32_t otg_inst,
+			enum pixel_rate_div k1,
+			enum pixel_rate_div k2);
 
+	void (*set_valid_pixel_rate)(
+			struct dccg *dccg,
+			int ref_dtbclk_khz,
+			int otg_inst,
+			int pixclk_khz);
+
+	void (*dpp_root_clock_control)(
+			struct dccg *dccg,
+			unsigned int dpp_inst,
+			bool clock_on);
 };
 
 #endif //__DAL_DCCG_H__
drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h +0 -14
index a819f0f97c5f..b95ae9596c3b 100644
@@ -275,20 +275,6 @@ enum dc_lut_mode {
 	LUT_RAM_B
 };
 
-enum symclk_state {
-	SYMCLK_OFF_TX_OFF,
-	SYMCLK_ON_TX_ON,
-	SYMCLK_ON_TX_OFF,
-};
-
-struct phy_state {
-	struct {
-		uint8_t otg		: 1;
-		uint8_t reserved	: 7;
-	} symclk_ref_cnts;
-	enum symclk_state symclk_state;
-};
-
 /**
  * speakersToChannels
  *
drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h +0 -52

58 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h +0 -1
index bb5ad70d4266..c4fbbf08ef86 100644
@@ -30,7 +30,6 @@
 
 #include "audio_types.h"
[… more lines in the raw message]

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

drivers/gpu/drm/amd/display/dc/inc/hw_sequencer_private.h +4 -0
index a4d61bb724b6..39bd53b79020 100644

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

drivers/gpu/drm/amd/display/dc/inc/link.h +0 -1
index e70fa0059223..6a346a41f07b 100644

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

drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c +0 -17
index 942300e0bd92..7f36d733bfca 100644

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

drivers/gpu/drm/amd/display/dc/link/link_detection.c +99 -0

99 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/link/link_factory.c +7 -2
index aeb26a4d539e..8aaf14afa427 100644

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

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c +0 -1
index 32f48a48e9dd..cbfa9343ffaf 100644

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

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c +0 -1
index f69e681b3b5b..1ecf1d857359 100644

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

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c +0 -1
index e60da0532c53..4ded5f9cdecc 100644

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

drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c +2 -1
index a76da0131add..9c20516be066 100644

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

drivers/gpu/drm/amd/display/include/link_service_types.h +0 -26
index 18b9173d5a96..cd870af5fd25 100644

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

drivers/gpu/drm/amd/pm/amdgpu_dpm.c +18 -7
index 6e79d3352d0b..bdacc0a7b61d 100644

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

drivers/gpu/drm/bridge/lontium-lt8912b.c +0 -1
index b40baced1331..13c131ade268 100644

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

drivers/gpu/drm/i915/display/icl_dsi.c +1 -1
index fc0eaf40dc94..6dd942522021 100644

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

drivers/gpu/drm/i915/display/intel_dsi_vbt.c +0 -11
index 2cbc1292ab38..f102c13cb959 100644

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

drivers/gpu/drm/i915/display/intel_dsi_vbt.h +0 -1
index dc642c1fe7ef..468d873fab1a 100644

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

drivers/gpu/drm/i915/display/skl_scaler.c +17 -0
index 473d53610b92..0e7e014fcc71 100644

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

drivers/gpu/drm/i915/display/vlv_dsi.c +5 -17
index 2289f6b1b4eb..37efeab52581 100644

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

drivers/gpu/drm/i915/gt/intel_gt_regs.h +4 -0
index be0f6e305c88..e54891b0e2f4 100644

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

drivers/gpu/drm/i915/gt/intel_workarounds.c +33 -0
index 485c5cc5d0f9..14f92a808285 100644

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

drivers/gpu/drm/i915/gt/uc/intel_uc.c +18 -24

42 lines not on this page · raw message

drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c +65 -67

132 lines not on this page · raw message

drivers/gpu/drm/i915/i915_pci.c +2 -0
index a8d942b16223..125f7ef1252c 100644

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

drivers/gpu/drm/i915/i915_reg.h +2 -2
index 747b53b567a0..1f9382c6c81c 100644

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

drivers/gpu/drm/i915/i915_reg_defs.h +29 -0
index be43580a6979..983c5aa3045b 100644

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

drivers/gpu/drm/msm/adreno/adreno_device.c +12 -4
index cd009d56d35d..ed1e0c650bb1 100644

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

drivers/gpu/drm/msm/msm_drv.c +40 -12

52 lines not on this page · raw message

drivers/gpu/drm/panel/panel-orisetech-otm8009a.c +1 -1
index b4729a94c34a..898b892f1143 100644

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

drivers/hid/wacom_wac.c +36 -2
index 9312d611db8e..0c6a82c665c1 100644

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

drivers/hid/wacom_wac.h +1 -0
index 16f221388563..1a40bb8c5810 100644

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

drivers/i2c/busses/i2c-gxp.c +0 -2
index d4b55d989a26..8ea3fb5e4c7f 100644

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

drivers/i2c/busses/i2c-tegra.c +27 -13
index 6aab84c8d22b..157066f06a32 100644

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

drivers/infiniband/sw/rxe/rxe.c +5 -3
index a3f05fdd9fac..7a7e713de52d 100644

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

drivers/infiniband/sw/rxe/rxe.h +44 -1

45 lines not on this page · raw message

drivers/infiniband/sw/rxe/rxe_cq.c +3 -3
index faf49c50bbab..519ddec29b4b 100644

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

drivers/infiniband/sw/rxe/rxe_icrc.c +2 -2
index 71bc2c189588..fdf5f08cd8f1 100644

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

drivers/infiniband/sw/rxe/rxe_mmap.c +3 -3
index a47d72dbc537..6b7f2bd69879 100644

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

drivers/infiniband/sw/rxe/rxe_net.c +2 -2
index e02e1624bcf4..a2ace42e9536 100644

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

drivers/infiniband/sw/rxe/rxe_qp.c +8 -8
index 13283ec06f95..d5de5ba6940f 100644

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

drivers/infiniband/sw/rxe/rxe_srq.c +3 -3
index 82e37a41ced4..27ca82ec0826 100644

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

drivers/infiniband/sw/rxe/rxe_verbs.c +1 -1
index 6803ac76ae57..a40a6d058150 100644

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

drivers/irqchip/irq-loongson-eiointc.c +22 -10
index d15fd38c1756..90181c42840b 100644

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

drivers/irqchip/irq-loongson-pch-pic.c +5 -1
index 437f1af693d0..e5fe4d50be05 100644

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

drivers/mtd/spi-nor/core.c +6 -0
index 71ea5b2e1014..bcc181c425de 100644

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

drivers/mtd/spi-nor/core.h +4 -0
index e0cc42a4a0c8..6eece1754ec0 100644

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

drivers/mtd/spi-nor/debugfs.c +2 -0
index fc7ad203df12..e11536fffe0f 100644

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

drivers/mtd/spi-nor/spansion.c +14 -6
index 12a256c0ef4c..27a3634762ad 100644

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

drivers/net/dsa/mt7530.c +64 -49

113 lines not on this page · raw message

drivers/net/dsa/mv88e6xxx/chip.c +1 -0
index 7108f745fbf0..902f40721340 100644

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

drivers/net/ethernet/freescale/enetc/enetc_qos.c +1 -1
index 130ebf6853e6..83c27bbbc6ed 100644

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

drivers/net/ethernet/freescale/fec_main.c +9 -4
index 160c1b3525f5..42ec6ca3bf03 100644

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

drivers/net/ethernet/intel/ice/ice_tc_lib.c +2 -1
index 76f29a5bf8d7..d1a31f236d26 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +0 -3
index f8156fe4b1dc..0ee943db3dc9 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +4 -2
index 773c35fecace..d7c247e46dfc 100644

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

drivers/net/ethernet/marvell/octeontx2/af/cgx.c +8 -0
index 724df6398bbe..bd77152bb8d7 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mbox.c +4 -1
index 2898931d5260..9690ac01f02c 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mbox.h +13 -6
index 5727d67e0259..26636a4d7dcc 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mcs.c +54 -56

110 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/mcs.h +12 -14
index 64dc2b80e15d..0f89dcb76465 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mcs_cnf10kb.c +63 -0

63 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h +5 -1
index c95a8b8f5eaf..f3ab01fc363c 100644

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

drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c +37 -0
index eb25e458266c..dfd23580e3b8 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +40 -9

49 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu.h +1 -0
index ef721caeac49..d655bf04a483 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c +2 -0
index 438b212fb54a..83b342fa8d75 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c +8 -5
index 4ad9ff025c96..0e74c5a2231e 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +3 -2
index 26cfa501f1a1..9533b1d92960 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +17 -9
index 006beb5cf98d..952319453701 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h +4 -0
index bdd65ce56a32..3f5c9042d10e 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c +71 -54

125 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h +8 -2
index 3efeb09c58de..a1c3d987b804 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c +35 -13

48 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +3 -3
index 3d22cc6a2804..0c8fc66ade82 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +11 -3
index 179433d0a54a..18284ad75157 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +1 -1
index 044cc211424e..8392f63e433f 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +1 -1
index ab126f8706c7..53366dbfbf27 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +40 -66

106 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.h +0 -1
index 084a6badef6d..ac57dc87c59a 100644

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

drivers/net/ethernet/pensando/ionic/ionic_devlink.c +2 -0
index e6ff757895ab..4ec66a6be073 100644

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

drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +1 -1
index cf33503468a3..9b2b96fa36af 100644

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

drivers/net/ethernet/sfc/mcdi_port_common.c +7 -4
index 899cc1671004..0ab14f3d01d4 100644

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

drivers/net/usb/r8152.c +59 -26

85 lines not on this page · raw message

drivers/net/virtio_net.c +2 -0
index ea1bd4bb326d..744bdc8a1abd 100644

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

drivers/platform/x86/hp/hp-wmi.c +1 -0
index 873f59c3e280..6364ae262705 100644

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

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c +5 -1
index cb24de9e97dc..fa8f14c925ec 100644

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

drivers/platform/x86/thinkpad_acpi.c +19 -5
index 7191ff2625b1..e40cbe81b12c 100644

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

drivers/platform/x86/touchscreen_dmi.c +41 -0

41 lines not on this page · raw message

drivers/remoteproc/imx_dsp_rproc.c +9 -3
index 95da1cbefacf..506ec9565716 100644

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

drivers/remoteproc/imx_rproc.c +5 -2
index 9fc978e0393c..0ab840dc7e97 100644

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

drivers/remoteproc/rcar_rproc.c +7 -2
index aa86154109c7..1ff2a73ade90 100644

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

drivers/remoteproc/st_remoteproc.c +4 -1
index a3268d95a50e..e6bd3c7a950a 100644

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

drivers/remoteproc/stm32_rproc.c +5 -1
index 7d782ed9e589..23c1690b8d73 100644

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

drivers/scsi/qedi/qedi_main.c +3 -0
index f2ee49756df8..45d359554182 100644

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

drivers/soc/qcom/llcc-qcom.c +12 -3
index 26efe12012a0..d4d3eced52f3 100644

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

drivers/spi/spi-fsl-cpm.c +23 -0
index 17a44d4f5021..38452089e8f3 100644

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

drivers/spi/spi-fsl-spi.c +24 -25

49 lines not on this page · raw message

drivers/ufs/core/ufs-mcq.c +3 -3
index 31df052fbc41..202ff71e1b58 100644

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

drivers/usb/dwc3/gadget.c +18 -41

59 lines not on this page · raw message

drivers/watchdog/dw_wdt.c +5 -2
index 462f15bd5ffa..8e2ac522c945 100644

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

fs/afs/afs.h +2 -2
index 432cb4b23961..81815724db6c 100644

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

fs/afs/internal.h +1 -1
index ad8523d0d038..68ae91d21b57 100644

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

fs/afs/rxrpc.c +3 -5
index 7817e2b860e5..6862e3dde364 100644

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

fs/btrfs/backref.c +10 -9
index e54f0884802a..79336fa853db 100644

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

fs/btrfs/backref.h +6 -0
index ef6bbea3f456..1616e3e3f1e4 100644

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

fs/btrfs/block-rsv.c +2 -1
index 5367a14d44d2..4bb4a4875872 100644

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

fs/btrfs/ctree.c +31 -1
index a5b6bb54545f..26bb10b6ca85 100644

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

fs/btrfs/disk-io.c +18 -7
index 9e1596bb208d..9892dae178b7 100644

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

fs/btrfs/file-item.c +3 -2
index 41c77a100853..a4584c629ba3 100644

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

fs/btrfs/free-space-cache.c +4 -3
index d84cef89cdff..cf98a3c05480 100644

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

fs/btrfs/free-space-tree.c +49 -1

50 lines not on this page · raw message

fs/btrfs/free-space-tree.h +2 -1
index dc2463e4cfe3..6d5551d0ced8 100644

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

fs/btrfs/inode.c +3 -0
index 957e4d76a7b6..b31bb3352477 100644

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

fs/btrfs/ioctl.c +3 -1
index 25833b4eeaf5..2fa36f694daa 100644

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

fs/btrfs/print-tree.c +3 -3
index b93c96213304..497b9dbd8a13 100644

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

fs/btrfs/relocation.c +1 -1
index ef13a9d4e370..c10670915f96 100644

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

fs/btrfs/super.c +5 -1
index 366fb4cde145..e19792d919c6 100644

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

fs/btrfs/zoned.c +8 -9
index 45d04092f2f8..8db47f93007f 100644

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

fs/cifs/cifsfs.c +16 -0
index ac9034fce409..b30f8f768ac4 100644

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

fs/cifs/connect.c +7 -0
index 2c573062ec87..59a10330e299 100644

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

fs/cifs/smb2ops.c +1 -1
index a81758225fcd..a295e4c2d54e 100644

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

fs/ext4/balloc.c +25 -0
index 8ff4b9192a9f..f2c415f31b75 100644

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

fs/ext4/ext4.h +24 -0
index 08b29c289da4..df0255b7d1fa 100644

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

fs/ext4/extents_status.c +13 -17
index 7bc221038c6c..595abb9e7d74 100644

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

fs/ext4/hash.c +5 -1
index 147b5241dd94..46c3423ddfa1 100644

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

fs/ext4/inline.c +14 -3
index 1602d74b5eeb..cb36037f20fc 100644

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

fs/ext4/inode.c +11 -9
index 41ba1c432844..145ea24d589b 100644

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

fs/ext4/mballoc.c +5 -1
index 5b2ae37a8b80..5639a4cf7ff9 100644

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

fs/ext4/migrate.c +6 -5
index a19a9661646e..d98ac2af8199 100644

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

fs/ext4/mmp.c +21 -9
index 4681fff6665f..46735ce315b5 100644

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

fs/ext4/namei.c +37 -16

53 lines not on this page · raw message

fs/ext4/super.c +12 -7
index f43e526112ae..d6ac61f43ac3 100644

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

fs/ext4/xattr.c +3 -2
index 767454d74cd6..e33a323faf3c 100644

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

fs/f2fs/extent_cache.c +71 -170

241 lines not on this page · raw message

fs/f2fs/f2fs.h +1 -37
index 620343c65ab6..d6f9d6e0f13b 100644

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

fs/f2fs/gc.c +85 -54

139 lines not on this page · raw message

fs/f2fs/gc.h +2 -12
index 15bd1d680f67..5ad6ac63e13f 100644

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

fs/f2fs/namei.c +15 -1
index 11fc4c8036a9..f97073c75d67 100644

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

fs/f2fs/segment.c +166 -85

251 lines not on this page · raw message

fs/fs-writeback.c +1 -1
index 1db3e3c24b43..ae4e51e91ee3 100644

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

fs/notify/inotify/inotify_fsnotify.c +9 -2
index 49cfe2ae6d23..993375f0db67 100644

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

fs/ntfs3/bitmap.c +2 -1
index 723fb64e6531..393c726ef17a 100644

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

fs/ntfs3/frecord.c +1 -1
index f1df52dfab74..7d0473da12c3 100644

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

fs/ntfs3/fsntfs.c +4 -2
index 567563771bf8..24c9aeb5a49e 100644

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

fs/ntfs3/namei.c +10 -0
index 407fe92394e2..92bbc8ee83ca 100644

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

fs/ntfs3/ntfs.h +0 -3
index 86ea1826d099..90151e56c122 100644

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

fs/proc/proc_sysctl.c +31 -11

42 lines not on this page · raw message

include/drm/display/drm_dp.h +0 -1
index 632376c291db..4545ed610958 100644

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

include/drm/display/drm_dp_helper.h +2 -3
index ab55453f2d2c..ade9df59e156 100644

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

include/linux/i2c.h +2 -2
index 5ba89663ea86..13a1ce38cb0c 100644

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

include/linux/pci_ids.h +1 -0
index 45c3d62e616d..95f33dadb2be 100644

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

include/net/af_rxrpc.h +11 -10
index ba717eac0229..73644bd42a3f 100644

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

include/net/netfilter/nf_tables.h +6 -0
index 9dace9bcba8e..3eb7d20ddfc9 100644

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

kernel/locking/rwsem.c +4 -4
index acb5a50309a1..9eabd585ce7a 100644

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

net/core/skbuff.c +14 -6
index 2f9bb98170ab..14bb41aafee3 100644

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

net/ethtool/ioctl.c +1 -1
index 646b3e490c71..f0c646a17700 100644

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

net/ipv6/sit.c +5 -3
index 70d81bba5093..3ffb6a5b1f82 100644

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

net/ipv6/tcp_ipv6.c +1 -1
index 1e747241c771..4d52e25deb9e 100644

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

net/ncsi/ncsi-aen.c +1 -0
index b635c194f0a8..62fb1031763d 100644

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

net/netfilter/nf_tables_api.c +176 -106

282 lines not on this page · raw message

net/netfilter/nft_ct_fast.c +10 -4
index 89983b0613fa..e684c8a91848 100644

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

net/packet/af_packet.c +1 -1
index ecd9fc27e360..b8c62d88567b 100644

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

net/rxrpc/af_rxrpc.c +3 -0
index 102f5cbff91a..a6f0d29f35ef 100644

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

net/rxrpc/ar-internal.h +1 -0
index 67b0a894162d..5d44dc08f66d 100644

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

net/rxrpc/call_object.c +8 -1
index e9f1f49d18c2..fecbc73054bc 100644

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

net/rxrpc/sendmsg.c +11 -11
index da49fcf1c456..8e0b94714e84 100644

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

net/sched/act_mirred.c +1 -1
index 8037ec9b1d31..a61482c5edbe 100644

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

net/sched/cls_api.c +1 -0
index 3c3629c9e7b6..2621550bfddc 100644

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

net/sched/cls_flower.c +5 -4
index 475fe222a855..a1c4ee2e0be2 100644

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

sound/soc/intel/common/soc-acpi-intel-byt-match.c +1 -1
index db5a92b9875a..87c44f284971 100644

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

sound/usb/caiaq/input.c +1 -0
index 1e2cf2f08eec..84f26dce7f5d 100644

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

tools/perf/Build +1 -1
index 6dd67e502295..aa7623622834 100644

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

tools/perf/Makefile.perf +5 -2
index bac9272682b7..2fcee585b225 100644

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

tools/perf/builtin-ftrace.c +4 -2
index d7fe00f66b83..fb1b66ef2e16 100644

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

tools/perf/builtin-record.c +1 -1
index 8374117e66f6..be7c0c29d15b 100644

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

tools/perf/builtin-script.c +1 -1
index a792214d1af8..6f085602b7bd 100644

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

tools/perf/builtin-stat.c +2 -2
index fa7c40956d0f..eeba93ae3b58 100644

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

tools/perf/pmu-events/arch/powerpc/power9/other.json +2 -2
index 3f69422c21f9..f10bd554521a 100644

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

tools/perf/pmu-events/arch/powerpc/power9/pipeline.json +1 -1
index d0265f255de2..723bffa41c44 100644

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

tools/perf/pmu-events/arch/s390/cf_z16/extended.json +5 -5
index c306190fc06f..c2b10ec1c6e0 100644

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

tools/perf/pmu-events/empty-pmu-events.c +3 -3
index a938b74cf487..e74defb5284f 100644

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

tools/perf/scripts/Build +3 -1
index 68d4b54574ad..7d8e2e57faac 100644

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

tools/perf/scripts/python/Perf-Trace-Util/Build +1 -1
index d5fed4e42617..7d0e33ce6aba 100644

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

tools/perf/scripts/python/Perf-Trace-Util/Context.c +4 -0
index 895f5fc23965..b0d449f41650 100644

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

tools/perf/scripts/python/intel-pt-events.py +1 -1
index 08862a2582f4..1c76368f13c1 100644

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

tools/perf/tests/attr/base-record +1 -1
index 3ef07a12aa14..27c21271a16c 100644

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

tools/perf/tests/attr/base-stat +1 -1
index 408164456530..a21fb65bc012 100644

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

tools/perf/tests/attr/system-wide-dummy +1 -1
index 8fec06eda5f9..2f3e3eb728eb 100644

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

tools/perf/tests/make +3 -2
index 009d6efb673c..deb37fb982e9 100644

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

tools/perf/tests/shell/record_offcpu.sh +1 -1
index e01973d4e0fb..f062ae9a95e1 100755

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

tools/perf/util/Build +1 -1
index 918b501f9bd8..4868e3bf7df9 100644

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

tools/perf/util/bpf_skel/lock_contention.bpf.c +7 -1
index e6007eaeda1a..141b36d13b19 100644

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

tools/perf/util/cs-etm.c +18 -12
index f65bac5ddbdb..e43bc9eea308 100644

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

tools/perf/util/evsel.h +5 -0
index 24cb807ef6ce..1a7358b46ad4 100644

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

tools/perf/util/pmu.c +1 -1
index c256b29defad..d64d7b43f806 100644

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

tools/perf/util/scripting-engines/Build +1 -1
index 2c96aa3cc1ec..c220fec97032 100644

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

tools/perf/util/scripting-engines/trace-event-python.c +53 -22

75 lines not on this page · raw message

tools/perf/util/sort.c +2 -8
index 093a0c8b2e3d..2770105823bf 100644

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

tools/perf/util/symbol-elf.c +9 -3
index 41882ae8452e..cfb4109a3709 100644

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

tools/perf/util/trace-event-scripting.c +7 -2
index 56175c53f9af..bd0000300c77 100644

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

tools/perf/util/tracepoint.c +1 -0
index 89ef56c43311..92dd8b455b90 100644

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

tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh +5 -5
index aebaab8ce44c..441eededa031 100755

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

tools/testing/selftests/netfilter/Makefile +5 -2
index 4504ee07be08..3686bfa6c58d 100644

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

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

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