On 07/11/2025 14:42, Tvrtko Ursulin wrote:

On 07/11/2025 12:55, Philipp Stanner wrote:
drm_sched_job_arm() just panics the kernel with BUG_ON() in case of an
entity being NULL. While drm_sched_job_arm() crashing or not effectively
arming jobs is certainly a huge issue that needs to be noticed,
completely shooting down the kernel reduces the probability of reaching
and debugging a system to 0.

Moreover, the checkpatch script by now strongly discourages all new uses
of BUG_ON() for this reason.

Replace the BUG_ON() in drm_sched_job_arm() with a WARN_ON().

Signed-off-by: Philipp Stanner <[email protected]>
---
  drivers/gpu/drm/scheduler/sched_main.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/ scheduler/sched_main.c
index 1d4f1b822e7b..3bf4ae0ca4bc 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -857,7 +857,7 @@ void drm_sched_job_arm(struct drm_sched_job *job)
      struct drm_gpu_scheduler *sched;
      struct drm_sched_entity *entity = job->entity;
-    BUG_ON(!entity);
+    WARN_ON(!entity);
      drm_sched_entity_select_rq(entity);

void drm_sched_entity_select_rq(struct drm_sched_entity *entity)
{
     struct dma_fence *fence;
     struct drm_gpu_scheduler *sched;
     struct drm_sched_rq *rq;

     /* single possible engine and already selected */
     if (!entity->sched_list)

Still the same end result.

I believe best practice is to simply not have BUG_ON's followed by null

Sorry I meant WARN_ONs. If we think there is scope for bad things to happen after letting the execution proceed then I would add an early return to the WARN_ON (_ONCE?). That probably means to push job as well.

Regards,

Tvrtko

pointer dereferences since they add no value. Ie. it should just be removed and not replaced.

Regards,

Tvrtko

Regards,

Tvrtko

      sched = entity->rq->sched;


Reply via email to