FAILED: patch "[PATCH] drm/i915: Move fd_install after last use of fence" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
251e8c5b1b1f ("drm/i915: Move fd_install after last use of fence")544460c33821 ("drm/i915: Multi-BB execbuf")5851387a422c ("drm/i915/guc: Implement no mid batch preemption for multi-lrc") e5e32171a2cf ("drm/i915/guc: Connect UAPI to GuC multi-lrc interface") d38a9294491d ("drm/i915/guc: Update debugfs for GuC multi-lrc")bc955204919e ("drm/i915/guc: Insert submit fences between requests in parent-child relationship") 6b540bf6f143 ("drm/i915/guc: Implement multi-lrc submission")99b47aaddfa9 ("drm/i915/guc: Implement parallel context pin / unpin functions") c2aa552ff09d ("drm/i915/guc: Add multi-lrc context registration")3897df4c0187 ("drm/i915/guc: Introduce context parent-child relationship") 4f3059dc2dbb ("drm/i915: Add logical engine mapping")1a52faed3131 ("drm/i915/guc: Take GT PM ref when deregistering context") 0ea92ace8b95 ("drm/i915/guc: Move GuC guc_id allocation under submission state sub-struct") 0d8ee5ba8db4 ("drm/i915: Don't back up pinned LMEM context images and rings during suspend") c56ce9565374 ("drm/i915 Implement LMEM backup and restore for suspend / resume") 0d9388635a22 ("drm/i915/ttm: Implement a function to copy the contents of two TTM-based objects") 48b096126954 ("drm/i915: Move __i915_gem_free_object to ttm_bo_destroy") 4f41ddc7c7ee ("drm/i915/guc: Add GuC kernel doc")af5bc9f21e3a ("drm/i915/guc: Drop guc_active move everything into guc_state") 3cb3e3434b9f ("drm/i915/guc: Move fields protected by guc->contexts_lock into sub structure")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 251e8c5b1b1fadcc387a8e618c7437d330bdac3e Mon Sep 17 00:00:00 2001
From: Rob Clark <[email protected]>
Date: Fri, 3 Feb 2023 08:49:20 -0800
Subject: [PATCH] drm/i915: Move fd_install after last use of fence
Because eb_composite_fence_create() drops the fence_array reference after creation of the sync_file, only the sync_file holds a ref to the fence. But fd_install() makes that reference visable to userspace, so it must be the last thing we do with the fence.
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c +7 -7
@@ -3483,6 +3483,13 @@ i915_gem_do_execbuffer(struct drm_device *dev, eb.composite_fence : &eb.requests[0]->fence); +if (unlikely (eb.gem_context->syncobj)) { +drm_syncobj_replace_fence (eb.gem_context->syncobj, + eb.composite_fence ? + eb.composite_fence : + &eb.requests[0 ]->fence); + } +if (out_fence) {if (err ==0 ) {fd_install (out_fence_fd, out_fence->file);
@@ -3494,13 +3501,6 @@ i915_gem_do_execbuffer(struct drm_device *dev, } } -if (unlikely (eb.gem_context->syncobj)) { -drm_syncobj_replace_fence (eb.gem_context->syncobj, - eb.composite_fence ? - eb.composite_fence : - &eb.requests[0 ]->fence); - } -if (!out_fence && eb.composite_fence)dma_fence_put (eb.composite_fence);