[PATCH] wait: drop wake_up_{all,one}()

Jan Beulich posted 1 patch 1 week, 6 days ago
Failed in applying to current master (apply log)
There is a newer version of this series
[PATCH] wait: drop wake_up_{all,one}()
Posted by Jan Beulich 1 week, 6 days ago
wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
code). wake_up_all() is only used locally, yet rather than making it
static its sole user can invoke wake_up_nr() in the intended way directly.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
     INIT_LIST_HEAD(&wq->list);
 }
 
-void destroy_waitqueue_head(struct waitqueue_head *wq)
-{
-    wake_up_all(wq);
-}
-
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
 {
     struct waitqueue_vcpu *wqv;
@@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
     spin_unlock(&wq->lock);
 }
 
-void wake_up_one(struct waitqueue_head *wq)
-{
-    wake_up_nr(wq, 1);
-}
-
-void wake_up_all(struct waitqueue_head *wq)
+void destroy_waitqueue_head(struct waitqueue_head *wq)
 {
     wake_up_nr(wq, UINT_MAX);
 }
--- a/xen/include/xen/wait.h
+++ b/xen/include/xen/wait.h
@@ -31,8 +31,6 @@ void destroy_waitqueue_head(struct waitq
 
 /* Wake VCPU(s) waiting on specified waitqueue. */
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr);
-void wake_up_one(struct waitqueue_head *wq);
-void wake_up_all(struct waitqueue_head *wq);
 
 /* Wait on specified waitqueue until @condition is true. */
 #define wait_event(wq, condition)               \
Re: [PATCH] wait: drop wake_up_{all,one}()
Posted by Andrew Cooper 1 week, 6 days ago
On 17/02/2026 8:35 am, Jan Beulich wrote:
> wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
> code). wake_up_all() is only used locally, yet rather than making it
> static its sole user can invoke wake_up_nr() in the intended way directly.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/common/wait.c
> +++ b/xen/common/wait.c
> @@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
>      INIT_LIST_HEAD(&wq->list);
>  }
>  
> -void destroy_waitqueue_head(struct waitqueue_head *wq)
> -{
> -    wake_up_all(wq);
> -}
> -
>  void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
>  {
>      struct waitqueue_vcpu *wqv;
> @@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
>      spin_unlock(&wq->lock);
>  }
>  
> -void wake_up_one(struct waitqueue_head *wq)
> -{
> -    wake_up_nr(wq, 1);
> -}
> -
> -void wake_up_all(struct waitqueue_head *wq)
> +void destroy_waitqueue_head(struct waitqueue_head *wq)
>  {
>      wake_up_nr(wq, UINT_MAX);
>  }

The diff looks wonky because you also moved destroy_waitqueue_head(),
despite wake_up_nr() not being static.

Keeping destroy_waitqueue_head() in it's old location will make the diff
smaller and more obvious.

~Andrew
Re: [PATCH] wait: drop wake_up_{all,one}()
Posted by Jan Beulich 1 week, 6 days ago
On 17.02.2026 10:47, Andrew Cooper wrote:
> On 17/02/2026 8:35 am, Jan Beulich wrote:
>> wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
>> code). wake_up_all() is only used locally, yet rather than making it
>> static its sole user can invoke wake_up_nr() in the intended way directly.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/common/wait.c
>> +++ b/xen/common/wait.c
>> @@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
>>      INIT_LIST_HEAD(&wq->list);
>>  }
>>  
>> -void destroy_waitqueue_head(struct waitqueue_head *wq)
>> -{
>> -    wake_up_all(wq);
>> -}
>> -
>>  void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
>>  {
>>      struct waitqueue_vcpu *wqv;
>> @@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
>>      spin_unlock(&wq->lock);
>>  }
>>  
>> -void wake_up_one(struct waitqueue_head *wq)
>> -{
>> -    wake_up_nr(wq, 1);
>> -}
>> -
>> -void wake_up_all(struct waitqueue_head *wq)
>> +void destroy_waitqueue_head(struct waitqueue_head *wq)
>>  {
>>      wake_up_nr(wq, UINT_MAX);
>>  }
> 
> The diff looks wonky because you also moved destroy_waitqueue_head(),
> despite wake_up_nr() not being static.
> 
> Keeping destroy_waitqueue_head() in it's old location will make the diff
> smaller and more obvious.

The diff size doesn't really change. As to "more obvious" - yes, the deletion
of the two functions is more obvious then. The "keep the UINT_MAX use" aspect
then becomes less obvious. That's why I did it the way shown. I'm okay doing
it the other way, if that eases it making progress.

Jan