Linux 6.1.7
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.7 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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/display/msm/dsi-controller-main.yaml | 4 Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml | 1 Documentation/devicetree/bindings/display/msm/dsi-phy-14nm.yaml | 1 Documentation/devicetree/bindings/display/msm/dsi-phy-28nm.yaml | 4 Documentation/gpu/todo.rst | 11 Documentation/sphinx/load_config.py | 6 Documentation/virt/kvm/api.rst | 14 Makefile | 2 arch/arm64/include/asm/atomic_ll_sc.h | 2 arch/arm64/include/asm/atomic_lse.h | 2 arch/arm64/include/asm/kvm_emulate.h | 22 arch/arm64/include/asm/pgtable.h | 6 arch/arm64/kernel/elfcore.c | 61 - arch/arm64/kernel/ptrace.c | 2 arch/arm64/kernel/signal.c | 9 arch/ia64/kernel/elfcore.c | 4 arch/powerpc/include/asm/imc-pmu.h | 2 arch/powerpc/perf/imc-pmu.c | 136 +- arch/s390/include/asm/cpu_mf.h | 31 arch/s390/include/asm/percpu.h | 2 arch/s390/kernel/machine_kexec_file.c | 5 arch/s390/kernel/perf_cpum_sf.c | 101 +- arch/x86/boot/bioscall.S | 4 arch/x86/kernel/cpu/resctrl/monitor.c | 49 - arch/x86/kernel/cpu/resctrl/rdtgroup.c | 12 arch/x86/kvm/cpuid.c | 32 arch/x86/mm/pat/memtype.c | 3 arch/x86/um/elfcore.c | 4 block/blk-merge.c | 4 block/blk-mq.c | 5 drivers/acpi/glue.c | 14 drivers/acpi/scan.c | 7 drivers/acpi/video_detect.c | 4 drivers/block/drbd/drbd_req.c | 2 drivers/block/ps3vram.c | 2 drivers/cpufreq/amd-pstate.c | 1 drivers/edac/edac_device.c | 17 drivers/edac/edac_module.h | 2 drivers/firmware/efi/efi.c | 9 drivers/firmware/efi/runtime-wrappers.c | 1 drivers/firmware/psci/psci.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 drivers/gpu/drm/amd/amdgpu/soc21.c | 11 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 5 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 8 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h | 3 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c | 25 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 4 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h | 8 drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 5 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 3 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 23 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 95 + drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 3 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 18 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h | 3 drivers/gpu/drm/drm_buddy.c | 81 + drivers/gpu/drm/i915/gem/i915_gem_context.c | 24 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 7 drivers/gpu/drm/i915/gt/intel_gt_sysfs.c | 15 drivers/gpu/drm/i915/gt/intel_gt_sysfs.h | 2 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 461 ++++----- drivers/gpu/drm/i915/gt/intel_reset.c | 34 drivers/gpu/drm/i915/i915_vma.c | 2 drivers/gpu/drm/msm/adreno/adreno_gpu.h | 10 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 3 drivers/gpu/drm/msm/dp/dp_aux.c | 4 drivers/gpu/drm/msm/msm_drv.c | 2 drivers/gpu/drm/msm/msm_mdss.c | 6 drivers/gpu/drm/virtio/virtgpu_ioctl.c | 19 drivers/gpu/drm/vmwgfx/Makefile | 2 drivers/gpu/drm/vmwgfx/ttm_object.c | 156 +-- drivers/gpu/drm/vmwgfx/ttm_object.h | 32 drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 38 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c | 62 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 71 + drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 29 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 190 +-- drivers/gpu/drm/vmwgfx/vmwgfx_hashtab.c | 199 ---- drivers/gpu/drm/vmwgfx/vmwgfx_hashtab.h | 83 - drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 33 drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 55 - drivers/gpu/drm/vmwgfx/vmwgfx_validation.h | 26 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 4 drivers/iommu/arm/arm-smmu/arm-smmu.c | 32 drivers/iommu/iova.c | 4 drivers/iommu/mtk_iommu_v1.c | 4 drivers/md/dm.c | 2 drivers/md/md.c | 2 drivers/mtd/parsers/scpart.c | 2 drivers/mtd/spi-nor/core.c | 1 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 2 drivers/net/ethernet/intel/iavf/iavf_main.c | 2 drivers/net/ethernet/intel/ice/ice_gnss.c | 24 drivers/net/ethernet/intel/igc/igc_defines.h | 2 drivers/net/ethernet/intel/igc/igc_ptp.c | 10 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 14 drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 4 drivers/net/ethernet/marvell/octeontx2/af/cgx.h | 1 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 13 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c | 19 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 5 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 2 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 16 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 38 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h | 6 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c | 18 drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 2 drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c | 3 drivers/net/ethernet/realtek/r8169_main.c | 5 drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c | 26 drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 5 drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 5 drivers/nfc/pn533/usb.c | 44 drivers/nvme/host/multipath.c | 2 drivers/pinctrl/pinctrl-amd.c | 10 drivers/platform/surface/aggregator/controller.c | 4 drivers/platform/surface/aggregator/ssh_request_layer.c | 14 drivers/platform/x86/amd/pmc.c | 2 drivers/platform/x86/asus-wmi.c | 3 drivers/platform/x86/dell/dell-wmi-privacy.c | 41 drivers/platform/x86/ideapad-laptop.c | 6 drivers/platform/x86/intel/int3472/clk_and_regulator.c | 3 drivers/platform/x86/intel/int3472/discrete.c | 4 drivers/platform/x86/sony-laptop.c | 21 drivers/platform/x86/thinkpad_acpi.c | 23 drivers/regulator/da9211-regulator.c | 11 drivers/s390/block/dcssblk.c | 2 drivers/scsi/mpi3mr/Makefile | 2 drivers/scsi/storvsc_drv.c | 3 drivers/tty/hvc/hvc_xen.c | 46 drivers/ufs/core/ufshcd.c | 26 fs/binfmt_elf.c | 4 fs/binfmt_elf_fdpic.c | 4 fs/cifs/connect.c | 9 fs/cifs/link.c | 1 fs/cifs/smb1ops.c | 63 - fs/cifs/smb2pdu.c | 5 fs/nfsd/filecache.c | 484 +++++----- fs/nfsd/filecache.h | 9 fs/nfsd/nfs3proc.c | 10 fs/nfsd/nfs4proc.c | 11 fs/nfsd/nfs4state.c | 20 fs/nfsd/trace.h | 129 +- fs/nfsd/vfs.c | 19 fs/nfsd/vfs.h | 3 include/acpi/acpi_bus.h | 3 include/linux/elfcore.h | 8 include/linux/mlx5/driver.h | 2 include/linux/mtd/spi-nor.h | 1 include/linux/tpm_eventlog.h | 4 include/uapi/linux/psci.h | 4 io_uring/fdinfo.c | 12 io_uring/io-wq.c | 6 io_uring/poll.c | 50 - io_uring/rw.c | 6 kernel/sched/core.c | 41 mm/memblock.c | 8 net/core/gro.c | 71 - net/ipv6/raw.c | 4 net/netfilter/ipset/ip_set_bitmap_ip.c | 4 net/netfilter/nft_payload.c | 2 net/sched/act_mpls.c | 8 net/tipc/node.c | 12 sound/core/control_led.c | 5 sound/pci/hda/patch_realtek.c | 53 - sound/soc/codecs/rt9120.c | 12 sound/soc/codecs/wm8904.c | 7 sound/soc/intel/boards/Kconfig | 1 sound/soc/intel/boards/sof_nau8825.c | 22 sound/soc/intel/common/soc-acpi-intel-adl-match.c | 18 sound/soc/qcom/Kconfig | 21 sound/soc/qcom/Makefile | 2 sound/soc/qcom/common.c | 114 -- sound/soc/qcom/common.h | 10 sound/soc/qcom/lpass-cpu.c | 5 sound/soc/qcom/sc8280xp.c | 1 sound/soc/qcom/sdw.c | 123 ++ sound/soc/qcom/sdw.h | 18 sound/soc/qcom/sm8250.c | 1 sound/usb/implicit.c | 3 sound/usb/pcm.c | 16 sound/usb/stream.c | 6 tools/include/nolibc/arch-mips.h | 2 tools/include/nolibc/arch-riscv.h | 14 tools/perf/builtin-kmem.c | 65 + tools/perf/builtin-trace.c | 2 tools/perf/util/auxtrace.c | 2 tools/perf/util/bpf_counter.h | 6 tools/testing/memblock/internal.h | 4 tools/testing/selftests/net/af_unix/test_unix_oob.c | 2 tools/testing/selftests/net/l2_tos_ttl_inherit.sh | 202 ++-- tools/testing/selftests/netfilter/nft_trans_stress.sh | 16 tools/testing/selftests/netfilter/settings | 1 202 files changed, 2656 insertions(+), 2152 deletions(-)
Aaron Thompson (1):
mm: Always release pages to the buddy allocator in memblock_free_late().
Adrian Hunter (1):
perf auxtrace: Fix address filter duplicate symbol selection
Alex Deucher (1):
Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly""
Alexander Egorenkov (1):
s390/kexec: fix ipl report address for kdump
Angela Czubak (1):
octeontx2-af: Fix LMAC config in cgx_lmac_rx_tx_enable
Ao Zhong (1):
drm/amd/display: move remaining FPU code to dml folder
Ard Biesheuvel (1):
efi: tpm: Avoid READ_ONCE() for accessing the event log
Ariel Levkovich (2):
net/mlx5: check attr pointer validity before dereferencing it net/mlx5e: TC, Keep mod hdr actions after mod hdr alloc
Arnd Bergmann (3):
ASoC: Intel: fix sof-nau8825 link failure
ASoC: Intel: sof-nau8825: fix module alias overflow
mtd: cfi: allow building spi-intel standalone
Arunpravin Paneer Selvam (1):
drm: Optimize drm buddy top-down allocation method
Biao Huang (1):
stmmac: dwmac-mediatek: remove the dwmac_fix_mac_speed
Brent Lu (1):
ASoC: Intel: sof_nau8825: support rt1015p speaker amplifier
Brian Norris (1):
ASoC: qcom: lpass-cpu: Fix fallback SD line index handling
Bryan O'Donoghue (4):
dt-bindings: msm: dsi-controller-main: Fix operating-points-v2 constraint
dt-bindings: msm: dsi-controller-main: Fix power-domain constraint
dt-bindings: msm: dsi-controller-main: Fix description of core clock
dt-bindings: msm: dsi-phy-28nm: Add missing qcom, dsi-phy-regulator-ldo-mode
Candice Li (1):
drm/amd/pm: Enable bad memory page/channel recording support for smu v13_0_0
Catalin Marinas (3):
arm64: mte: Fix double-freeing of the temporary tag storage during coredump
arm64: mte: Avoid the racy walk of the vma list during core dump
elfcore: Add a cprm parameter to elf_core_extra_{phdrs,data_size}
ChiYuan Huang (1):
ASoC: rt9120: Make dev PM runtime bind AsoC component PM
Chris Wilson (2):
drm/i915/gt: Reset twice
drm/i915/gt: Cleanup partial engine discovery failures
Christophe JAILLET (1):
iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
Christopher S Hall (1):
igc: Fix PPS delta between two synchronized end-points
Chuck Lever (4):
NFSD: Pass the target nfsd_file to nfsd_commit()
NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
NFSD: Add an nfsd_file_fsync tracepoint
Clément Léger (1):
net: lan966x: check for ptp to be enabled in lan966x_ptp_deinit()
Daniil Tatianin (1):
iavf/iavf_main: actually log ->src mask when talking about it
Ding Hui (1):
efi: fix userspace infinite retry read efivars after EFI runtime services page fault
Dmitry Baryshkov (1):
drm/msm: another fix for the headless Adreno GPU
Dragos Tatulea (3):
net/mlx5e: IPoIB, Block queue count configuration when sub interfaces are present net/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent net/mlx5e: IPoIB, Fix child PKEY interface stats on rx path
Eliav Farber (1):
EDAC/device: Fix period calculation in edac_device_reset_delay_period()
Emanuele Ghidoli (1):
ASoC: wm8904: fix wrong outputs volume after power reactivation
Emeel Hakim (2):
net/mlx5e: Fix macsec ssci attribute handling in offload path
net/mlx5e: Fix macsec possible null dereference when updating MAC security entity (SecY)
Eric Dumazet (1):
gro: take care of DODGY packets
Evan Quan (4):
drm/amd/pm: correct the reference clock for fan speed(rpm) calculation drm/amd/pm: add the missing mapping for PPT feature on SMU13.0.0 and 13.0.7 drm/amd/pm: enable GPO dynamic control support for SMU13.0.0 drm/amd/pm: enable GPO dynamic control support for SMU13.0.7
Ferry Toth (2):
usb: ulpi: defer ulpi_register on ulpi_read_id timeout Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout"
Florian Westphal (1):
selftests: netfilter: fix transaction test script timeout handling
Gavin Li (1):
net/mlx5e: Don't support encap rules with gbp option
Gavrilov Ilia (1):
netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function.
Greg Kroah-Hartman (1):
Linux 6.1.7
Guchun Chen (1):
drm/amd/pm/smu13: BACO is supported when it's in BACO state
Guillaume Nault (3):
selftests/net: l2_tos_ttl_inherit.sh: Set IPv6 addresses with "nodad". selftests/net: l2_tos_ttl_inherit.sh: Run tests in their own netns. selftests/net: l2_tos_ttl_inherit.sh: Ensure environment cleanup on failure.
Hans de Goede (7):
ACPI: Fix selecting wrong ACPI fwnode for the iGPU on some Dell laptops
ACPI: video: Allow selecting NVidia-WMI-EC or Apple GMUX backlight from the cmdline platform/x86: dell-privacy: Only register SW_CAMERA_LENS_COVER if present platform/x86: int3472/discrete: Ensure the clk/power enable pins are in output mode platform/x86: dell-privacy: Fix SW_CAMERA_LENS_COVER reporting platform/x86: ideapad-laptop: Add Legion 5 15ARH05 DMI id to set_fn_lock_led_list[] platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe
Hariprasad Kelam (1):
octeontx2-pf: Fix resource leakage in VF driver unbind
Heiko Carstens (2):
s390/cpum_sf: add READ_ONCE() semantics to compare and swap loops s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple()
Heiner Kallweit (1):
Revert "r8169: disable detection of chip version 36"
Herbert Xu (1):
ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
Ian Rogers (1):
perf build: Properly guard libbpf includes
Ido Schimmel (1):
net/sched: act_mpls: Fix warning during failed attribute validation
Ivan T. Ivanov (1):
brcmfmac: Prefer DT board type over DMI board type
Jakub Kicinski (1):
bnxt: make sure we return pages to the pool
Jaroslav Kysela (3):
ALSA: control-led: use strscpy in set_led_id()
ALSA: usb-audio: Always initialize fixed_rate in snd_usb_find_implicit_fb_sync_format()
ALSA: usb-audio: Fix possible NULL pointer dereference in snd_usb_pcm_has_fixed_rate()
Jeff Layton (4):
nfsd: remove the pages_flushed statistic from filecache
nfsd: reorganize filecache.c
nfsd: rework refcounting in filecache
nfsd: fix handling of cached open files in nfsd4_open codepath
Jens Axboe (6):
io_uring/poll: add hash if ready poll request can't complete inline io_uring/fdinfo: include locked hash table in fdinfo output io_uring/poll: attempt request issue after racy poll wakeup io_uring/io-wq: free worker if task_work creation is canceled io_uring/io-wq: only free worker if it was allocated for creation
block: handle bio_split_to_limits() NULL return
Jiasheng Jiang (1):
ice: Add check for kzalloc
Jie Wang (1):
net: hns3: fix wrong use of rss size during VF rss config
Johan Hovold (1):
efi: fix NULL-deref in init error path
Jonathan Corbet (1):
docs: Fix the docs build with Sphinx 6.0
Juergen Gross (1):
x86/pat: Fix pat_x_mtrr_type() for MTRR disabled case
Kajol Jain (1):
powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
Kenneth Feng (1):
drm/amd/pm: enable mode1 reset on smu_v13_0_10
Konrad Dybcio (3):
drm/msm/adreno: Make adreno quirks not overwrite each other
dt-bindings: msm/dsi: Don't require vdds-supply on 10nm PHY
dt-bindings: msm/dsi: Don't require vcca-supply on 14nm PHY
Kuogee Hsieh (1):
drm/msm/dp: do not complete dp_aux_cmd_fifo_tx() if irq is not for aux transfer
Leo Yan (2):
perf kmem: Support legacy tracepoints
perf kmem: Support field "node" in evsel__process_alloc_event() coping with recent tracepoint restructuring
Liu Shixin (2):
arm64/mm: add pud_user_exec() check in pud_user_accessible_page() arm64/mm: fix incorrect file_map_count for invalid pmd
Luben Tuikov (1):
drm/amdgpu: Fix potential NULL dereference
Luka Guzenko (1):
ALSA: hda/realtek: Enable mute/micmute LEDs on HP Spectre x360 13-aw0xxx
Maaz Mombasawala (5):
drm/vmwgfx: Refactor resource manager's hashtable to use linux/hashtable implementation. drm/vmwgfx: Remove ttm object hashtable
drm/vmwgfx: Refactor resource validation hashtable to use linux/hashtable implementation. drm/vmwgfx: Refactor ttm reference object hashtable to use linux/hashtable. drm/vmwgfx: Remove vmwgfx_hashtab
Marc Zyngier (2):
KVM: arm64: Fix S1PTW handling on RO memslots firmware/psci: Don't register with debugfs if PSCI isn't available
Mario Limonciello (2):
drm/amd: Delay removal of the firmware framebuffer
pinctrl: amd: Add dynamic debugging for active GPIOs
Mark Brown (2):
arm64/signal: Always allocate SVE signal frames on SME only systems arm64/signal: Always accept SVE signal frames on SME only systems
Mark Pearson (1):
platform/x86: thinkpad_acpi: Fix profile mode display in AMT mode
Mark Rutland (1):
arm64: cmpxchg_double*: hazard against entire exchange variable
Maximilian Luz (2):
platform/surface: aggregator: Ignore command messages not intended for us platform/surface: aggregator: Add missing call to ssam_request_sync_free()
Miaoqian Lin (2):
drm/msm/dpu: Fix memory leak in msm_mdss_parse_data_bus_icc_path platform/x86/amd: Fix refcount leak in amd_pmc_probe
Michael Kelley (1):
scsi: storvsc: Fix swiotlb bounce buffer leak in confidential VM
Mikhail Zhilkin (1):
mtd: parsers: scpart: fix __udivdi3 undefined on mips
Minsuk Kang (1):
nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
Mirsad Goran Todorovac (1):
af_unix: selftest: Fix the size of the parameter to connect()
Moshe Shemesh (1):
net/mlx5: Fix command stats access after free
Nathan Chancellor (1):
drm/i915: Fix CFI violations in gt_sysfs
Nirmoy Das (1):
drm/i915: Reserve enough fence slot for i915_vma_unbind_async
Noor Azura Ahmad Tarmizi (1):
net: stmmac: add aux timestamps fifo clearance wait
Pablo Neira Ayuso (1):
netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits
Paolo Bonzini (1):
KVM: x86: Do not return host topology information from KVM_GET_SUPPORTED_CPUID
Paulo Alcantara (4):
cifs: fix file info setting in cifs_query_path_info()
cifs: fix file info setting in cifs_open_file()
cifs: do not query ifaces on smb1 mounts
cifs: fix double free on failed kerberos auth
Pavel Begunkov (1):
io_uring: lock overflowing for IOPOLL
Perry Yuan (1):
cpufreq: amd-pstate: fix kernel hang issue while amd-pstate unregistering
Peter Newman (2):
x86/resctrl: Fix task CLOSID/RMID update race x86/resctrl: Fix event counts regression in reused RMIDs
Peter Wang (1):
scsi: ufs: core: WLUN suspend SSU/enter hibern8 fail recovery
Peter Zijlstra (1):
x86/boot: Avoid using Intel mnemonics in AT&T syntax asm
Rahul Rameshbabu (1):
net/mlx5: Fix ptp max frequency adjustment range
Ricardo Ribalda (1):
regulator: da9211: Use irq handler when ready
Richard Gobert (1):
gro: avoid checking for a failed search
Rob Clark (2):
drm/virtio: Fix GEM handle creation UAF
drm/i915: Fix potential context UAFs
Robin Murphy (1):
iommu/arm-smmu: Report IOMMU_CAP_CACHE_COHERENCY even betterer
Roger Pau Monne (1):
hvc/xen: lock console list traversal
Roy Novich (1):
net/mlx5e: Verify dev is present for fix features ndo
Saleemkhan Jamadar (2):
drm/amdgpu: Enable pg/cg flags on GC11_0_4 for VCN drm/amdgpu: enable VCN DPG for GC IP v11.0.4
Shin'ichiro Kawasaki (1):
scsi: mpi3mr: Refer CONFIG_SCSI_MPI3MR in Makefile
Stephan Gerhold (1):
ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE
Takashi Iwai (3):
Revert "ALSA: usb-audio: Drop superfluous interface setup at parsing"
ALSA: usb-audio: Make sure to stop endpoints before closing EPs
ALSA: usb-audio: Relax hw constraints for implicit fb sync
Thomas Weißschuh (1):
platform/x86: asus-wmi: Don't load fan curves without fan
Tung Nguyen (1):
tipc: fix unexpected link reset due to discovery messages
Vladimir Oltean (2):
iommu/arm-smmu-v3: Don't unregister on shutdown iommu/arm-smmu: Don't unregister on shutdown
Volker Lendecke (1):
cifs: Fix uninitialized memory read for smb311 posix symlink create
Waiman Long (1):
sched/core: Fix use-after-free bug in dup_user_cpus_ptr()
Will Deacon (1):
firmware/psci: Fix MEM_PROTECT_RANGE function numbers
Willy Tarreau (2):
tools/nolibc: restore mips branch ordering in the _start block tools/nolibc: fix the O_* fcntl/open macro definitions for riscv
Yair Podemsky (1):
sched/core: Fix arch_scale_freq_tick() on tickless systems
Yang Li (1):
drm/msm/dpu: Fix some kernel-doc comments
Yang Yingliang (1):
ixgbe: fix pci device refcount leak
YiPeng Chai (1):
drm/amdgpu: Fixed bug on error when unloading amdgpu
Yifan Zhang (1):
drm/amdgpu: add soc21 common ip block support for GC 11.0.4
Yuan Can (1):
ice: Fix potential memory leak in ice_gnss_tty_write()
Yuchi Yang (1):
ALSA: hda/realtek - Turn on power early
Yunfei Wang (1):
iommu/iova: Fix alloc iova overflows issue
Zack Rusin (2):
drm/vmwgfx: Write the driver id registers drm/vmwgfx: Remove rcu locks from user resources
Zenghui Yu (1):
arm64: ptrace: Use ARM64_SME to guard the SME register enumerations
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/display/msm/dsi-controller-main.yaml +1 -3
@@ -32,7 +32,7 @@ properties: - description: Display byte clock - description: Display byte interface clock - description: Display pixel clock - - description: Display escape clock + - description: Display core clock - description: Display AHB clock - description: Display AXI clock
@@ -134,8 +134,6 @@ required: - phy-names - assigned-clocks - assigned-clock-parents - - power-domains - - operating-points-v2 - ports additionalProperties: false
Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml +0 -1
@@ -69,7 +69,6 @@ required: - compatible - reg - reg-names - - vdds-supply unevaluatedProperties: false
Documentation/devicetree/bindings/display/msm/dsi-phy-14nm.yaml +0 -1
@@ -38,7 +38,6 @@ required: - compatible - reg - reg-names - - vcca-supply unevaluatedProperties: false
Documentation/devicetree/bindings/display/msm/dsi-phy-28nm.yaml +4 -0
@@ -34,6 +34,10 @@ properties: vddio-supply: description: Phandle to vdd-io regulator device node. + qcom,dsi-phy-regulator-ldo-mode: + type: boolean + description: Indicates if the LDO mode PHY regulator is wanted. + required: - compatible - reg
Documentation/gpu/todo.rst +0 -11
@@ -651,17 +651,6 @@ See drivers/gpu/drm/amd/display/TODO for tasks. Contact: Harry Wentland, Alex Deucher -vmwgfx: Replace hashtable with Linux' implementation ----------------------------------------------------- - -The vmwgfx driver uses its own hashtable implementation. Replace the -code with Linux' implementation and update the callers. It's mostly a -refactoring task, but the interfaces are different. - -Contact: Zack Rusin, Thomas Zimmermann <[email protected]> - -Level: Intermediate - Bootsplash ==========
Documentation/sphinx/load_config.py +4 -2
@@ -3,7 +3,7 @@ import os import sys -from sphinx.util.pycompat import execfile_ +from sphinx.util.osutil import fs_encoding # ------------------------------------------------------------------------------ def loadConfig(namespace):
@@ -48,7 +48,9 @@ def loadConfig(namespace): sys.stdout.write("load additional sphinx-config: %s\n" % config_file) config = namespace.copy() config['__file__'] = config_file - execfile_(config_file, config) + with open(config_file, 'rb') as f: + code = compile(f.read(), fs_encoding, 'exec') + exec(code, config) del config['__file__'] namespace.update(config) else:
Documentation/virt/kvm/api.rst +14 -0
@@ -8248,6 +8248,20 @@ CPU[EAX=1]:ECX[24] (TSC_DEADLINE) is not reported by ``KVM_GET_SUPPORTED_CPUID`` It can be enabled if ``KVM_CAP_TSC_DEADLINE_TIMER`` is present and the kernel has enabled in-kernel emulation of the local APIC. +CPU topology +~~~~~~~~~~~~ + +Several CPUID values include topology information for the host CPU: +0x0b and 0x1f for Intel systems, 0x8000001e for AMD systems. Different +versions of KVM return different values for this information and userspace +should not rely on it. Currently they return all zeroes. + +If userspace wishes to set up a guest topology, it should be careful that +the values of these three leaves differ for each CPU. In particular, +the APIC ID is found in EDX for all subleaves of 0x0b and 0x1f, and in EAX +for 0x8000001e; the latter also encodes the core id and node id in bits +7:0 of EBX and ECX respectively. + Obsolete ioctls and capabilities ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 6 +SUBLEVEL = 7 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm64/include/asm/atomic_ll_sc.h +1 -1
@@ -315,7 +315,7 @@ __ll_sc__cmpxchg_double##name(unsigned long old1, \" cbnz %w0, 1b\n" \ " " #mb "\n" \ "2:" \ - : "=&r" (tmp), "=&r" (ret), "+Q" (*(unsigned long *)ptr) \ + : "=&r" (tmp), "=&r" (ret), "+Q" (*(__uint128_t *)ptr) \ : "r" (old1), "r" (old2), "r" (new1), "r" (new2) \ : cl); \ \
arch/arm64/include/asm/atomic_lse.h +1 -1
@@ -311,7 +311,7 @@ __lse__cmpxchg_double##name(unsigned long old1, \" eor %[old2], %[old2], %[oldval2]\n" \" orr %[old1], %[old1], %[old2]" \ : [old1] "+&r" (x0), [old2] "+&r" (x1), \ -[v] " +Q " (*(unsigned long *)ptr) \ +[v] " +Q " (*(__uint128_t *)ptr) \ : [new1] " r" (x2), [new2] " r" (x3), [ptr] " r" (x4), \ [oldval1] " r" (oldval1), [oldval2] " r" (oldval2) \ : cl); \
arch/arm64/include/asm/kvm_emulate.h +20 -2
@@ -373,8 +373,26 @@ static __always_inline int kvm_vcpu_sys_get_rt(struct kvm_vcpu *vcpu)static inline bool kvm_is_write_fault (struct kvm_vcpu *vcpu) { -if (kvm_vcpu_abt_iss1tw (vcpu)) -return true; +if (kvm_vcpu_abt_iss1tw (vcpu)) { +/* +* Only a permission fault on a S1PTW should be +* considered as a write. Otherwise, page tables baked +* in a read-only memslot will result in an exception +* being delivered in the guest. +* +* The drawback is that we end-up faulting twice if the +* guest is using any of HW AF/DB: a translation fault +* to map the page containing the PT (read only at +* first), then a permission fault to allow the flags +* to be set. +*/ +switch (kvm_vcpu_trap_get_fault_type (vcpu)) { +case ESR_ELx_FSC_PERM: +return true; +default : +return false; + } + }if (kvm_vcpu_trap_is_iabt (vcpu))return false;
arch/arm64/include/asm/pgtable.h +3 -3
@@ -682,7 +682,7 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)#define pud_leaf (pud) (pud_present(pud) && !pud_table(pud))#define pud_valid (pud) pte_valid(pud_pte(pud))#define pud_user (pud) pte_user(pud_pte(pud)) - +#define pud_user_exec (pud) pte_user_exec(pud_pte(pud))static inline void set_pud (pud_t *pudp,pud_t pud) {
@@ -863,12 +863,12 @@ static inline bool pte_user_accessible_page(pte_t pte)static inline bool pmd_user_accessible_page (pmd_t pmd) { -return pmd_leaf (pmd) && (pmd_user (pmd) ||pmd_user_exec (pmd)); +return pmd_leaf (pmd) && !pmd_present_invalid (pmd) && (pmd_user (pmd) ||pmd_user_exec (pmd)); }static inline bool pud_user_accessible_page (pud_t pud) { -return pud_leaf (pud) &&pud_user (pud); +return pud_leaf (pud) && (pud_user (pud) ||pud_user_exec (pud)); }#endif
arch/arm64/kernel/elfcore.c +28 -33
122 lines not on this page · raw message
arch/arm64/kernel/ptrace.c +1 -1
@@ -1364,7 +1364,7 @@ enum aarch64_regset {#ifdef CONFIG_ARM64_SVE REGSET_SVE,#endif -#ifdef CONFIG_ARM64_SVE +#ifdef CONFIG_ARM64_SME REGSET_SSVE, REGSET_ZA,#endif
arch/arm64/kernel/signal.c +7 -2
@@ -280,7 +280,12 @@ static int restore_sve_fpsimd_context(struct user_ctxs *user) vl =task_get_sme_vl (current); }else { -if (!system_supports_sve ()) +/* +* A SME only system use SVE for streaming mode so can +* have a SVE formatted context with a zero VL and no +* payload data. +*/ +if (!system_supports_sve () && !system_supports_sme ())return -EINVAL ; vl =task_get_sve_vl (current);
@@ -729,7 +734,7 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user,return err; } -if (system_supports_sve ()) { +if (system_supports_sve () ||system_supports_sme ()) {unsigned int vq =0 ; if (add_all || test_thread_flag(TIF_SVE) ||
arch/ia64/kernel/elfcore.c +2 -2
@@ -7,7 +7,7 @@#include <asm/elf.h> -Elf64_Half elf_core_extra_phdrs (void ) +Elf64_Half elf_core_extra_phdrs (struct coredump_params *cprm) {return GATE_EHDR ->e_phnum; }
@@ -60,7 +60,7 @@ int elf_core_write_extra_data(struct coredump_params *cprm)return 1 ; } -size_t elf_core_extra_data_size (void ) +size_t elf_core_extra_data_size (struct coredump_params *cprm) {const struct elf_phdr *const gate_phdrs = (const struct elf_phdr *) (GATE_ADDR +GATE_EHDR ->e_phoff);
arch/powerpc/include/asm/imc-pmu.h +1 -1
@@ -137,7 +137,7 @@ struct imc_pmu {* are inited. */ struct imc_pmu_ref { -struct mutex lock; +spinlock_t lock;unsigned int id;int refc; };
arch/powerpc/perf/imc-pmu.c +66 -70
474 lines not on this page · raw message
arch/s390/include/asm/cpu_mf.h +15 -16
@@ -131,19 +131,21 @@ struct hws_combined_entry {struct hws_diag_entry diag;/* Diagnostic-sampling data entry */ } __packed; -struct hws_trailer_entry { -union { -struct { -unsigned int f:1 ;/* 0 - Block Full Indicator */ -unsigned int a:1 ;/* 1 - Alert request control */ -unsigned int t:1 ;/* 2 - Timestamp format */ - unsigned int :29; /* 3 - 31: Reserved */ -unsigned int bsdes:16 ;/* 32-47: size of basic SDE */ -unsigned int dsdes:16 ;/* 48-63: size of diagnostic SDE */ - }; -unsigned long long flags;/* 0 - 63: All indicators */ +union hws_trailer_header { +struct { +unsigned int f:1 ;/* 0 - Block Full Indicator */ +unsigned int a:1 ;/* 1 - Alert request control */ +unsigned int t:1 ;/* 2 - Timestamp format */ + unsigned int :29; /* 3 - 31: Reserved */ +unsigned int bsdes:16 ;/* 32-47: size of basic SDE */ +unsigned int dsdes:16 ;/* 48-63: size of diagnostic SDE */ +unsigned long long overflow;/* 64 - Overflow Count */ }; -unsigned long long overflow;/* 64 - sample Overflow count */ +__uint128_t val; +}; + +struct hws_trailer_entry { +union hws_trailer_header header;/* 0 - 15 Flags + Overflow Count */ unsigned char timestamp[16 ];/* 16 - 31 timestamp */ unsigned long long reserved1;/* 32 -Reserved */ unsigned long long reserved2;/* */
@@ -290,14 +292,11 @@ static inline unsigned long sample_rate_to_freq(struct hws_qsi_info_block *qsi,return USEC_PER_SEC * qsi->cpu_speed / rate; } -#define SDB_TE_ALERT_REQ_MASK 0x4000000000000000UL -#define SDB_TE_BUFFER_FULL_MASK 0x8000000000000000UL -/* Return TOD timestamp contained in an trailer entry */ static inline unsigned long long trailer_timestamp (struct hws_trailer_entry *te) {/* TOD in STCKE format */ -if (te->t) +if (te->header.t)return *((unsigned long long *) &te->timestamp[1 ]);/* TOD in STCK format */
arch/s390/include/asm/percpu.h +1 -1
@@ -31,7 +31,7 @@pcp_op_T__ *ptr__; \preempt_disable_notrace (); \ ptr__ =raw_cpu_ptr (&(pcp)); \ - prev__ = *ptr__; \ + prev__ =READ_ONCE (*ptr__); \ do { \ old__ = prev__; \ new__ = old__ op (val); \
arch/s390/kernel/machine_kexec_file.c +3 -2
@@ -187,8 +187,6 @@ static int kexec_file_add_ipl_report(struct kimage *image, data->memsz =ALIGN (data->memsz,PAGE_SIZE ); buf.mem = data->memsz; -if (image->type ==KEXEC_TYPE_CRASH ) - buf.mem += crashk_res.start; ptr = (void *)ipl_cert_list_addr; end = ptr + ipl_cert_list_size;
@@ -225,6 +223,9 @@ static int kexec_file_add_ipl_report(struct kimage *image, data->kernel_buf + offsetof(struct lowcore , ipl_parmblock_ptr); *lc_ipl_parmblock_ptr = (__u32 )buf.mem; +if (image->type ==KEXEC_TYPE_CRASH ) + buf.mem += crashk_res.start; + ret =kexec_add_buffer (&buf); out:return ret;
arch/s390/kernel/perf_cpum_sf.c +62 -39
222 lines not on this page · raw message
arch/x86/boot/bioscall.S +2 -2
@@ -32,7 +32,7 @@ intcall: movw %dx, %si movw %sp, %di movw $11, %cx - rep; movsd + rep; movsl /* Pop full state from the stack */ popal
@@ -67,7 +67,7 @@ intcall: jz 4f movw %sp, %si movw $11, %cx - rep; movsd + rep; movsl 4: addw $44, %sp /* Restore state and return */
arch/x86/kernel/cpu/resctrl/monitor.c +33 -16
72 lines not on this page · raw message
arch/x86/kernel/cpu/resctrl/rdtgroup.c +11 -1
@@ -580,8 +580,10 @@ static int __rdtgroup_move_task(struct task_struct *tsk,/* * Ensure the task's closid and rmid are written before determining if * the task is current that will decide if it will be interrupted. +* This pairs with the full barrier between the rq->curr update and +* resctrl_sched_in() during context switch. */ -barrier (); +smp_mb ();/* * By now, the task's closid and rmid are set. If the task is current
@@ -2401,6 +2403,14 @@ static void rdt_move_group_tasks(struct rdtgroup *from, struct rdtgroup *to,WRITE_ONCE (t->closid, to->closid);WRITE_ONCE (t->rmid, to->mon.rmid); +/* +* Order the closid/rmid stores above before the loads +* in task_curr(). This pairs with the full barrier +* between the rq->curr update and resctrl_sched_in() +* during context switch. +*/ +smp_mb (); +/* * If the task is on a CPU, set the CPU in the mask. * The detection is inaccurate as tasks might move or
arch/x86/kvm/cpuid.c +16 -16
@@ -759,16 +759,22 @@ struct kvm_cpuid_array {int nent; }; +static struct kvm_cpuid_entry2 *get_next_cpuid (struct kvm_cpuid_array *array) +{ +if (array->nent >= array->maxnent) +return NULL ; + +return &array->entries[array->nent++]; +} +static struct kvm_cpuid_entry2 *do_host_cpuid (struct kvm_cpuid_array *array,u32 function,u32 index) { -struct kvm_cpuid_entry2 *entry; +struct kvm_cpuid_entry2 *entry =get_next_cpuid (array); -if (array->nent >= array->maxnent) +if (!entry)return NULL ; - entry = &array->entries[array->nent++]; -memset (entry,0 ,sizeof (*entry)); entry->function = function; entry->index = index;
@@ -945,22 +951,13 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) entry->edx = edx.full;break ; } -/* -* Per Intel's SDM, the 0x1f is a superset of 0xb, -* thus they can be handled by common code. -*/ case 0x1f :case 0xb :/* -* Populate entries until the level type (ECX[15:8]) of the -* previous entry is zero. Note, CPUID EAX.{0x1f,0xb}.0 is -* the starting entry, filled by the primary do_host_cpuid(). +* No topology; a valid topology is indicated by the presence +* of subleaf 1. */ -for (i =1 ; entry->ecx &0xff00 ; ++i) { - entry =do_host_cpuid (array, function, i); -if (!entry) - goto out; - } + entry->eax = entry->ebx = entry->ecx =0 ;break ;case 0xd : {u64 permitted_xcr0 = kvm_caps.supported_xcr0 &xstate_get_guest_group_perm ();
@@ -1193,6 +1190,9 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) entry->ebx = entry->ecx = entry->edx =0 ;break ;case 0x8000001e : +/* Do not return host topology information. */ + entry->eax = entry->ebx = entry->ecx =0 ; + entry->edx =0 ;/* reserved */ break ;case 0x8000001F :if (!kvm_cpu_cap_has (X86_FEATURE_SEV )) {
arch/x86/mm/pat/memtype.c +2 -1
@@ -434,7 +434,8 @@ static unsigned long pat_x_mtrr_type(u64 start, u64 end,u8 mtrr_type, uniform; mtrr_type =mtrr_type_lookup (start, end, &uniform); -if (mtrr_type !=MTRR_TYPE_WRBACK ) +if (mtrr_type !=MTRR_TYPE_WRBACK && + mtrr_type !=MTRR_TYPE_INVALID )return _PAGE_CACHE_MODE_UC_MINUS;return _PAGE_CACHE_MODE_WB;
arch/x86/um/elfcore.c +2 -2
@@ -7,7 +7,7 @@#include <asm/elf.h> -Elf32_Half elf_core_extra_phdrs (void ) +Elf32_Half elf_core_extra_phdrs (struct coredump_params *cprm) {return vsyscall_ehdr ? (((struct elfhdr *)vsyscall_ehdr)->e_phnum) :0 ; }
@@ -60,7 +60,7 @@ int elf_core_write_extra_data(struct coredump_params *cprm)return 1 ; } -size_t elf_core_extra_data_size (void ) +size_t elf_core_extra_data_size (struct coredump_params *cprm) {if ( vsyscall_ehdr ) { const struct elfhdr *const ehdrp =
block/blk-merge.c +3 -1
@@ -358,11 +358,13 @@ struct bio *__bio_split_to_limits(struct bio *bio, struct queue_limits *lim,default : split =bio_split_rw (bio, lim, nr_segs, bs,get_max_io_size (bio, lim) <<SECTOR_SHIFT ); +if (IS_ERR (split)) +return NULL ;break ; }if (split) { -/* there isn't chance to merge the splitted bio */ +/* there isn't chance to merge the split bio */ split->bi_opf |=REQ_NOMERGE ;blkcg_bio_issue_init (split);
block/blk-mq.c +4 -1
@@ -2919,8 +2919,11 @@ void blk_mq_submit_bio(struct bio *bio)blk_status_t ret; bio =blk_queue_bounce (bio, q); -if (bio_may_exceed_limits (bio, &q->limits)) +if (bio_may_exceed_limits (bio, &q->limits)) { bio =__bio_split_to_limits (bio, &q->limits, &nr_segs); +if (!bio) +return ; + }if (!bio_integrity_prep (bio))return ;
drivers/acpi/glue.c +12 -2
@@ -75,7 +75,8 @@ static struct acpi_bus_type *acpi_get_bus_type(struct device *dev) }#define FIND_CHILD_MIN_SCORE 1 -#define FIND_CHILD_MAX_SCORE 2 +#define FIND_CHILD_MID_SCORE 2 +#define FIND_CHILD_MAX_SCORE 3static int match_any (struct acpi_device *adev,void *not_used) {
@@ -96,8 +97,17 @@ static int find_child_checks(struct acpi_device *adev, bool check_children)return -ENODEV ; status =acpi_evaluate_integer (adev->handle,"_STA" ,NULL , &sta); -if (status ==AE_NOT_FOUND ) +if (status ==AE_NOT_FOUND ) { +/* +* Special case: backlight device objects without _STA are +* preferred to other objects with the same _ADR value, because +* it is more likely that they are actually useful. +*/ +if (adev->pnp.type.backlight) +return FIND_CHILD_MID_SCORE ; +return FIND_CHILD_MIN_SCORE ; + }if (ACPI_FAILURE (status) || !(sta &ACPI_STA_DEVICE_ENABLED ))return -ENODEV ;
drivers/acpi/scan.c +5 -2
@@ -1370,9 +1370,12 @@ static void acpi_set_pnp_ids(acpi_handle handle, struct acpi_device_pnp *pnp,* Some devices don't reliably have _HIDs & _CIDs, so add * synthetic HIDs to make sure drivers can find them. */ -if (acpi_is_video_device (handle)) +if (acpi_is_video_device (handle)) {acpi_add_id (pnp,ACPI_VIDEO_HID ); -else if (acpi_bay_match (handle)) + pnp->type.backlight =1 ; +break ; + } +if (acpi_bay_match (handle))acpi_add_id (pnp,ACPI_BAY_HID );else if (acpi_dock_match (handle))acpi_add_id (pnp,ACPI_DOCK_HID );
drivers/acpi/video_detect.c +4 -0
@@ -50,6 +50,10 @@ static void acpi_video_parse_cmdline(void) acpi_backlight_cmdline = acpi_backlight_video;if (!strcmp ("native" , acpi_video_backlight_string)) acpi_backlight_cmdline = acpi_backlight_native; +if (!strcmp ("nvidia_wmi_ec" , acpi_video_backlight_string)) + acpi_backlight_cmdline = acpi_backlight_nvidia_wmi_ec; +if (!strcmp ("apple_gmux" , acpi_video_backlight_string)) + acpi_backlight_cmdline = acpi_backlight_apple_gmux;if (!strcmp ("none" , acpi_video_backlight_string)) acpi_backlight_cmdline = acpi_backlight_none; }
drivers/block/drbd/drbd_req.c +2 -0
@@ -1607,6 +1607,8 @@ void drbd_submit_bio(struct bio *bio)struct drbd_device *device = bio->bi_bdev->bd_disk->private_data; bio =bio_split_to_limits (bio); +if (!bio) +return ;/* * what we "blindly" assume:
drivers/block/ps3vram.c +2 -0
@@ -587,6 +587,8 @@ static void ps3vram_submit_bio(struct bio *bio)dev_dbg (&dev->core,"%s\n" , __func__); bio =bio_split_to_limits (bio); +if (!bio) +return ;spin_lock_irq (&priv->lock); busy = !bio_list_empty (&priv->list);
drivers/cpufreq/amd-pstate.c +1 -0
@@ -307,6 +307,7 @@ static void amd_pstate_adjust_perf(unsigned int cpu, max_perf = min_perf;amd_pstate_update (cpudata, min_perf, des_perf, max_perf, true); +cpufreq_cpu_put (policy); }static int amd_get_min_freq (struct amd_cpudata *cpudata)
drivers/edac/edac_device.c +8 -9
@@ -394,17 +394,16 @@ static void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev)* Then restart the workq on the new delay */ void edac_device_reset_delay_period (struct edac_device_ctl_info *edac_dev, -unsigned long value) +unsigned long msec) { -unsigned long jiffs =msecs_to_jiffies (value); - -if (value ==1000 ) - jiffs =round_jiffies_relative (value); - - edac_dev->poll_msec = value; - edac_dev->delay = jiffs; + edac_dev->poll_msec = msec; + edac_dev->delay =msecs_to_jiffies (msec); -edac_mod_work (&edac_dev->work, jiffs); +/* See comment in edac_device_workq_setup() above */ +if (edac_dev->poll_msec ==1000 ) +edac_mod_work (&edac_dev->work,round_jiffies_relative (edac_dev->delay)); +else +edac_mod_work (&edac_dev->work, edac_dev->delay); }int edac_device_alloc_index (void )
drivers/edac/edac_module.h +1 -1
@@ -52,7 +52,7 @@ bool edac_stop_work(struct delayed_work *work);bool edac_mod_work (struct delayed_work *work,unsigned long delay);extern void edac_device_reset_delay_period (struct edac_device_ctl_info - *edac_dev,unsigned long value); + *edac_dev,unsigned long msec);extern void edac_mc_reset_delay_period (unsigned long value);/*
drivers/firmware/efi/efi.c +6 -3
@@ -374,8 +374,8 @@ static int __init efisubsys_init(void) efi_kobj =kobject_create_and_add ("efi" , firmware_kobj);if (!efi_kobj) {pr_err ("efi: Firmware registration failed.\n" ); -destroy_workqueue (efi_rts_wq); -return -ENOMEM ; + error = -ENOMEM ; + goto err_destroy_wq; } if (efi_rt_services_supported(EFI_RT_SUPPORTED_GET_VARIABLE |
@@ -423,7 +423,10 @@ static int __init efisubsys_init(void)generic_ops_unregister (); err_put:kobject_put (efi_kobj); -destroy_workqueue (efi_rts_wq); +err_destroy_wq: +if (efi_rts_wq) +destroy_workqueue (efi_rts_wq); +return error; }
drivers/firmware/efi/runtime-wrappers.c +1 -0
@@ -62,6 +62,7 @@ struct efi_runtime_work efi_rts_work; \if (!efi_enabled (EFI_RUNTIME_SERVICES )) { \pr_warn_once ("EFI Runtime Services are disabled!\n" ); \ + efi_rts_work.status =EFI_DEVICE_ERROR ; \ goto exit; \ } \ \
drivers/firmware/psci/psci.c +3 -0
@@ -440,6 +440,9 @@ static const struct file_operations psci_debugfs_ops = {static int __init psci_debugfs_init (void ) { +if (!invoke_psci_fn || !psci_ops.get_version) +return 0 ; +return PTR_ERR_OR_ZERO (debugfs_create_file ("psci" ,0444 ,NULL ,NULL , &psci_debugfs_ops)); }
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +8 -0
@@ -36,6 +36,7 @@#include <generated/utsrelease.h> #include <linux/pci-p2pdma.h> +#include <drm/drm_aperture.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_probe_helper.h> #include <drm/amdgpu_drm.h>
@@ -89,6 +90,8 @@ MODULE_FIRMWARE("amdgpu/navi12_gpu_info.bin");#define AMDGPU_MAX_RETRY_LIMIT 2#define AMDGPU_RETRY_SRIOV_RESET (r) ((r) == -EBUSY || (r) == -ETIMEDOUT || (r) == -EINVAL) +static const struct drm_driver amdgpu_kms_driver; +const char *amdgpu_asic_name[] = {"TAHITI" ,"PITCAIRN" ,
@@ -3677,6 +3680,11 @@ int amdgpu_device_init(struct amdgpu_device *adev,if (r)return r; +/* Get rid of things like offb */ + r =drm_aperture_remove_conflicting_pci_framebuffers (adev->pdev, &amdgpu_kms_driver); +if (r) +return r; +/* Enable TMZ based on IP_VERSION */ amdgpu_gmc_tmz_set (adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +0 -6
@@ -23,7 +23,6 @@*/ #include <drm/amdgpu_drm.h> -#include <drm/drm_aperture.h> #include <drm/drm_drv.h> #include <drm/drm_gem.h> #include <drm/drm_vblank.h>
@@ -2123,11 +2122,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, }#endif -/* Get rid of things like offb */ - ret =drm_aperture_remove_conflicting_pci_framebuffers (pdev, &amdgpu_kms_driver); -if (ret) -return ret; - adev =devm_drm_dev_alloc (&pdev->dev, &amdgpu_kms_driver,typeof (*adev), ddev);if (IS_ERR (adev))return PTR_ERR (adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +3 -2
@@ -468,8 +468,9 @@ static bool amdgpu_bo_validate_size(struct amdgpu_device *adev,return true; fail: -DRM_DEBUG ("BO size %lu > total memory in domain: %llu\n" , size, - man->size); +if (man) +DRM_DEBUG ("BO size %lu > total memory in domain: %llu\n" , size, + man->size);return false; }
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 -1
@@ -882,7 +882,7 @@ void amdgpu_vram_mgr_fini(struct amdgpu_device *adev)kfree (rsv);list_for_each_entry_safe (rsv, temp, &mgr->reserved_pages, blocks) { -drm_buddy_free_list (&mgr->mm, &rsv->blocks); +drm_buddy_free_list (&mgr->mm, &rsv->allocated);kfree (rsv); }drm_buddy_fini (&mgr->mm);
drivers/gpu/drm/amd/amdgpu/soc21.c +11 -0
@@ -322,6 +322,7 @@ soc21_asic_reset_method(struct amdgpu_device *adev)switch (adev->ip_versions[MP1_HWIP ][0 ]) {case IP_VERSION (13 ,0 ,0 ):case IP_VERSION (13 ,0 ,7 ): +case IP_VERSION (13 ,0 ,10 ):return AMD_RESET_METHOD_MODE1 ;case IP_VERSION (13 ,0 ,4 ):return AMD_RESET_METHOD_MODE2 ;
@@ -652,6 +653,16 @@ static int soc21_common_early_init(void *handle) } adev->external_rev_id = adev->rev_id +0x20 ;break ; +case IP_VERSION (11 ,0 ,4 ): + adev->cg_flags =AMD_CG_SUPPORT_VCN_MGCG | +AMD_CG_SUPPORT_JPEG_MGCG ; + adev->pg_flags =AMD_PG_SUPPORT_VCN | +AMD_PG_SUPPORT_VCN_DPG | +AMD_PG_SUPPORT_GFX_PG | +AMD_PG_SUPPORT_JPEG ; + adev->external_rev_id = adev->rev_id +0x1 ; +break ; +default :/* FIXME: not supported yet */ return -EINVAL ;
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c +3 -2
@@ -1919,8 +1919,9 @@ int dcn32_populate_dml_pipes_from_context( timing = &pipe->stream->timing; pipes[pipe_cnt].pipe.src.gpuvm = true; - pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma =0 ; - pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_chroma =0 ; +DC_FP_START (); +dcn32_zero_pipe_dcc_fraction (pipes, pipe_cnt); +DC_FP_END (); pipes[pipe_cnt].pipe.dest.vfront_porch = timing->v_front_porch; pipes[pipe_cnt].pipe.src.gpuvm_min_page_size_kbytes =256 ;// according to spreadsheet pipes[pipe_cnt].pipe.src.unbounded_req_mode = false;
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c +8 -0
@@ -2546,3 +2546,11 @@ void dcn32_update_bw_bounding_box_fpu(struct dc *dc, struct clk_bw_params *bw_pa } } +void dcn32_zero_pipe_dcc_fraction (display_e2e_pipe_params_st *pipes, +int pipe_cnt) +{ +dc_assert_fp_enabled (); + + pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma =0 ; + pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_chroma =0 ; +}
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h +3 -0
@@ -73,4 +73,7 @@ int dcn32_find_dummy_latency_index_for_fw_based_mclk_switch(struct dc *dc,void dcn32_patch_dpm_table (struct clk_bw_params *bw_params); +void dcn32_zero_pipe_dcc_fraction (display_e2e_pipe_params_st *pipes, +int pipe_cnt); +#endif
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +12 -13
@@ -67,22 +67,21 @@ int vega10_fan_ctrl_get_fan_speed_info(struct pp_hwmgr *hwmgr,int vega10_fan_ctrl_get_fan_speed_pwm (struct pp_hwmgr *hwmgr,uint32_t *speed) { -uint32_t current_rpm; -uint32_t percent =0 ; - -if (hwmgr->thermal_controller.fanInfo.bNoFan) -return 0 ; +struct amdgpu_device *adev = hwmgr->adev; +uint32_t duty100, duty; +uint64_t tmp64; -if (vega10_get_current_rpm (hwmgr, ¤t_rpm)) -return -1 ; + duty100 =REG_GET_FIELD (RREG32_SOC15 (THM ,0 , mmCG_FDO_CTRL1), +CG_FDO_CTRL1 ,FMAX_DUTY100 ); + duty =REG_GET_FIELD (RREG32_SOC15 (THM ,0 , mmCG_THERMAL_STATUS), +CG_THERMAL_STATUS ,FDO_PWM_DUTY ); -if (hwmgr->thermal_controller. - advanceFanControlParameters.usMaxFanRPM !=0 ) - percent = current_rpm *255 / - hwmgr->thermal_controller. - advanceFanControlParameters.usMaxFanRPM; +if (!duty100) +return -EINVAL ; - *speed =MIN (percent,255 ); + tmp64 = (uint64_t )duty *255 ; +do_div (tmp64, duty100); + *speed =MIN ((uint32_t )tmp64,255 );return 0 ; }
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +4 -0
@@ -568,6 +568,10 @@ struct smu_contextu32 param_reg;u32 msg_reg;u32 resp_reg; + +u32 debug_param_reg; +u32 debug_msg_reg; +u32 debug_resp_reg; };struct i2c_adapter ;
drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h +7 -1
@@ -131,7 +131,13 @@#define PPSMC_MSG_EnableAudioStutterWA 0x44#define PPSMC_MSG_PowerUpUmsch 0x45#define PPSMC_MSG_PowerDownUmsch 0x46 -#define PPSMC_Message_Count 0x47 +#define PPSMC_MSG_SetDcsArch 0x47 +#define PPSMC_MSG_TriggerVFFLR 0x48 +#define PPSMC_MSG_SetNumBadMemoryPagesRetired 0x49 +#define PPSMC_MSG_SetBadMemoryPagesRetiredFlagsPerChannel 0x4A +#define PPSMC_MSG_SetPriorityDeltaGain 0x4B +#define PPSMC_MSG_AllowIHHostInterrupt 0x4C +#define PPSMC_Message_Count 0x4D//Debug Dump Message #define DEBUGSMC_MSG_TestMessage 0x1
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h +4 -1
@@ -239,7 +239,10 @@__SMU_DUMMY_MAP (DriverMode2Reset), \__SMU_DUMMY_MAP (GetGfxOffStatus), \__SMU_DUMMY_MAP (GetGfxOffEntryCount), \ -__SMU_DUMMY_MAP (LogGfxOffResidency), +__SMU_DUMMY_MAP (LogGfxOffResidency), \ +__SMU_DUMMY_MAP (SetNumBadMemoryPagesRetired), \ +__SMU_DUMMY_MAP (SetBadMemoryPagesRetiredFlagsPerChannel), \ +__SMU_DUMMY_MAP (AllowGpo), #undef __SMU_DUMMY_MAP #define __SMU_DUMMY_MAP(type) SMU_MSG_##type
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h +3 -0
@@ -273,6 +273,9 @@ int smu_v13_0_init_pptable_microcode(struct smu_context *smu);int smu_v13_0_run_btc (struct smu_context *smu); +int smu_v13_0_gpo_control (struct smu_context *smu, +bool enablement); +int smu_v13_0_deep_sleep_control (struct smu_context *smu,bool enablement);
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +21 -2
@@ -1258,7 +1258,8 @@ int smu_v13_0_set_fan_speed_rpm(struct smu_context *smu, uint32_t speed) {struct amdgpu_device *adev = smu->adev; -uint32_t tach_period, crystal_clock_freq; +uint32_t crystal_clock_freq =2500 ; +uint32_t tach_period;int ret;if (!speed)
@@ -1268,7 +1269,6 @@ int smu_v13_0_set_fan_speed_rpm(struct smu_context *smu,if (ret)return ret; - crystal_clock_freq =amdgpu_asic_get_xclk (adev); tach_period =60 * crystal_clock_freq *10000 / (8 * speed); WREG32_SOC15(THM, 0, regCG_TACH_CTRL, REG_SET_FIELD(RREG32_SOC15(THM, 0, regCG_TACH_CTRL),
@@ -2148,6 +2148,21 @@ int smu_v13_0_run_btc(struct smu_context *smu)return res; } +int smu_v13_0_gpo_control (struct smu_context *smu, +bool enablement) +{ +int res; + + res =smu_cmn_send_smc_msg_with_param (smu, + SMU_MSG_AllowGpo, + enablement ?1 :0 , +NULL ); +if (res) +dev_err (smu->adev->dev,"SetGpoAllow %d failed!\n" , enablement); + +return res; +} +int smu_v13_0_deep_sleep_control (struct smu_context *smu,bool enablement) {
@@ -2249,6 +2264,10 @@ bool smu_v13_0_baco_is_support(struct smu_context *smu) !smu_baco->platform_support)return false; +/* return true if ASIC is in BACO state already */ +if (smu_v13_0_baco_get_state (smu) ==SMU_BACO_STATE_ENTER ) +return true; +if (smu_cmn_feature_is_supported (smu,SMU_FEATURE_BACO_BIT ) && !smu_cmn_feature_is_enabled (smu,SMU_FEATURE_BACO_BIT ))return false;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +93 -2
131 lines not on this page · raw message
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +3 -0
@@ -123,6 +123,7 @@ static struct cmn2asic_msg_mapping smu_v13_0_7_message_map[SMU_MSG_MAX_COUNT] =MSG_MAP (SetMGpuFanBoostLimitRpm, PPSMC_MSG_SetMGpuFanBoostLimitRpm,0 ),MSG_MAP (DFCstateControl, PPSMC_MSG_SetExternalClientDfCstateAllow,0 ),MSG_MAP (ArmD3, PPSMC_MSG_ArmD3,0 ), + MSG_MAP(AllowGpo, PPSMC_MSG_SetGpoAllow, 0), }; static struct cmn2asic_mapping smu_v13_0_7_clk_map[SMU_CLK_COUNT] = {
@@ -191,6 +192,7 @@ static struct cmn2asic_mapping smu_v13_0_7_feature_mask_map[SMU_FEATURE_COUNT] = FEA_MAP(SOC_PCC), [SMU_FEATURE_DPM_VCLK_BIT] = {1, FEATURE_MM_DPM_BIT}, [SMU_FEATURE_DPM_DCLK_BIT] = {1, FEATURE_MM_DPM_BIT}, + [SMU_FEATURE_PPT_BIT] = {1, FEATURE_THROTTLERS_BIT}, };static struct cmn2asic_mapping smu_v13_0_7_table_map[SMU_TABLE_COUNT ] = {
@@ -1711,6 +1713,7 @@ static const struct pptable_funcs smu_v13_0_7_ppt_funcs = { .mode1_reset = smu_v13_0_mode1_reset, .set_mp1_state = smu_v13_0_7_set_mp1_state, .set_df_cstate = smu_v13_0_7_set_df_cstate, + .gpo_control = smu_v13_0_gpo_control, };void smu_v13_0_7_set_ppt_funcs (struct smu_context *smu)
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c +18 -0
@@ -233,6 +233,18 @@ static void __smu_cmn_send_msg(struct smu_context *smu,WREG32 (smu->msg_reg, msg); } +static int __smu_cmn_send_debug_msg (struct smu_context *smu, +u32 msg, +u32 param) +{ +struct amdgpu_device *adev = smu->adev; + +WREG32 (smu->debug_param_reg, param); +WREG32 (smu->debug_msg_reg, msg); +WREG32 (smu->debug_resp_reg,0 ); + +return 0 ; +}/** * smu_cmn_send_msg_without_waiting -- send the message; don't wait for status * @smu: pointer to an SMU context
@@ -386,6 +398,12 @@ int smu_cmn_send_smc_msg(struct smu_context *smu, read_arg); } +int smu_cmn_send_debug_smc_msg (struct smu_context *smu, +uint32_t msg) +{ +return __smu_cmn_send_debug_msg (smu, msg,0 ); +} +int smu_cmn_to_asic_specific_index (struct smu_context *smu,enum smu_cmn2asic_mapping_type type,uint32_t index)
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h +3 -0
@@ -42,6 +42,9 @@ int smu_cmn_send_smc_msg(struct smu_context *smu,enum smu_message_type msg, uint32_t *read_arg); +int smu_cmn_send_debug_smc_msg (struct smu_context *smu, +uint32_t msg); +int smu_cmn_wait_for_response (struct smu_context *smu); int smu_cmn_to_asic_specific_index(struct smu_context *smu,
drivers/gpu/drm/drm_buddy.c +54 -27
126 lines not on this page · raw message
drivers/gpu/drm/i915/gem/i915_gem_context.c +18 -6
@@ -1688,6 +1688,10 @@ void i915_gem_init__contexts(struct drm_i915_private *i915)init_contexts (&i915->gem.contexts); } +/* +* Note that this implicitly consumes the ctx reference, by placing +* the ctx in the context_xa. +*/ static void gem_context_register (struct i915_gem_context *ctx,struct drm_i915_file_private *fpriv,u32 id)
@@ -1703,10 +1707,6 @@ static void gem_context_register(struct i915_gem_context *ctx,snprintf (ctx->name,sizeof (ctx->name),"%s[%d]" , current->comm,pid_nr (ctx->pid)); -/* And finally expose ourselves to userspace via the idr */ - old =xa_store (&fpriv->context_xa, id, ctx,GFP_KERNEL ); -WARN_ON (old); -spin_lock (&ctx->client->ctx_lock);list_add_tail_rcu (&ctx->client_link, &ctx->client->ctx_list);spin_unlock (&ctx->client->ctx_lock);
@@ -1714,6 +1714,10 @@ static void gem_context_register(struct i915_gem_context *ctx,spin_lock (&i915->gem.contexts.lock);list_add_tail (&ctx->link, &i915->gem.contexts.list);spin_unlock (&i915->gem.contexts.lock); + +/* And finally expose ourselves to userspace via the idr */ + old =xa_store (&fpriv->context_xa, id, ctx,GFP_KERNEL ); +WARN_ON (old); } int i915_gem_context_open(struct drm_i915_private *i915,
@@ -2199,14 +2203,22 @@ finalize_create_context_locked(struct drm_i915_file_private *file_priv,if (IS_ERR (ctx))return ctx; +/* +* One for the xarray and one for the caller. We need to grab +* the reference *prior* to making the ctx visble to userspace +* in gem_context_register(), as at any point after that +* userspace can try to race us with another thread destroying +* the context under our feet. +*/ +i915_gem_context_get (ctx); +gem_context_register (ctx, file_priv, id); old =xa_erase (&file_priv->proto_context_xa, id);GEM_BUG_ON (old != pc);proto_context_close (file_priv->dev_priv, pc); -/* One for the xarray and one for the caller */ -return i915_gem_context_get (ctx); +return ctx; } struct i915_gem_context *
drivers/gpu/drm/i915/gt/intel_engine_cs.c +6 -1
@@ -1343,8 +1343,13 @@ int intel_engines_init(struct intel_gt *gt)return err; err =setup (engine); -if (err) +if (err) { +intel_engine_cleanup_common (engine);return err; + } + +/* The backend should now be responsible for cleanup */ +GEM_BUG_ON (engine->release ==NULL ); err =engine_init_common (engine);if (err)
drivers/gpu/drm/i915/gt/intel_gt_sysfs.c +7 -8
@@ -22,11 +22,9 @@ bool is_object_gt(struct kobject *kobj)return !strncmp (kobj->name,"gt" ,2 ); } -struct intel_gt *intel_gt_sysfs_get_drvdata (struct device *dev, +struct intel_gt *intel_gt_sysfs_get_drvdata (struct kobject *kobj,const char *name) { -struct kobject *kobj = &dev->kobj; -/* * We are interested at knowing from where the interface * has been called, whether it's called from gt/ or from
@@ -38,6 +36,7 @@ struct intel_gt *intel_gt_sysfs_get_drvdata(struct device *dev,* "struct drm_i915_private *" type. */ if (!is_object_gt (kobj)) { +struct device *dev =kobj_to_dev (kobj);struct drm_i915_private *i915 =kdev_minor_to_i915 (dev);return to_gt (i915);
@@ -51,18 +50,18 @@ static struct kobject *gt_get_parent_obj(struct intel_gt *gt)return >->i915->drm.primary->kdev->kobj; } -static ssize_t id_show (struct device *dev, -struct device_attribute *attr, +static ssize_t id_show (struct kobject *kobj, +struct kobj_attribute *attr,char *buf) { -struct intel_gt *gt =intel_gt_sysfs_get_drvdata (dev, attr->attr.name); +struct intel_gt *gt =intel_gt_sysfs_get_drvdata (kobj, attr->attr.name);return sysfs_emit (buf,"%u\n" , gt->info.id); } -static DEVICE_ATTR_RO (id); +static struct kobj_attribute attr_id =__ATTR_RO (id);static struct attribute *id_attrs[] = { - &dev_attr_id.attr, + &attr_id.attr,NULL , };ATTRIBUTE_GROUPS (id);
drivers/gpu/drm/i915/gt/intel_gt_sysfs.h +1 -1
@@ -30,7 +30,7 @@ static inline struct intel_gt *kobj_to_gt(struct kobject *kobj)void intel_gt_sysfs_register (struct intel_gt *gt);void intel_gt_sysfs_unregister (struct intel_gt *gt); -struct intel_gt *intel_gt_sysfs_get_drvdata (struct device *dev, +struct intel_gt *intel_gt_sysfs_get_drvdata (struct kobject *kobj,const char *name);#endif /* SYSFS_GT_H */
drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c +212 -249
735 lines not on this page · raw message
drivers/gpu/drm/i915/gt/intel_reset.c +28 -6
@@ -278,6 +278,7 @@ static int ilk_do_reset(struct intel_gt *gt, intel_engine_mask_t engine_mask,static int gen6_hw_domain_reset (struct intel_gt *gt,u32 hw_domain_mask) {struct intel_uncore *uncore = gt->uncore; +int loops =2 ;int err;/*
@@ -285,18 +286,39 @@ static int gen6_hw_domain_reset(struct intel_gt *gt, u32 hw_domain_mask)* for fifo space for the write or forcewake the chip for * the read */ -intel_uncore_write_fw (uncore,GEN6_GDRST , hw_domain_mask); +do { +intel_uncore_write_fw (uncore,GEN6_GDRST , hw_domain_mask); -/* Wait for the device to ack the reset requests */ - err =__intel_wait_for_register_fw (uncore, -GEN6_GDRST , hw_domain_mask,0 , -500 ,0 , -NULL ); +/* +* Wait for the device to ack the reset requests. +* +* On some platforms, e.g. Jasperlake, we see that the +* engine register state is not cleared until shortly after +* GDRST reports completion, causing a failure as we try +* to immediately resume while the internal state is still +* in flux. If we immediately repeat the reset, the second +* reset appears to serialise with the first, and since +* it is a no-op, the registers should retain their reset +* value. However, there is still a concern that upon +* leaving the second reset, the internal engine state +* is still in flux and not ready for resuming. +*/ + err =__intel_wait_for_register_fw (uncore,GEN6_GDRST , + hw_domain_mask,0 , +2000 ,0 , +NULL ); + }while (err ==0 && --loops);if (err)GT_TRACE (gt,"Wait for 0x%08x engines reset failed\n" , hw_domain_mask); +/* +* As we have observed that the engine state is still volatile +* after GDRST is acked, impose a small delay to let everything settle. +*/ +udelay (50 ); +return err; }
drivers/gpu/drm/i915/i915_vma.c +1 -1
@@ -2114,7 +2114,7 @@ int i915_vma_unbind_async(struct i915_vma *vma, bool trylock_vm)if (!obj->mm.rsgt)return -EBUSY ; - err =dma_resv_reserve_fences (obj->base.resv,1 ); + err =dma_resv_reserve_fences (obj->base.resv,2 );if (err)return -EBUSY ;
drivers/gpu/drm/msm/adreno/adreno_gpu.h +4 -6
@@ -29,11 +29,9 @@ enum { ADRENO_FW_MAX, }; -enum adreno_quirks { -ADRENO_QUIRK_TWO_PASS_USE_WFI =1 , -ADRENO_QUIRK_FAULT_DETECT_MASK =2 , -ADRENO_QUIRK_LMLOADKILL_DISABLE =3 , -}; +#define ADRENO_QUIRK_TWO_PASS_USE_WFI BIT(0) +#define ADRENO_QUIRK_FAULT_DETECT_MASK BIT(1) +#define ADRENO_QUIRK_LMLOADKILL_DISABLE BIT(2)struct adreno_rev {uint8_t core;
@@ -65,7 +63,7 @@ struct adreno_info {const char *name;const char *fw[ADRENO_FW_MAX ];uint32_t gmem; -enum adreno_quirks quirks; +u64 quirks;struct msm_gpu *(*init)(struct drm_device *dev);const char *zapfw;u32 inactive_period;
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c +1 -2
@@ -132,7 +132,6 @@ static void dpu_encoder_phys_wb_set_qos(struct dpu_encoder_phys *phys_enc)* dpu_encoder_phys_wb_setup_fb - setup output framebuffer * @phys_enc: Pointer to physical encoder * @fb: Pointer to output framebuffer -* @wb_roi: Pointer to output region of interest */ static void dpu_encoder_phys_wb_setup_fb (struct dpu_encoder_phys *phys_enc,struct drm_framebuffer *fb)
@@ -692,7 +691,7 @@ static void dpu_encoder_phys_wb_init_ops(struct dpu_encoder_phys_ops *ops)/** * dpu_encoder_phys_wb_init - initialize writeback encoder -* @init: Pointer to init info structure with initialization params +* @p: Pointer to init info structure with initialization params */ struct dpu_encoder_phys *dpu_encoder_phys_wb_init (struct dpu_enc_phys_init_params *p)
drivers/gpu/drm/msm/dp/dp_aux.c +4 -0
@@ -423,6 +423,10 @@ void dp_aux_isr(struct drm_dp_aux *dp_aux) isr =dp_catalog_aux_get_irq (aux->catalog); +/* no interrupts pending, return immediately */ +if (!isr) +return ; +if (!aux->cmd_busy)return ;
drivers/gpu/drm/msm/msm_drv.c +1 -1
@@ -1271,7 +1271,7 @@ void msm_drv_shutdown(struct platform_device *pdev)* msm_drm_init, drm_dev->registered is used as an indicator that the * shutdown will be successful.
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/virtio/virtgpu_ioctl.c +17 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/ttm_object.c +60 -96
156 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c +26 -36
62 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +55 -16
71 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +85 -105
190 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_hashtab.c deleted +0 -199
199 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_hashtab.h deleted +0 -83
83 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +0 -33
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_validation.c +27 -28
55 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_validation.h +6 -20
Lines of this file are not shown. View the raw message.
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/iommu/arm/arm-smmu/arm-smmu.c +22 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_gnss.c +15 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_defines.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_ptp.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +9 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/cgx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/cgx.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +2 -11
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c +9 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ethtool.c +14 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +38 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c +13 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +1 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c +0 -26
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/nfc/pn533/usb.c +41 -3
44 lines not on this page · raw message
drivers/platform/surface/aggregator/controller.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/platform/surface/aggregator/ssh_request_layer.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-privacy.c +31 -10
41 lines not on this page · raw message
drivers/platform/x86/intel/int3472/clk_and_regulator.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/int3472/discrete.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/tty/hvc/hvc_xen.c +29 -17
46 lines not on this page · raw message
fs/cifs/smb1ops.c +34 -29
63 lines not on this page · raw message
fs/nfsd/filecache.c +269 -215
484 lines not on this page · raw message
fs/nfsd/trace.h +61 -68
129 lines not on this page · raw message
io_uring/poll.c +34 -16
50 lines not on this page · raw message
kernel/sched/core.c +36 -5
41 lines not on this page · raw message
net/core/gro.c +36 -35
71 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +39 -14
53 lines not on this page · raw message
sound/soc/intel/common/soc-acpi-intel-adl-match.c +15 -3
Lines of this file are not shown. View the raw message.
sound/soc/qcom/common.c +0 -114
114 lines not on this page · raw message
sound/soc/qcom/sdw.c new file +123 -0
123 lines not on this page · raw message
tools/perf/builtin-kmem.c +50 -15
65 lines not on this page · raw message
tools/testing/selftests/net/af_unix/test_unix_oob.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/l2_tos_ttl_inherit.sh +129 -73
202 lines not on this page · raw message
tools/testing/selftests/netfilter/nft_trans_stress.sh +9 -7
Lines of this file are not shown. View the raw message.
tools/testing/selftests/netfilter/settings new file +1 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.