> --- a/kernel/rcuclassic.c~rcu-fix-sparse-shadowed-variable-warning
> +++ a/kernel/rcuclassic.c
> @@ -561,15 +561,15 @@ static void __rcu_process_callbacks(stru
> local_irq_restore(flags);
>
> if (rcu_batch_after(rdp->batch, rcp->pending)) {
> - unsigned long flags;
> + unsigned long flags2;
>
> /* and start it/schedule start if it's a new batch */
> - spin_lock_irqsave(&rcp->lock, flags);
> + spin_lock_irqsave(&rcp->lock, flags2);
> if (rcu_batch_after(rdp->batch, rcp->pending)) {
> rcp->pending = rdp->batch;
> rcu_start_batch(rcp);
> }
> - spin_unlock_irqrestore(&rcp->lock, flags);
> + spin_unlock_irqrestore(&rcp->lock, flags2);
> }
> }
Bzzzrt... just remove second variable.
On Thu, 2008-08-28 at 07:31 +0400, Alexey Dobriyan wrote:
> > --- a/kernel/rcuclassic.c~rcu-fix-sparse-shadowed-variable-warning
> > +++ a/kernel/rcuclassic.c
> > @@ -561,15 +561,15 @@ static void __rcu_process_callbacks(stru
> > local_irq_restore(flags);
> >
> > if (rcu_batch_after(rdp->batch, rcp->pending)) {
> > - unsigned long flags;
> > + unsigned long flags2;
> >
> > /* and start it/schedule start if it's a new batch */
> > - spin_lock_irqsave(&rcp->lock, flags);
> > + spin_lock_irqsave(&rcp->lock, flags2);
> > if (rcu_batch_after(rdp->batch, rcp->pending)) {
> > rcp->pending = rdp->batch;
> > rcu_start_batch(rcp);
> > }
> > - spin_unlock_irqrestore(&rcp->lock, flags);
> > + spin_unlock_irqrestore(&rcp->lock, flags2);
> > }
> > }
>
> Bzzzrt... just remove second variable.
>
>From my original e-mail:
It would be safe in this case to just remove the second declaration of flags
and reuse it as it is outside the local_irq_save/restore pair. I did it
this
way in case there are future changes that might mix up the use of flags.
Feel free to just remove the second flags declaration if you'd rather do
it
that way.
Cheers,
Harvey