static inline bool is_gvt_request(struct i915_request *req)
 {
-       return i915_gem_context_force_single_submission(req->ctx);
+       return i915_gem_context_force_single_submission(req->gem_context);
 }
 
 static void save_ring_hw_state(struct intel_vgpu *vgpu, int ring_id)
        struct i915_request *req = workload->req;
 
        if (IS_KABYLAKE(req->i915) &&
-           is_inhibit_context(req->ctx, req->engine->id))
+           is_inhibit_context(req->gem_context, req->engine->id))
                intel_vgpu_restore_inhibit_context(vgpu, req);
 
        /* allocate shadow ring buffer */
 
                                                   struct i915_request,
                                                   client_link);
                rcu_read_lock();
-               task = pid_task(request && request->ctx->pid ?
-                               request->ctx->pid : file->pid,
+               task = pid_task(request && request->gem_context->pid ?
+                               request->gem_context->pid : file->pid,
                                PIDTYPE_PID);
                print_file_stats(m, task ? task->comm : "<unknown>", stats);
                rcu_read_unlock();
 
 static void engine_skip_context(struct i915_request *request)
 {
        struct intel_engine_cs *engine = request->engine;
-       struct i915_gem_context *hung_ctx = request->ctx;
+       struct i915_gem_context *hung_ctx = request->gem_context;
        struct i915_timeline *timeline = request->timeline;
        unsigned long flags;
 
        spin_lock_nested(&timeline->lock, SINGLE_DEPTH_NESTING);
 
        list_for_each_entry_continue(request, &engine->timeline.requests, link)
-               if (request->ctx == hung_ctx)
+               if (request->gem_context == hung_ctx)
                        skip_request(request);
 
        list_for_each_entry(request, &timeline->requests, link)
        }
 
        if (stalled) {
-               i915_gem_context_mark_guilty(request->ctx);
+               i915_gem_context_mark_guilty(request->gem_context);
                skip_request(request);
 
                /* If this context is now banned, skip all pending requests. */
-               if (i915_gem_context_is_banned(request->ctx))
+               if (i915_gem_context_is_banned(request->gem_context))
                        engine_skip_context(request);
        } else {
                /*
                 */
                request = i915_gem_find_active_request(engine);
                if (request) {
-                       i915_gem_context_mark_innocent(request->ctx);
+                       i915_gem_context_mark_innocent(request->gem_context);
                        dma_fence_set_error(&request->fence, -EAGAIN);
 
                        /* Rewind the engine to replay the incomplete rq */
 
 static void record_request(struct i915_request *request,
                           struct drm_i915_error_request *erq)
 {
-       erq->context = request->ctx->hw_id;
+       struct i915_gem_context *ctx = request->gem_context;
+
+       erq->context = ctx->hw_id;
        erq->sched_attr = request->sched.attr;
-       erq->ban_score = atomic_read(&request->ctx->ban_score);
+       erq->ban_score = atomic_read(&ctx->ban_score);
        erq->seqno = request->global_seqno;
        erq->jiffies = request->emitted_jiffies;
        erq->start = i915_ggtt_offset(request->ring->vma);
        erq->tail = request->tail;
 
        rcu_read_lock();
-       erq->pid = request->ctx->pid ? pid_nr(request->ctx->pid) : 0;
+       erq->pid = ctx->pid ? pid_nr(ctx->pid) : 0;
        rcu_read_unlock();
 }
 
 
                request = i915_gem_find_active_request(engine);
                if (request) {
+                       struct i915_gem_context *ctx = request->gem_context;
                        struct intel_ring *ring;
 
-                       ee->vm = request->ctx->ppgtt ?
-                               &request->ctx->ppgtt->base : &ggtt->base;
+                       ee->vm = ctx->ppgtt ? &ctx->ppgtt->base : &ggtt->base;
 
-                       record_context(&ee->context, request->ctx);
+                       record_context(&ee->context, ctx);
 
                        /* We need to copy these to an anonymous buffer
                         * as the simplest method to avoid being overwritten
 
                        ee->ctx =
                                i915_error_object_create(i915,
-                                                        to_intel_context(request->ctx,
+                                                        to_intel_context(ctx,
                                                                          engine)->state);
 
                        error->simulated |=
-                               i915_gem_context_no_error_capture(request->ctx);
+                               i915_gem_context_no_error_capture(ctx);
 
                        ee->rq_head = request->head;
                        ee->rq_post = request->postfix;
 
         */
        if (engine->last_retired_context)
                intel_context_unpin(engine->last_retired_context, engine);
-       engine->last_retired_context = rq->ctx;
+       engine->last_retired_context = rq->gem_context;
 }
 
 static void __retire_engine_upto(struct intel_engine_cs *engine,
        i915_request_remove_from_client(request);
 
        /* Retirement decays the ban score as it is a sign of ctx progress */
-       atomic_dec_if_positive(&request->ctx->ban_score);
-       intel_context_unpin(request->ctx, request->engine);
+       atomic_dec_if_positive(&request->gem_context->ban_score);
+       intel_context_unpin(request->gem_context, request->engine);
 
        __retire_engine_upto(request->engine, request);
 
        INIT_LIST_HEAD(&rq->active_list);
        rq->i915 = i915;
        rq->engine = engine;
-       rq->ctx = ctx;
+       rq->gem_context = ctx;
        rq->ring = ring;
        rq->timeline = ring->timeline;
        GEM_BUG_ON(rq->timeline == &engine->timeline);
                goto err_unwind;
 
        /* Keep a second pin for the dual retirement along engine and ring */
-       __intel_context_pin(rq->ctx, engine);
+       __intel_context_pin(rq->gem_context, engine);
 
        /* Check that we didn't interrupt ourselves with a new request */
        GEM_BUG_ON(rq->timeline->seqno != rq->fence.seqno);
        local_bh_disable();
        rcu_read_lock(); /* RCU serialisation for set-wedged protection */
        if (engine->schedule)
-               engine->schedule(request, &request->ctx->sched);
+               engine->schedule(request, &request->gem_context->sched);
        rcu_read_unlock();
        i915_sw_fence_commit(&request->submit);
        local_bh_enable(); /* Kick the execlists tasklet if just scheduled */
 
         * i915_request_free() will then decrement the refcount on the
         * context.
         */
-       struct i915_gem_context *ctx;
+       struct i915_gem_context *gem_context;
        struct intel_engine_cs *engine;
        struct intel_ring *ring;
        struct i915_timeline *timeline;
 
 
            TP_fast_assign(
                           __entry->dev = rq->i915->drm.primary->index;
-                          __entry->hw_id = rq->ctx->hw_id;
+                          __entry->hw_id = rq->gem_context->hw_id;
                           __entry->ring = rq->engine->id;
                           __entry->ctx = rq->fence.context;
                           __entry->seqno = rq->fence.seqno;
 
            TP_fast_assign(
                           __entry->dev = rq->i915->drm.primary->index;
-                          __entry->hw_id = rq->ctx->hw_id;
+                          __entry->hw_id = rq->gem_context->hw_id;
                           __entry->ring = rq->engine->id;
                           __entry->ctx = rq->fence.context;
                           __entry->seqno = rq->fence.seqno;
 
            TP_fast_assign(
                           __entry->dev = rq->i915->drm.primary->index;
-                          __entry->hw_id = rq->ctx->hw_id;
+                          __entry->hw_id = rq->gem_context->hw_id;
                           __entry->ring = rq->engine->id;
                           __entry->ctx = rq->fence.context;
                           __entry->seqno = rq->fence.seqno;
 
            TP_fast_assign(
                           __entry->dev = rq->i915->drm.primary->index;
-                          __entry->hw_id = rq->ctx->hw_id;
+                          __entry->hw_id = rq->gem_context->hw_id;
                           __entry->ring = rq->engine->id;
                           __entry->ctx = rq->fence.context;
                           __entry->seqno = rq->fence.seqno;
             */
            TP_fast_assign(
                           __entry->dev = rq->i915->drm.primary->index;
-                          __entry->hw_id = rq->ctx->hw_id;
+                          __entry->hw_id = rq->gem_context->hw_id;
                           __entry->ring = rq->engine->id;
                           __entry->ctx = rq->fence.context;
                           __entry->seqno = rq->fence.seqno;
 
         */
        rq = __i915_gem_active_peek(&engine->timeline.last_request);
        if (rq)
-               return rq->ctx == kernel_context;
+               return rq->gem_context == kernel_context;
        else
                return engine->last_retired_context == kernel_context;
 }
 
 {
        struct intel_guc_client *client = guc->execbuf_client;
        struct intel_engine_cs *engine = rq->engine;
-       u32 ctx_desc = lower_32_bits(intel_lr_context_descriptor(rq->ctx,
-                                                                engine));
+       u32 ctx_desc =
+               lower_32_bits(intel_lr_context_descriptor(rq->gem_context,
+                                                         engine));
        u32 ring_tail = intel_ring_set_tail(rq->ring, rq->tail) / sizeof(u64);
 
        spin_lock(&client->wq_lock);
                struct i915_request *rq, *rn;
 
                list_for_each_entry_safe(rq, rn, &p->requests, sched.link) {
-                       if (last && rq->ctx != last->ctx) {
+                       if (last && rq->gem_context != last->gem_context) {
                                if (port == last_port) {
                                        __list_del_many(&p->requests,
                                                        &rq->sched.link);
 
 
 static u64 execlists_update_context(struct i915_request *rq)
 {
-       struct intel_context *ce = to_intel_context(rq->ctx, rq->engine);
+       struct intel_context *ce =
+               to_intel_context(rq->gem_context, rq->engine);
        struct i915_hw_ppgtt *ppgtt =
-               rq->ctx->ppgtt ?: rq->i915->mm.aliasing_ppgtt;
+               rq->gem_context->ppgtt ?: rq->i915->mm.aliasing_ppgtt;
        u32 *reg_state = ce->lrc_reg_state;
 
        reg_state[CTX_RING_TAIL+1] = intel_ring_set_tail(rq->ring, rq->tail);
                         * second request, and so we never need to tell the
                         * hardware about the first.
                         */
-                       if (last && !can_merge_ctx(rq->ctx, last->ctx)) {
+                       if (last && !can_merge_ctx(rq->gem_context,
+                                                  last->gem_context)) {
                                /*
                                 * If we are on the second port and cannot
                                 * combine this request with the last, then we
                                 * the same context (even though a different
                                 * request) to the second port.
                                 */
-                               if (ctx_single_port_submission(last->ctx) ||
-                                   ctx_single_port_submission(rq->ctx)) {
+                               if (ctx_single_port_submission(last->gem_context) ||
+                                   ctx_single_port_submission(rq->gem_context)) {
                                        __list_del_many(&p->requests,
                                                        &rq->sched.link);
                                        goto done;
                                }
 
-                               GEM_BUG_ON(last->ctx == rq->ctx);
+                               GEM_BUG_ON(last->gem_context == rq->gem_context);
 
                                if (submit)
                                        port_assign(port, last);
 static int execlists_request_alloc(struct i915_request *request)
 {
        struct intel_context *ce =
-               to_intel_context(request->ctx, request->engine);
+               to_intel_context(request->gem_context, request->engine);
        int ret;
 
        GEM_BUG_ON(!ce->pin_count);
         * future request will be after userspace has had the opportunity
         * to recreate its own state.
         */
-       regs = to_intel_context(request->ctx, engine)->lrc_reg_state;
+       regs = to_intel_context(request->gem_context, engine)->lrc_reg_state;
        if (engine->default_state) {
                void *defaults;
 
                        i915_gem_object_unpin_map(engine->default_state);
                }
        }
-       execlists_init_reg_state(regs, request->ctx, engine, request->ring);
+       execlists_init_reg_state(regs,
+                                request->gem_context, engine, request->ring);
 
        /* Move the RING_HEAD onto the breadcrumb, past the hanging batch */
        regs[CTX_RING_BUFFER_START + 1] = i915_ggtt_offset(request->ring->vma);
 
 static int intel_logical_ring_emit_pdps(struct i915_request *rq)
 {
-       struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
+       struct i915_hw_ppgtt *ppgtt = rq->gem_context->ppgtt;
        struct intel_engine_cs *engine = rq->engine;
        const int num_lri_cmds = GEN8_3LVL_PDPES * 2;
        u32 *cs;
         * it is unsafe in case of lite-restore (because the ctx is
         * not idle). PML4 is allocated during ppgtt init so this is
         * not needed in 48-bit.*/
-       if (rq->ctx->ppgtt &&
-           (intel_engine_flag(rq->engine) & rq->ctx->ppgtt->pd_dirty_rings) &&
-           !i915_vm_is_48bit(&rq->ctx->ppgtt->base) &&
+       if (rq->gem_context->ppgtt &&
+           (intel_engine_flag(rq->engine) & rq->gem_context->ppgtt->pd_dirty_rings) &&
+           !i915_vm_is_48bit(&rq->gem_context->ppgtt->base) &&
            !intel_vgpu_active(rq->i915)) {
                ret = intel_logical_ring_emit_pdps(rq);
                if (ret)
                        return ret;
 
-               rq->ctx->ppgtt->pd_dirty_rings &= ~intel_engine_flag(rq->engine);
+               rq->gem_context->ppgtt->pd_dirty_rings &= ~intel_engine_flag(rq->engine);
        }
 
        cs = intel_ring_begin(rq, 6);
 
         */
        if (request) {
                struct drm_i915_private *dev_priv = request->i915;
-               struct intel_context *ce = to_intel_context(request->ctx,
-                                                           engine);
+               struct intel_context *ce =
+                       to_intel_context(request->gem_context, engine);
                struct i915_hw_ppgtt *ppgtt;
 
                if (ce->state) {
                                   CCID_EN);
                }
 
-               ppgtt = request->ctx->ppgtt ?: engine->i915->mm.aliasing_ppgtt;
+               ppgtt = request->gem_context->ppgtt ?: engine->i915->mm.aliasing_ppgtt;
                if (ppgtt) {
                        u32 pd_offset = ppgtt->pd.base.ggtt_offset << 10;
 
 
        *cs++ = MI_NOOP;
        *cs++ = MI_SET_CONTEXT;
-       *cs++ = i915_ggtt_offset(to_intel_context(rq->ctx, engine)->state) | flags;
+       *cs++ = i915_ggtt_offset(to_intel_context(rq->gem_context, engine)->state) | flags;
        /*
         * w/a: MI_SET_CONTEXT must always be followed by MI_NOOP
         * WaMiSetContext_Hang:snb,ivb,vlv
 static int switch_context(struct i915_request *rq)
 {
        struct intel_engine_cs *engine = rq->engine;
-       struct i915_gem_context *to_ctx = rq->ctx;
+       struct i915_gem_context *to_ctx = rq->gem_context;
        struct i915_hw_ppgtt *to_mm =
                to_ctx->ppgtt ?: rq->i915->mm.aliasing_ppgtt;
        struct i915_gem_context *from_ctx = engine->legacy_active_context;
 {
        int ret;
 
-       GEM_BUG_ON(!to_intel_context(request->ctx, request->engine)->pin_count);
+       GEM_BUG_ON(!to_intel_context(request->gem_context, request->engine)->pin_count);
 
        /* Flush enough space to reduce the likelihood of waiting after
         * we start building the request - in which case we will just
 
                              struct i915_request *rq)
 {
        struct drm_i915_private *i915 = h->i915;
-       struct i915_address_space *vm = rq->ctx->ppgtt ? &rq->ctx->ppgtt->base : &i915->ggtt.base;
+       struct i915_address_space *vm =
+               rq->gem_context->ppgtt ?
+               &rq->gem_context->ppgtt->base :
+               &i915->ggtt.base;
        struct i915_vma *hws, *vma;
        unsigned int flags;
        u32 *batch;
 
                              struct i915_request *rq,
                              u32 arbitration_command)
 {
-       struct i915_address_space *vm = &rq->ctx->ppgtt->base;
+       struct i915_address_space *vm = &rq->gem_context->ppgtt->base;
        struct i915_vma *hws, *vma;
        u32 *batch;
        int err;