On Mon, 15 Dec 2025, Randy Dunlap <[email protected]> wrote:
> 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.
Thanks, pushed to drm-intel-next.
BR,
Jani.
>
>>
>> ---
>>
>> 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
--
Jani Nikula, Intel