From: Lucas De Marchi Date: Sat, 4 Mar 2023 06:26:55 +0000 (-0800) Subject: drm/xe: Allow const propagation in gt_to_xe() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8846ffb457587e5d393a83ce977c3db7c800fe58;p=linux.git drm/xe: Allow const propagation in gt_to_xe() 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 Reviewed-by: Matt Roper Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h index 5635f28031704..086369f7ee6df 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) {