Re: [PATCH] entry: fix compile error in dynamic_irqentry_exit_cond_resched()

From: Mark Rutland
Date: Wed Mar 30 2022 - 05:05:04 EST


On Wed, Mar 30, 2022 at 10:43:28AM +0200, Sven Schnelle wrote:
> kernel/entry/common.c: In function ‘dynamic_irqentry_exit_cond_resched’:
> kernel/entry/common.c:409:14: error: implicit declaration of function ‘static_key_unlikely’; did you mean ‘static_key_enable’? [-Werror=implicit-function-declaration]
> 409 | if (!static_key_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> | ^~~~~~~~~~~~~~~~~~~
> | static_key_enable
>
> static_key_unlikely() should be static_branch_unlikely().
>
> Fixes: 99cf983cc8bca ("sched/preempt: Add PREEMPT_DYNAMIC using static keys")
> Signed-off-by: Sven Schnelle <svens@xxxxxxxxxxxxx>

Sorry about this. FWIW:

Reviewed-by: Mark Rutland <mark.rutland@xxxxxxx>

For context for others, this'll only show up on architectures which both use
the generic entry code and select CONFIG_HAVE_PREEMPT_DYNAMIC_KEY. Today, only
arm64 selects CONFIG_HAVE_PREEMPT_DYNAMIC_KEY, and it doesn't use the generic
entry code.

Sven, I assume you're looking at wiring this up on s390 or parisc?

Thanks,
Mark.

> ---
> kernel/entry/common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
> index ef8d94a98b7e..371ee8914af1 100644
> --- a/kernel/entry/common.c
> +++ b/kernel/entry/common.c
> @@ -406,7 +406,7 @@ DEFINE_STATIC_CALL(irqentry_exit_cond_resched, raw_irqentry_exit_cond_resched);
> DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> void dynamic_irqentry_exit_cond_resched(void)
> {
> - if (!static_key_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> + if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> return;
> raw_irqentry_exit_cond_resched();
> }
> --
> 2.32.0
>