Re: [PATCH] drm/i915/guc: avoid FIELD_PREP warning

From: Rodrigo Vivi
Date: Fri Feb 17 2023 - 11:07:34 EST


On Fri, Feb 17, 2023 at 01:46:50PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> With gcc-7 and earlier, there are lots of warnings like
>
> In file included from <command-line>:0:0:
> In function '__guc_context_policy_add_priority.isra.66',
> inlined from '__guc_context_set_prio.isra.67' at drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:3292:3,
> inlined from 'guc_context_set_prio' at drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:3320:2:
> include/linux/compiler_types.h:399:38: error: call to '__compiletime_assert_631' declared with attribute error: FIELD_PREP: mask is not constant
> _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
> ^
> ...
> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:2422:3: note: in expansion of macro 'FIELD_PREP'
> FIELD_PREP(GUC_KLV_0_KEY, GUC_CONTEXT_POLICIES_KLV_ID_##id) | \
> ^~~~~~~~~~
>
> Make sure that GUC_KLV_0_KEY is an unsigned value to avoid the warning.
>
> Fixes: 77b6f79df66e ("drm/i915/guc: Update to GuC version 69.0.3")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
> index 58012edd4eb0..4f4f53c42a9c 100644
> --- a/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
> +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
> @@ -29,9 +29,9 @@
> */
>
> #define GUC_KLV_LEN_MIN 1u
> -#define GUC_KLV_0_KEY (0xffff << 16)
> -#define GUC_KLV_0_LEN (0xffff << 0)
> -#define GUC_KLV_n_VALUE (0xffffffff << 0)
> +#define GUC_KLV_0_KEY (0xffffu << 16)
> +#define GUC_KLV_0_LEN (0xffffu << 0)
> +#define GUC_KLV_n_VALUE (0xffffffffu << 0)

what about changing them to GENMASK?

>
> /**
> * DOC: GuC Self Config KLVs
> --
> 2.39.1
>