[PATCH] drm/i915/pxp: fix non-optimised !CONFIG_DRM_I915_PXP build
Jonathan Gray
jsg at jsg.id.au
Mon Nov 4 11:44:58 UTC 2024
On Mon, Nov 04, 2024 at 12:16:44PM +0200, Jani Nikula wrote:
> On Sun, 03 Nov 2024, Jonathan Gray <jsg at jsg.id.au> wrote:
> > intel_pxp_gsccs_is_ready_for_sessions() is gated by CONFIG_DRM_I915_PXP
> > but called from intel_pxp.c which isn't. Provide a fallback inline
> > function to fix the non-optimised build.
>
> What does this have to do with optimization? Isn't the build just plain
> broken for PXP=n?
With clang/lld 16 on OpenBSD with PXP=n, intel_pxp.o with -O0 has an
undefined reference to intel_pxp_gsccs_is_ready_for_sessions,
with -O1 and -O2 it doesn't and the kernel links.
>
> BR,
> Jani.
>
>
> >
> > Fixes: 99afb7cc8c44 ("drm/i915/pxp: Add ARB session creation and cleanup")
> > Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
> > ---
> > drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.h | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.h b/drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.h
> > index 9aae779c4da3..b93488e99685 100644
> > --- a/drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.h
> > +++ b/drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.h
> > @@ -16,26 +16,30 @@ struct intel_pxp;
> > #define GSC_PENDING_RETRY_PAUSE_MS 50
> > #define GSCFW_MAX_ROUND_TRIP_LATENCY_MS (GSC_HECI_REPLY_LATENCY_MS + \
> > (GSC_PENDING_RETRY_MAXCOUNT * GSC_PENDING_RETRY_PAUSE_MS))
> >
> > #ifdef CONFIG_DRM_I915_PXP
> > void intel_pxp_gsccs_fini(struct intel_pxp *pxp);
> > int intel_pxp_gsccs_init(struct intel_pxp *pxp);
> > +bool intel_pxp_gsccs_is_ready_for_sessions(struct intel_pxp *pxp);
> >
> > int intel_pxp_gsccs_create_session(struct intel_pxp *pxp, int arb_session_id);
> > void intel_pxp_gsccs_end_arb_fw_session(struct intel_pxp *pxp, u32 arb_session_id);
> >
> > #else
> > static inline void intel_pxp_gsccs_fini(struct intel_pxp *pxp)
> > {
> > }
> >
> > static inline int intel_pxp_gsccs_init(struct intel_pxp *pxp)
> > {
> > return 0;
> > }
> >
> > -#endif
> > +static inline bool intel_pxp_gsccs_is_ready_for_sessions(struct intel_pxp *pxp)
> > +{
> > + return false;
> > +}
> >
> > -bool intel_pxp_gsccs_is_ready_for_sessions(struct intel_pxp *pxp);
> > +#endif
> >
> > #endif /*__INTEL_PXP_GSCCS_H__ */
>
> --
> Jani Nikula, Intel
>
More information about the dri-devel
mailing list