Consolidates the "which is the vm my execbuf runs in" code a bit. We
do some get/put which isn't really required, but all the other users
want the refcounting, and I figured doing a function just for this
getparam to avoid 2 atomis is a bit much.

Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
Cc: Jon Bloomfield <jon.bloomfi...@intel.com>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
Cc: Daniel Vetter <daniel.vet...@ffwll.ch>
Cc: "Thomas Hellström" <thomas.hellst...@linux.intel.com>
Cc: Matthew Auld <matthew.a...@intel.com>
Cc: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Cc: Dave Airlie <airl...@redhat.com>
Cc: Jason Ekstrand <ja...@jlekstrand.net>
---
 drivers/gpu/drm/i915/gem/i915_gem_context.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c 
b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index cff72679ad7c..6263563e15d6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -2124,6 +2124,7 @@ int i915_gem_context_getparam_ioctl(struct drm_device 
*dev, void *data,
        struct drm_i915_file_private *file_priv = file->driver_priv;
        struct drm_i915_gem_context_param *args = data;
        struct i915_gem_context *ctx;
+       struct i915_address_space *vm;
        int ret = 0;
 
        ctx = i915_gem_context_lookup(file_priv, args->ctx_id);
@@ -2133,12 +2134,10 @@ int i915_gem_context_getparam_ioctl(struct drm_device 
*dev, void *data,
        switch (args->param) {
        case I915_CONTEXT_PARAM_GTT_SIZE:
                args->size = 0;
-               rcu_read_lock();
-               if (rcu_access_pointer(ctx->vm))
-                       args->value = rcu_dereference(ctx->vm)->total;
-               else
-                       args->value = to_i915(dev)->ggtt.vm.total;
-               rcu_read_unlock();
+               vm = i915_gem_context_get_eb_vm(ctx);
+               args->value = vm->total;
+               i915_vm_put(vm);
+
                break;
 
        case I915_CONTEXT_PARAM_NO_ERROR_CAPTURE:
-- 
2.32.0

Reply via email to