android_kernel_motorola_sm6375/include/drm
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Matthew Brost 549a9c78c3 drm/sched: Increment job count before swapping tail spsc queue
commit 8af39ec5cf2be522c8eb43a3d8005ed59e4daaee upstream.

A small race exists between spsc_queue_push and the run-job worker, in
which spsc_queue_push may return not-first while the run-job worker has
already idled due to the job count being zero. If this race occurs, job
scheduling stops, leading to hangs while waiting on the job’s DMA
fences.

Seal this race by incrementing the job count before appending to the
SPSC queue.

This race was observed on a drm-tip 6.16-rc1 build with the Xe driver in
an SVM test case.

Fixes: 1b1f42d8fd ("drm: move amd_gpu_scheduler into common location")
Fixes: 27105db6c6 ("drm/amdgpu: Add SPSC queue to scheduler.")
Cc: stable@vger.kernel.org
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Link: https://lore.kernel.org/r/20250613212013.719312-1-matthew.brost@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-17 18:25:03 +02:00
..
bridge
i2c
ttm
amd_asic_type.h
ati_pcigart.h
drm_agpsupport.h
drm_atomic.h drm/atomic: clarify the rules around drm_atomic_state->allow_modeset 2025-06-04 14:32:34 +02:00
drm_atomic_helper.h
drm_atomic_state_helper.h
drm_atomic_uapi.h
drm_audio_component.h
drm_auth.h
drm_blend.h
drm_bridge.h drm/bridge: Fix typo in post_disable() description 2024-01-25 14:34:27 -08:00
drm_cache.h
drm_client.h
drm_color_mgmt.h
drm_connector.h
drm_crtc.h drm: Initialize struct drm_crtc_state.no_vblank from device settings 2023-03-11 16:43:46 +01:00
drm_crtc_helper.h
drm_damage_helper.h
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h
drm_displayid.h
drm_dp_dual_mode_helper.h
drm_dp_helper.h drm/display/dp: Fix the DP DSC Receiver cap size 2023-08-30 16:27:26 +02:00
drm_dp_mst_helper.h
drm_drv.h
drm_dsc.h
drm_edid.h drm: fix EDID struct for old ARM OABI format 2022-06-14 18:11:31 +02:00
drm_encoder.h
drm_encoder_slave.h
drm_fb_cma_helper.h
drm_fb_helper.h
drm_file.h
drm_fixed.h drm: Don't treat 0 as -1 in drm_fixp2int_ceil 2024-03-26 18:22:19 -04:00
drm_flip_work.h
drm_format_helper.h
drm_fourcc.h
drm_framebuffer.h
drm_gem.h
drm_gem_cma_helper.h
drm_gem_framebuffer_helper.h
drm_gem_shmem_helper.h
drm_gem_vram_helper.h
drm_hashtab.h
drm_hdcp.h
drm_ioctl.h drm: Return -ENOTTY for non-drm ioctls 2021-07-28 13:31:01 +02:00
drm_irq.h
drm_lease.h
drm_legacy.h
drm_mipi_dbi.h
drm_mipi_dsi.h drm/mipi-dsi: Fix detach call without attach 2024-02-23 08:25:00 +01:00
drm_mm.h
drm_mode_config.h
drm_mode_object.h
drm_modes.h
drm_modeset_helper.h
drm_modeset_helper_vtables.h
drm_modeset_lock.h
drm_of.h
drm_os_linux.h
drm_panel.h drm/panel: Add and fill drm_panel type field 2023-07-27 08:37:29 +02:00
drm_pci.h
drm_pciids.h
drm_plane.h
drm_plane_helper.h
drm_prime.h
drm_print.h drm/printer: Allow NULL data in devcoredump printer 2024-11-08 16:20:39 +01:00
drm_probe_helper.h
drm_property.h
drm_rect.h
drm_scdc_helper.h
drm_self_refresh_helper.h
drm_simple_kms_helper.h drm: Initialize struct drm_crtc_state.no_vblank from device settings 2023-03-11 16:43:46 +01:00
drm_syncobj.h
drm_sysfs.h
drm_util.h
drm_utils.h
drm_vblank.h drm: Initialize struct drm_crtc_state.no_vblank from device settings 2023-03-11 16:43:46 +01:00
drm_vma_manager.h
drm_vram_mm_helper.h
drm_writeback.h
drmP.h
gma_drm.h
gpu_scheduler.h
i915_component.h
i915_drm.h
i915_mei_hdcp_interface.h
i915_pciids.h
intel-gtt.h iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header 2020-11-24 13:29:17 +01:00
intel_lpe_audio.h
spsc_queue.h drm/sched: Increment job count before swapping tail spsc queue 2025-07-17 18:25:03 +02:00