Linux 6.3.3
Greg Kroah-Hartman
maintainerI'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
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/perf/riscv,pmu.yaml +0 -1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -67,7 +67,3 @@ } while (0)#define abort () return 0 - -#define __BYTE_ORDER __LITTLE_ENDIAN - -
arch/x86/events/core.c +2 -4
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -686,9 +686,11 @@ int amdgpu_gfx_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *rif (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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -724,7 +724,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __usfor (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
@@ -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
@@ -104,7 +104,7 @@ void clk_mgr_exit_optimized_pwr_state(const struct dc *dc, struct clk_mgr *clk_mint 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -973,7 +973,8 @@ static enum dcn_zstate_support_state decide_zstate_support(struct dc *dc, strucelse 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.0struct display_mode_lib ;
drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c +12 -12
@@ -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
@@ -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
@@ -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
@@ -30,7 +30,6 @@#include "audio_types.h"
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer_private.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/link.h +0 -1
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
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
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
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
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
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/include/link_service_types.h +0 -26
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/lontium-lt8912b.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsi_vbt.c +0 -11
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsi_vbt.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/skl_scaler.c +17 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/vlv_dsi.c +5 -17
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_gt_regs.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_workarounds.c +33 -0
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/msm/adreno/adreno_device.c +12 -4
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
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/irqchip/irq-loongson-eiointc.c +22 -10
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/ethernet/freescale/enetc/enetc_qos.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +9 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_tc_lib.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/cgx.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mbox.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mbox.h +13 -6
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
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c +37 -0
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c +8 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +17 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h +4 -0
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
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +11 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +1 -1
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_devlink.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sfc/mcdi_port_common.c +7 -4
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/platform/x86/intel/uncore-frequency/uncore-frequency-common.c +5 -1
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/spi/spi-fsl-spi.c +24 -25
49 lines not on this page · raw message
drivers/usb/dwc3/gadget.c +18 -41
59 lines not on this page · raw message
fs/btrfs/free-space-tree.c +49 -1
50 lines not on this page · raw message
fs/ext4/namei.c +37 -16
53 lines not on this page · raw message
fs/f2fs/extent_cache.c +71 -170
241 lines not on this page · raw message
fs/f2fs/gc.c +85 -54
139 lines not on this page · raw message
fs/f2fs/segment.c +166 -85
251 lines not on this page · raw message
fs/proc/proc_sysctl.c +31 -11
42 lines not on this page · raw message
net/netfilter/nf_tables_api.c +176 -106
282 lines not on this page · raw message
sound/soc/intel/common/soc-acpi-intel-byt-match.c +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/powerpc/power9/other.json +2 -2
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/powerpc/power9/pipeline.json +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/s390/cf_z16/extended.json +5 -5
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/empty-pmu-events.c +3 -3
Lines of this file are not shown. View the raw message.
tools/perf/scripts/python/Perf-Trace-Util/Build +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/scripts/python/Perf-Trace-Util/Context.c +4 -0
Lines of this file are not shown. View the raw message.
tools/perf/scripts/python/intel-pt-events.py +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/tests/attr/system-wide-dummy +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/tests/shell/record_offcpu.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/perf/util/bpf_skel/lock_contention.bpf.c +7 -1
Lines of this file are not shown. View the raw message.
tools/perf/util/scripting-engines/Build +1 -1
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/trace-event-scripting.c +7 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh +5 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/netfilter/Makefile +5 -2
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.