[Intel-xe] [PATCH 02/19] drm/xe: Allow const propagation in gt_to_xe()

Matt Roper matthew.d.roper at intel.com
Wed Mar 8 21:45:56 UTC 2023


On Tue, Mar 07, 2023 at 01:24:29AM -0800, Lucas De Marchi wrote:
> Replace the inline function with a _Generic() so gt_to_xe() can work
> with a const struct xe_gt*, which leads to a const struct xe *.
> This allows a const gt being passed around and when the xe device is
> needed, compiler won't issue a warning that calling gt_to_xe() would
> discard the const. Rather, just propagate the const to the xe pointer
> being returned.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_gt.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h
> index 5635f2803170..086369f7ee6d 100644
> --- a/drivers/gpu/drm/xe/xe_gt.h
> +++ b/drivers/gpu/drm/xe/xe_gt.h
> @@ -49,10 +49,10 @@ static inline bool xe_gt_is_media_type(struct xe_gt *gt)
>  	return gt->info.type == XE_GT_TYPE_MEDIA;
>  }
>  
> -static inline struct xe_device * gt_to_xe(struct xe_gt *gt)
> -{
> -	return gt->xe;
> -}
> +#define gt_to_xe(gt__)								\
> +	_Generic(gt__,								\
> +		 const struct xe_gt *: (const struct xe_device *)((gt__)->xe),	\
> +		 struct xe_gt *: (gt__)->xe)
>  
>  static inline bool xe_gt_is_usm_hwe(struct xe_gt *gt, struct xe_hw_engine *hwe)
>  {
> -- 
> 2.39.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list