"Cavitt, Jonathan" <[email protected]> writes: > -----Original Message----- > From: Sousa, Gustavo <[email protected]> > Sent: Thursday, May 28, 2026 3:30 PM > To: Cavitt, Jonathan <[email protected]>; > [email protected] > Cc: Gupta, Saurabhg <[email protected]>; Zuo, Alex > <[email protected]>; Cavitt, Jonathan <[email protected]> > Subject: Re: [PATCH] drm/xe/rtp: Check hwe before calling match_func >> >> Jonathan Cavitt <[email protected]> writes: >> >> > XE_RTP_MATCH_FUNC may attempt to dereference the target xe_hw_engine. >> > Ensure the hwe is not NULL before calling the function, matching >> > XE_RTP_MATCH_ENGINE_CLASS, for example. >> > >> > This covers a static analysis issue. >> > >> > Signed-off-by: Jonathan Cavitt <[email protected]> >> > Cc: Gustavo Sousa <[email protected]> >> > --- >> > drivers/gpu/drm/xe/xe_rtp.c | 3 +++ >> > 1 file changed, 3 insertions(+) >> > >> > diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c >> > index dec9d94e6fb0..2cd26db113d9 100644 >> > --- a/drivers/gpu/drm/xe/xe_rtp.c >> > +++ b/drivers/gpu/drm/xe/xe_rtp.c >> > @@ -129,6 +129,9 @@ static bool rule_match_item(struct rule_match_ctx >> > *match_ctx) >> > >> > return hwe->class != r->engine_class; >> > case XE_RTP_MATCH_FUNC: >> > + if (drm_WARN_ON(&xe->drm, !hwe)) >> > + return false; >> >> There are several functions passed via XE_RTP_MATCH_FUNC() (i.e. MATCH() >> in definitions of RTP rules) that are meant to be used to do checks that >> do not depend on hwe. Returning false here is wrong as it will cause >> those checks to be skipped. >> >> The developer is responsible for not passing a function that uses hwe in >> a context where it is NULL. > > Understood, though quick question: is this also the case for GT?
Yep. Some examples: * match_has_mert * xe_rtp_match_not_sriov_vf * xe_rtp_match_has_flat_ccs -- Gustavo Sousa > -Jonathan Cavitt > >> >> -- >> Gustavo Sousa >> >> > + >> > return r->match_func(xe, gt, hwe); >> > default: >> > drm_warn(&xe->drm, "Invalid RTP match %u\n", >> > -- >> > 2.53.0 >>
