[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 11 Nov 2020 21:30:42 +0100
From: Paul Bolle <pebolle@...cali.nl>
To: linux-kernel@...r.kernel.org, linux-tip-commits@...r.kernel.org
Cc: Scott Wood <swood@...hat.com>,
"Peter Zijlstra (Intel)" <peterz@...radead.org>,
Valentin Schneider <valentin.schneider@....com>,
Daniel Bristot de Oliveira <bristot@...hat.com>,
x86@...nel.org
Subject: Re: [tip: sched/core] sched: Fix balance_callback()
tip-bot2 for Peter Zijlstra schreef op wo 11-11-2020 om 08:23 [+0000]:
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> [...]
> +static void do_balance_callbacks(struct rq *rq, struct callback_head *head)
> +{
> + void (*func)(struct rq *rq);
> + struct callback_head *next;
> +
> + lockdep_assert_held(&rq->lock);
> +
> + while (head) {
> + func = (void (*)(struct rq *))head->func;
> + next = head->next;
> + head->next = NULL;
> + head = next;
Naive question: is there some subtle C-issue that is evaded here by setting
head->next to NULL prior to copying over it?
(I know this piece of code only got copied around in this patch and this is
therefor not something that this patch actually introduced.)
> +
> + func(rq);
> + }
> +}
Thanks,
Paul Bolle
Powered by blists - more mailing lists