mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/i915: Use the vma resource as argument for gtt binding / unbinding
When introducing asynchronous unbinding, the vma itself may no longer be alive when the actual binding or unbinding takes place. Update the gtt i915_vma_ops accordingly to take a struct i915_vma_resource instead of a struct i915_vma for the bind_vma() and unbind_vma() ops. Similarly change the insert_entries() op for struct i915_address_space. Replace a couple of i915_vma_snapshot members with their newly introduced i915_vma_resource counterparts, since they have the same lifetime. Also make sure to avoid changing the struct i915_vma_flags (in particular the bind flags) async. That should now only be done sync under the vm mutex. v2: - Update the vma_res::bound_flags when binding to the aliased ggtt v6: - Remove I915_VMA_ALLOC_BIT (Matthew Auld) - Change some members of struct i915_vma_resource from unsigned long to u64 (Matthew Auld) v7: - Fix vma resource size parameters to be u64 rather than unsigned long (Matthew Auld) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220110172219.107131-3-thomas.hellstrom@linux.intel.com
This commit is contained in:
@@ -1040,9 +1040,9 @@ i915_vma_coredump_create(const struct intel_gt *gt,
|
||||
strcpy(dst->name, vsnap->name);
|
||||
dst->next = NULL;
|
||||
|
||||
dst->gtt_offset = vsnap->gtt_offset;
|
||||
dst->gtt_size = vsnap->gtt_size;
|
||||
dst->gtt_page_sizes = vsnap->page_sizes;
|
||||
dst->gtt_offset = vsnap->vma_resource->start;
|
||||
dst->gtt_size = vsnap->vma_resource->node_size;
|
||||
dst->gtt_page_sizes = vsnap->vma_resource->page_sizes_gtt;
|
||||
dst->unused = 0;
|
||||
|
||||
ret = -EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user