[PATCH 3/3] drm/xe: Warn on NULL job when user fence used in xe_sync_entry_signal

Matthew Brost matthew.brost at intel.com
Sat Mar 16 01:28:45 UTC 2024


On Thu, Mar 14, 2024 at 10:53:20AM +0000, Matthew Auld wrote:
> On 14/03/2024 09:54, Nirmoy Das wrote:
> > Added a check and warn for NULL job when sync->type is
> > DRM_XE_SYNC_TYPE_USER_FENCE to prevent potential crashes
> > and aid in debugging
> > 
> > Cc: Matthew Auld <matthew.auld at intel.com>
> > Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
> > ---
> >   drivers/gpu/drm/xe/xe_sync.c | 10 +++++++---
> >   1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_sync.c b/drivers/gpu/drm/xe/xe_sync.c
> > index 02c9577fe418..fae466ba8e75 100644
> > --- a/drivers/gpu/drm/xe/xe_sync.c
> > +++ b/drivers/gpu/drm/xe/xe_sync.c
> > @@ -255,9 +255,13 @@ void xe_sync_entry_signal(struct xe_sync_entry *sync, struct xe_sched_job *job,
> >   			dma_fence_put(fence);
> >   		}
> >   	} else if (sync->type == DRM_XE_SYNC_TYPE_USER_FENCE) {
> > -		job->user_fence.used = true;
> > -		job->user_fence.addr = sync->addr;
> > -		job->user_fence.value = sync->timeline_value;
> > +		if (job) {
> > +			job->user_fence.used = true;
> > +			job->user_fence.addr = sync->addr;
> > +			job->user_fence.value = sync->timeline_value;
> > +		} else {
> > +			XE_WARN_ON("NULL job passed with DRM_XE_SYNC_TYPE_USER_FENCE");
> 
> Just wondering if it might be better to just let it crash if that ever
> happens? Assumption is that it's impossible and would be programmer error.
> 
> Matt, any thoughts here?
> 

The usage is probably add an xe_assert(xe, job) and then let the kernel crash.

Matt

> > +		}
> >   	}
> >   }


More information about the Intel-xe mailing list