[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