Re: [PATCH v5 03/18] timer: Move store of next event into __next_timer_interrupt()

From: Peter Zijlstra
Date: Tue Mar 21 2023 - 08:48:40 EST


On Wed, Mar 01, 2023 at 03:17:29PM +0100, Anna-Maria Behnsen wrote:
> Both call sides of __next_timer_interrupt() store return value directly in

^^ sites

> base->next_expiry. Move the store into __next_timer_interrupt() and to make

+its

> purpose more clear, rename function to next_expiry_recalc().
>
> No functional change.
>
> Signed-off-by: Anna-Maria Behnsen <anna-maria@xxxxxxxxxxxxx>
> Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> kernel/time/timer.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/time/timer.c b/kernel/time/timer.c
> index ffb94bc3852f..08e855727ff8 100644
> --- a/kernel/time/timer.c
> +++ b/kernel/time/timer.c
> @@ -1803,8 +1803,10 @@ static int next_pending_bucket(struct timer_base *base, unsigned offset,
> /*
> * Search the first expiring timer in the various clock levels. Caller must
> * hold base->lock.
> + *
> + * Store next expiry time in base->next_expiry.
> */
> -static unsigned long __next_timer_interrupt(struct timer_base *base)
> +static void next_expiry_recalc(struct timer_base *base)
> {
> unsigned long clk, next, adj;
> unsigned lvl, offset = 0;
> @@ -1870,10 +1872,11 @@ static unsigned long __next_timer_interrupt(struct timer_base *base)
> clk += adj;
> }
>
> + base->next_expiry = next;
> base->next_expiry_recalc = false;
> base->timers_pending = !(next == base->clk + NEXT_TIMER_MAX_DELTA);
>
> - return next;
> + return;
> }

Can skip the return statement for a void function entirely if it is the
last statement.