linux/drivers/gpu/drm
Bas Nieuwenhuizen 2737d0bc21 drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
commit b19926d4f3 upstream.

dma_fence_chain_find_seqno only ever returns the top fence in the
chain or an unsignalled fence. Hence if we request a seqno that
is already signalled it returns a NULL fence. Some callers are
not prepared to handle this, like the syncobj transfer functions
for example.

This behavior is "new" with timeline syncobj and it looks like
not all callers were updated. To fix this behavior make sure
that a successful drm_sync_find_fence always returns a non-NULL
fence.

v2: Move the fix to drm_syncobj_find_fence from the transfer
    functions.

Fixes: ea569910cb ("drm/syncobj: add transition iotcls between binary and timeline v2")
Cc: stable@vger.kernel.org
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211208023935.17018-1-bas@basnieuwenhuizen.nl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-14 11:32:39 +01:00
..
amd drm/amdkfd: fix boot failure when iommu is disabled in Picasso. 2021-12-14 11:32:36 +01:00
arc
arm drm/arm/malidp: Always list modifiers 2021-07-19 09:44:58 +02:00
armada drm-misc-next for 5.10: 2020-09-23 09:52:24 +10:00
aspeed drm/aspeed: Fix Kconfig warning & subsequent build errors 2020-12-30 11:52:56 +01:00
ast Revert "drm/ast: Remove reference to struct drm_device.pdev" 2021-07-20 16:05:37 +02:00
atmel-hlcdc
bochs
bridge drm/bridge: lt9611: Fix handling of 4k panels 2021-09-22 12:27:54 +02:00
etnaviv drm/etnaviv: add missing MMU context put when reaping MMU mapping 2021-09-22 12:27:55 +02:00
exynos drm/exynos: Always initialize mapping in exynos_drm_register_dma() 2021-09-18 13:40:30 +02:00
fsl-dcu
gma500 drm/gma500: Fix end of loop tests for list_for_each_entry 2021-09-15 09:50:31 +02:00
hisilicon drm/hisilicon: Fix use-after-free 2021-03-07 12:34:11 +01:00
i2c
i810
i915 drm/i915/dp: Ensure sink rate values are always valid 2021-11-26 10:39:21 +01:00
imx drm/imx: imx-ldb: fix out of bounds array access warning 2021-04-16 11:43:20 +02:00
ingenic drm/ingenic: Switch IPU plane to type OVERLAY 2021-07-20 16:05:37 +02:00
lib
lima drm/lima: fix reference leak in lima_pm_busy 2021-03-04 11:37:49 +01:00
mcde drm/mcde: Fix off by 10^3 in calculation 2021-06-16 12:01:44 +02:00
mediatek drm/mediatek: Add AAL output size configuration 2021-08-26 08:35:43 -04:00
meson drm/meson: fix colour distortion from HDR set during vendor u-boot 2021-08-18 08:59:11 +02:00
mga
mgag200 drm/mgag200: Select clock in PLL update functions 2021-09-18 13:40:37 +02:00
msm drm/msm: Do hw_init() before capturing GPU state 2021-12-08 09:03:26 +01:00
mxsfb drm: mxsfb: Fix NULL pointer dereference crash on unload 2021-10-27 09:56:54 +02:00
nouveau drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks 2021-12-01 09:19:03 +01:00
omapdrm drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() 2020-12-30 11:53:13 +01:00
panel drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel 2021-10-27 09:56:49 +02:00
panfrost drm/panfrost: Clamp lock region to Bifrost minimum 2021-09-18 13:40:38 +02:00
pl111 drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends 2021-07-14 16:56:19 +02:00
qxl drm: qxl: ensure surf.data is ininitialized 2021-07-14 16:56:20 +02:00
r128
radeon treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02:00
rcar-du drm: rcar-du: Fix the return check of of_parse_phandle and of_find_device_by_node 2021-03-04 11:37:38 +01:00
rockchip drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused 2021-09-22 12:27:57 +02:00
savage
scheduler drm/sched: Avoid data corruptions 2021-07-19 09:44:40 +02:00
selftests
shmobile
sis
sti
stm drm/stm: Fix bus_flags handling 2021-05-14 09:50:22 +02:00
sun4i drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY 2021-12-08 09:03:18 +01:00
tdfx
tegra drm/tegra: Don't set allow_fb_modifiers explicitly 2021-07-19 09:44:58 +02:00
tidss
tilcdc drm/tilcdc: send vblank event when disabling crtc 2021-05-14 09:50:21 +02:00
tiny drm: Use USB controller's DMA mask when importing dmabufs 2021-03-17 17:06:19 +01:00
ttm drm/ttm: stop calling tt_swapin in vm_access 2021-11-18 14:04:04 +01:00
tve200 drm/tve200: Fix handling of platform_get_irq() error 2020-12-30 11:52:56 +01:00
udl drm/udl: fix control-message timeout 2021-11-26 10:39:20 +01:00
v3d drm/v3d: fix wait for TMU write combiner flush 2021-11-18 14:04:02 +01:00
vboxvideo
vc4 drm/vc4: fix error code in vc4_create_object() 2021-12-01 09:19:04 +01:00
vgem
via
virtio virtio-gpu: fix possible memory allocation failure 2021-11-18 14:04:02 +01:00
vkms drm/vkms: fix misuse of WARN_ON 2021-05-11 14:47:26 +02:00
vmwgfx drm/vmwgfx: fix potential UAF in vmwgfx_surface.c 2021-09-18 13:40:27 +02:00
xen gpu/xen: Fix a use after free in xen_drm_drv_init 2021-04-21 13:00:52 +02:00
xlnx drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers 2021-09-18 13:40:27 +02:00
zte drm/zte: Don't select DRM_KMS_FB_HELPER 2021-07-19 09:44:36 +02:00
drm_agpsupport.c
drm_atomic_helper.c drm/atomic: put state on error path 2021-01-27 11:54:55 +01:00
drm_atomic_state_helper.c
drm_atomic_uapi.c
drm_atomic.c
drm_auth.c drm: protect drm_master pointers in drm_lease.c 2021-09-18 13:40:19 +02:00
drm_blend.c
drm_bridge_connector.c
drm_bridge.c drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() 2021-07-14 16:56:15 +02:00
drm_bufs.c
drm_cache.c
drm_client_modeset.c
drm_client.c
drm_color_mgmt.c
drm_connector.c
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c
drm_debugfs_crc.c
drm_debugfs.c drm: avoid blocking in drm_clients_info's rcu section 2021-09-18 13:40:19 +02:00
drm_dma.c
drm_dp_aux_dev.c drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() 2020-12-30 11:54:19 +01:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info() 2021-07-19 09:44:57 +02:00
drm_dp_mst_topology_internal.h
drm_dp_mst_topology.c drm/dp_mst: Fix return code on sideband message failure 2021-09-18 13:40:37 +02:00
drm_drv.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read 2021-10-20 11:45:05 +02:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Add missed unlocks in setcmap_legacy() 2021-03-04 11:37:36 +01:00
drm_file.c drm: serialize drm_file.master with a new spinlock 2021-09-18 13:40:19 +02:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c drm/shmem-helpers: vunmap: Don't put pages for dma-buf 2021-03-17 17:06:19 +01:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: Fix use of top-down placement 2020-11-20 05:20:48 +10:00
drm_gem.c drm/shme-helpers: Fix dma_buf_mmap forwarding bug 2020-10-28 12:27:41 +01:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_ioc32.c drm: Copy drm_wait_vblank to user before returning 2021-09-03 10:09:27 +02:00
drm_ioctl.c drm: Return -ENOTTY for non-drm ioctls 2021-07-28 14:35:47 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: protect drm_master pointers in drm_lease.c 2021-09-18 13:40:19 +02:00
drm_legacy_misc.c
drm_legacy.h
drm_lock.c
drm_managed.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_memory.c
drm_mipi_dbi.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm/of: free the iterator object on failure 2021-09-15 09:50:32 +02:00
drm_panel_orientation_quirks.c drm/panel-orientation-quirks: add Valve Steam Deck 2021-11-18 14:03:52 +01:00
drm_panel.c
drm_pci.c
drm_plane_helper.c drm/plane-helper: fix uninitialized variable reference 2021-11-18 14:04:22 +01:00
drm_plane.c
drm_prime.c drm: kernel-doc: add description for a new function parameter 2020-10-27 11:21:04 +01:00
drm_print.c
drm_probe_helper.c drm/probe-helper: Check epoch counter in output_poll_execute() 2021-05-14 09:50:23 +02:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence. 2021-12-14 11:32:39 +01:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig drm/radeon: fix AGP dependency 2021-03-30 14:31:51 +02:00
Makefile