drm/i915: Add an i915_gem_vm_lookup helper
This is the VM equivalent of i915_gem_context_lookup. It's only used once in this patch but future patches will need to duplicate this lookup code so it's better to have it in a helper. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210708154835.528166-20-jason@jlekstrand.net
This commit is contained in:
parent
263ae12c3c
commit
bc2ceb7a08
2 changed files with 15 additions and 5 deletions
|
|
@ -1311,11 +1311,7 @@ static int set_ppgtt(struct drm_i915_file_private *file_priv,
|
|||
if (upper_32_bits(args->value))
|
||||
return -ENOENT;
|
||||
|
||||
rcu_read_lock();
|
||||
vm = xa_load(&file_priv->vm_xa, args->value);
|
||||
if (vm && !kref_get_unless_zero(&vm->ref))
|
||||
vm = NULL;
|
||||
rcu_read_unlock();
|
||||
vm = i915_gem_vm_lookup(file_priv, args->value);
|
||||
if (!vm)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
|||
|
|
@ -1861,6 +1861,20 @@ i915_gem_context_lookup(struct drm_i915_file_private *file_priv, u32 id)
|
|||
return ctx;
|
||||
}
|
||||
|
||||
static inline struct i915_address_space *
|
||||
i915_gem_vm_lookup(struct drm_i915_file_private *file_priv, u32 id)
|
||||
{
|
||||
struct i915_address_space *vm;
|
||||
|
||||
rcu_read_lock();
|
||||
vm = xa_load(&file_priv->vm_xa, id);
|
||||
if (vm && !kref_get_unless_zero(&vm->ref))
|
||||
vm = NULL;
|
||||
rcu_read_unlock();
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
/* i915_gem_evict.c */
|
||||
int __must_check i915_gem_evict_something(struct i915_address_space *vm,
|
||||
u64 min_size, u64 alignment,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue