On 12/15/25 4:09 AM, Jani Nikula wrote:
> Commit 469c1c9eb6c9 ("kernel-doc: Issue warnings that were silently
> discarded") started emitting warnings for cases that were previously
> silently discarded. One such case is in intel_wakeref.h:
> 
> Warning: drivers/gpu/drm/i915/intel_wakeref.h:156 expecting prototype
>   for __intel_wakeref_put(). Prototype was for INTEL_WAKEREF_PUT_ASYNC()
>   instead
> 
> Arguably kernel-doc should be able to handle this, as it's valid C, but
> having the flags defined between the function declarator and the body is
> just asking for trouble. Move the INTEL_WAKEREF_PUT_* macros away from
> there, making kernel-doc's life easier.
> 
> While at it, reduce the unnecessary abstraction levels by removing the
> enum, and append _MASK to INTEL_WAKEREF_PUT_DELAY for clarity.
> 
> Cc: Andy Shevchenko <[email protected]>
> Cc: Jonathan Corbet <[email protected]>
> Signed-off-by: Jani Nikula <[email protected]>

Acked-by: Randy Dunlap <[email protected]>
Tested-by: Randy Dunlap <[email protected]>

Thanks.

> 
> ---
> 
> Curiously, kernel-doc does not return non-zero exit status for these
> warnings even with the -Werror parameter!
> ---
>  drivers/gpu/drm/i915/intel_wakeref.c |  2 +-
>  drivers/gpu/drm/i915/intel_wakeref.h | 14 +++++---------
>  2 files changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_wakeref.c 
> b/drivers/gpu/drm/i915/intel_wakeref.c
> index b1883dccc22a..98e7cee4e1dc 100644
> --- a/drivers/gpu/drm/i915/intel_wakeref.c
> +++ b/drivers/gpu/drm/i915/intel_wakeref.c
> @@ -80,7 +80,7 @@ void __intel_wakeref_put_last(struct intel_wakeref *wf, 
> unsigned long flags)
>       /* Assume we are not in process context and so cannot sleep. */
>       if (flags & INTEL_WAKEREF_PUT_ASYNC || !mutex_trylock(&wf->mutex)) {
>               mod_delayed_work(wf->i915->unordered_wq, &wf->work,
> -                              FIELD_GET(INTEL_WAKEREF_PUT_DELAY, flags));
> +                              FIELD_GET(INTEL_WAKEREF_PUT_DELAY_MASK, 
> flags));
>               return;
>       }
>  
> diff --git a/drivers/gpu/drm/i915/intel_wakeref.h 
> b/drivers/gpu/drm/i915/intel_wakeref.h
> index a2894a56e18f..81308bac34ba 100644
> --- a/drivers/gpu/drm/i915/intel_wakeref.h
> +++ b/drivers/gpu/drm/i915/intel_wakeref.h
> @@ -128,17 +128,16 @@ intel_wakeref_get_if_active(struct intel_wakeref *wf)
>       return atomic_inc_not_zero(&wf->count);
>  }
>  
> -enum {
> -     INTEL_WAKEREF_PUT_ASYNC_BIT = 0,
> -     __INTEL_WAKEREF_PUT_LAST_BIT__
> -};
> -
>  static inline void
>  intel_wakeref_might_get(struct intel_wakeref *wf)
>  {
>       might_lock(&wf->mutex);
>  }
>  
> +/* flags for __intel_wakeref_put() and __intel_wakeref_put_last */
> +#define INTEL_WAKEREF_PUT_ASYNC              BIT(0)
> +#define INTEL_WAKEREF_PUT_DELAY_MASK GENMASK(BITS_PER_LONG - 1, 1)
> +
>  /**
>   * __intel_wakeref_put: Release the wakeref
>   * @wf: the wakeref
> @@ -154,9 +153,6 @@ intel_wakeref_might_get(struct intel_wakeref *wf)
>   */
>  static inline void
>  __intel_wakeref_put(struct intel_wakeref *wf, unsigned long flags)
> -#define INTEL_WAKEREF_PUT_ASYNC BIT(INTEL_WAKEREF_PUT_ASYNC_BIT)
> -#define INTEL_WAKEREF_PUT_DELAY \
> -     GENMASK(BITS_PER_LONG - 1, __INTEL_WAKEREF_PUT_LAST_BIT__)
>  {
>       INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0);
>       if (unlikely(!atomic_add_unless(&wf->count, -1, 1)))
> @@ -181,7 +177,7 @@ intel_wakeref_put_delay(struct intel_wakeref *wf, 
> unsigned long delay)
>  {
>       __intel_wakeref_put(wf,
>                           INTEL_WAKEREF_PUT_ASYNC |
> -                         FIELD_PREP(INTEL_WAKEREF_PUT_DELAY, delay));
> +                         FIELD_PREP(INTEL_WAKEREF_PUT_DELAY_MASK, delay));
>  }
>  
>  static inline void

-- 
~Randy

Reply via email to