Re: [PATCH] srcu: drop the needless initialization in srcu_gp_start()

From: Paul E. McKenney
Date: Tue Mar 15 2022 - 12:52:35 EST


On Tue, Mar 15, 2022 at 09:55:49AM +0100, Lukas Bulwahn wrote:
> Commit 9c7ef4c30f12 ("srcu: Make Tree SRCU able to operate without snp_node
> array") initializes the local variable sdp differently depending on the
> srcu's state in srcu_gp_start().
>
> Hence, the initialization of sdp with the variable definition is not used
> before its second initialization.
>
> Drop the needless initialization in srcu_gp_start() to have clear code.
>
> No functional change. Some changes in the resulting object code due to
> various rearrangements by the compiler.
>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>
> ---
> Paul, please pick this minor non-urgent clean-up patch.

Good eyes, thank you!

I have pulled this in for testing and review. If things go will,
I expect to push it into the v5.19 merge window (that is, not the one
that will likely open next week, but the one after that).

As usual, I could not resist wordsmithing the commit log. Could you
please check out the wordsmithed version below to make sure that I did
not mess something up?

Thanx, Paul

------------------------------------------------------------------------

commit a0c59d99e87c52d6832e1ad39421b4a4386cdfd6
Author: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>
Date: Tue Mar 15 09:55:49 2022 +0100

srcu: Drop needless initialization of sdp in srcu_gp_start()

Commit 9c7ef4c30f12 ("srcu: Make Tree SRCU able to operate without
snp_node array") initializes the local variable sdp differently depending
on the srcu's state in srcu_gp_start(). Either way, this initialization
overwrites the value used when sdp is defined.

This commit therefore drops this pointless definition-time initialization.
Although there is no functional change, compiler code generation may
be affected.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index e78b1c7929d6..3bc8267c5d0b 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -609,7 +609,7 @@ EXPORT_SYMBOL_GPL(__srcu_read_unlock);
*/
static void srcu_gp_start(struct srcu_struct *ssp)
{
- struct srcu_data *sdp = this_cpu_ptr(ssp->sda);
+ struct srcu_data *sdp;
int state;

if (smp_load_acquire(&ssp->srcu_size_state) < SRCU_SIZE_WAIT_BARRIER)