mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-25 00:52:45 -04:00
drm/i915: drop the __i915_active_call pointer packing
We use some of the lower bits of the retire function pointer for potential flags, which is quite thorny, since the caller needs to remember to give the function the correct alignment with __i915_active_call, otherwise we might incorrectly unpack the pointer and jump to some garbage address later. Instead of all this let's just pass the flags along as a separate parameter. Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Suggested-by: Daniel Vetter <daniel@ffwll.ch> References:ca419f407b("drm/i915: Fix crash in auto_retire") References:d8e44e4dd2("drm/i915/overlay: Fix active retire callback alignment") References:fd5f262db1("drm/i915/selftests: Fix active retire callback alignment") Signed-off-by: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210504164136.96456-1-matthew.auld@intel.com
This commit is contained in:
@@ -94,7 +94,6 @@ static int __i915_vma_active(struct i915_active *ref)
|
||||
return i915_vma_tryget(active_to_vma(ref)) ? 0 : -ENOENT;
|
||||
}
|
||||
|
||||
__i915_active_call
|
||||
static void __i915_vma_retire(struct i915_active *ref)
|
||||
{
|
||||
i915_vma_put(active_to_vma(ref));
|
||||
@@ -125,7 +124,7 @@ vma_create(struct drm_i915_gem_object *obj,
|
||||
vma->size = obj->base.size;
|
||||
vma->display_alignment = I915_GTT_MIN_ALIGNMENT;
|
||||
|
||||
i915_active_init(&vma->active, __i915_vma_active, __i915_vma_retire);
|
||||
i915_active_init(&vma->active, __i915_vma_active, __i915_vma_retire, 0);
|
||||
|
||||
/* Declare ourselves safe for use inside shrinkers */
|
||||
if (IS_ENABLED(CONFIG_LOCKDEP)) {
|
||||
|
||||
Reference in New Issue
Block a user