if (ret)
                goto err_ctx;
 
+       /* Record the position of the start of the request so that
+        * should we detect the updated seqno part-way through the
+        * GPU processing the request, we never over-estimate the
+        * position of the head.
+        */
+       req->head = req->ring->tail;
+
        return req;
 
 err_ctx:
 
        trace_i915_gem_request_add(request);
 
-       request->head = request_start;
-
        /* Seal the request and mark it as pending execution. Note that
         * we may inspect this state, without holding any locks, during
         * hangcheck. Hence we apply the barrier to ensure that we do not
        list_add_tail(&request->link, &engine->request_list);
        list_add_tail(&request->ring_link, &ring->request_list);
 
-       /* Record the position of the start of the request so that
+       /* Record the position of the start of the breadcrumb so that
         * should we detect the updated seqno part-way through the
         * GPU processing the request, we never over-estimate the
-        * position of the head.
+        * position of the ring's HEAD.
         */
        request->postfix = ring->tail;
 
 
                                   dev_priv->engine[i].name,
                                   ee->num_requests);
                        for (j = 0; j < ee->num_requests; j++) {
-                               err_printf(m, "  seqno 0x%08x, emitted %ld, tail 0x%08x\n",
+                               err_printf(m, "  seqno 0x%08x, emitted %ld, head 0x%08x, tail 0x%08x\n",
                                           ee->requests[j].seqno,
                                           ee->requests[j].jiffies,
+                                          ee->requests[j].head,
                                           ee->requests[j].tail);
                        }
                }
                        erq = &ee->requests[count++];
                        erq->seqno = request->fence.seqno;
                        erq->jiffies = request->emitted_jiffies;
-                       erq->tail = request->postfix;
+                       erq->head = request->head;
+                       erq->tail = request->tail;
                }
        }
 }