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) \
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
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
© 2016 - 2026 Red Hat, Inc.