[Intel-gfx] [PATCH 2/2] drm/i915/pxp: Trigger the global teardown for before suspending

Teres Alexis, Alan Previn alan.previn.teres.alexis at intel.com
Mon Nov 21 19:21:03 UTC 2022



On Mon, 2022-11-21 at 10:39 -0800, Juston Li wrote:
> On Thu, 2022-11-17 at 16:36 -0800, Alan Previn wrote:
> > A driver bug was recently discovered where the security firmware was
> > receiving internal HW signals indicating that session key expirations
> > had occurred. Architecturally, the firmware was expecting a response
> > from the GuC to acknowledge the event with the firmware side.
> > However the OS was in a suspended state and GuC had been reset.
> > Internal specifications actually required the driver to ensure
> > that all active sessions be properly cleaned up in such cases where
> > the system is suspended and the GuC potentially unable to respond.
> > 
> > This patch adds the global teardown code in i915's suspend_prepare
> > code path.
> > 
Alan:[snip]

> > +void intel_pxp_end(struct intel_pxp *pxp)
> > +{
> > +       struct drm_i915_private *i915 = pxp_to_gt(pxp)->i915;
> > +       intel_wakeref_t wakeref;
> > +
> > +       if (!intel_pxp_is_enabled(pxp))
> > +               return;
> > +
> > +       wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> > +
> > +       mutex_lock(&pxp->arb_mutex);
> > +
> > +       if (__pxp_global_teardown_locked(pxp, true))
> > +               drm_dbg(&(pxp_to_gt(pxp))->i915->drm, "PXP end timed
> > out\n");
> > +
> > +       mutex_unlock(&pxp->arb_mutex);
> > +
> > +       intel_pxp_fini_hw(pxp);
> 
> Is intel_pxp_suspend() still needed then if we already fini_hw() here
> and mark invalidation in intel_pxp_terminate()?
> 

Good catch - looks like we might not need intel_pxp_suspend. But I'll verify that for you.
Also, looks like i forgot to include a non-CONFIG_DRM_I915_PXP version of intel_pxp_end which was causing the build
failure. Will resend.

Btw, thanks for reviewing this Juston, i had cc'd you because of the impact to suspend-resume flows and I believe you
have had prior experience debugging issues with that and runtime-suspend/resume. Do you any other issues with this
change?

...alan


More information about the Intel-gfx mailing list