On 24.06.2021 09:04, Matthew Brost wrote: > Improve the error message when a unsolicited CT response is received by > printing fence that couldn't be found, the last fence, and all requests > with a response outstanding. > > Signed-off-by: Matthew Brost <matthew.brost@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c > index a59e239497ee..07f080ddb9ae 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c > @@ -730,12 +730,16 @@ static int ct_handle_response(struct intel_guc_ct *ct, struct ct_incoming_msg *r > found = true; > break; > } > - spin_unlock_irqrestore(&ct->requests.lock, flags); > - > if (!found) { > CT_ERROR(ct, "Unsolicited response (fence %u)\n", fence); > - return -ENOKEY; > + CT_ERROR(ct, "Could not find fence=%u, last_fence=%u\n", fence, > + ct->requests.last_fence); > + list_for_each_entry(req, &ct->requests.pending, link) > + CT_ERROR(ct, "request %u awaits response\n", > + req->fence); not quite sure how listing of awaiting requests could help here (if we suspect that this is a duplicated reply, then we should rather track short list of already processed messages to look there) but since it does not hurt too much, this is: Reviewed-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > + err = -ENOKEY; > } > + spin_unlock_irqrestore(&ct->requests.lock, flags); > > if (unlikely(err)) > return err; >