All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] drm/sched: Set error to s_fence if HW job submission failed.
@ 2019-10-29 14:39 Dan Carpenter
  2019-10-29 14:41 ` Dan Carpenter
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2019-10-29 14:39 UTC (permalink / raw)
  To: andrey.grodzovsky; +Cc: dri-devel

Hello Andrey Grodzovsky,

The patch e91e5f080e03: "drm/sched: Set error to s_fence if HW job
submission failed." from Oct 24, 2019, leads to the following static
checker warning:

	drivers/gpu/drm/scheduler/sched_main.c:500 drm_sched_resubmit_jobs()
	warn: passing zero to 'PTR_ERR'

drivers/gpu/drm/scheduler/sched_main.c
   477  void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched)
   478  {
   479          struct drm_sched_job *s_job, *tmp;
   480          uint64_t guilty_context;
   481          bool found_guilty = false;
   482          struct dma_fence *fence;
   483  
   484          list_for_each_entry_safe(s_job, tmp, &sched->ring_mirror_list, node) {
   485                  struct drm_sched_fence *s_fence = s_job->s_fence;
   486  
   487                  if (!found_guilty && atomic_read(&s_job->karma) > sched->hang_limit) {
   488                          found_guilty = true;
   489                          guilty_context = s_job->s_fence->scheduled.context;
   490                  }
   491  
   492                  if (found_guilty && s_job->s_fence->scheduled.context == guilty_context)
   493                          dma_fence_set_error(&s_fence->finished, -ECANCELED);
   494  
   495                  dma_fence_put(s_job->s_fence->parent);
   496                  fence = sched->ops->run_job(s_job);
   497  
   498                  if (IS_ERR_OR_NULL(fence)) {
                            ^^^^^^^^^^^^^^^^^^^^

   499                          s_job->s_fence->parent = NULL;
   500                          dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
                                                                        ^^^^^^^^^^^^^^
If "fence" is NULL then it triggers a WARN_ON() inside the
dma_fence_set_error() function.

	WARN_ON(error >= 0 || error < -MAX_ERRNO);
                ^^^^^^^^^^

   501                  } else {
   502                          s_job->s_fence->parent = fence;
   503                  }
   504  
   505  
   506          }
   507  }

regards,
dan carpenter
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [bug report] drm/sched: Set error to s_fence if HW job submission failed.
  2019-10-29 14:39 [bug report] drm/sched: Set error to s_fence if HW job submission failed Dan Carpenter
@ 2019-10-29 14:41 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2019-10-29 14:41 UTC (permalink / raw)
  To: andrey.grodzovsky; +Cc: dri-devel

I sent that too quickly.  See also:

drivers/gpu/drm/scheduler/sched_main.c:750 drm_sched_main() warn: passing zero to 'PTR_ERR'

which is a few lines later.

regards,
dan carpenter

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-10-29 14:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-29 14:39 [bug report] drm/sched: Set error to s_fence if HW job submission failed Dan Carpenter
2019-10-29 14:41 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.