From: Zhouyi Zhou <[email protected]>
In function srcu_gp_end, the variable idxnext is never used after assign,
remove it and its assign statement.
Signed-off-by: Zhouyi Zhou <[email protected]>
---
kernel/rcu/srcutree.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index d5cea81..1241715 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -531,7 +531,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
unsigned long flags;
unsigned long gpseq;
int idx;
- int idxnext;
unsigned long mask;
struct srcu_data *sdp;
struct srcu_node *snp;
@@ -555,7 +554,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
/* Initiate callback invocation as needed. */
idx = rcu_seq_ctr(gpseq) % ARRAY_SIZE(snp->srcu_have_cbs);
- idxnext = (idx + 1) % ARRAY_SIZE(snp->srcu_have_cbs);
rcu_for_each_node_breadth_first(sp, snp) {
spin_lock_irq_rcu_node(snp);
cbs = false;
--
2.1.4
On Thu, Feb 22, 2018 at 06:52:37AM +0000, [email protected] wrote:
> From: Zhouyi Zhou <[email protected]>
>
> In function srcu_gp_end, the variable idxnext is never used after assign,
> remove it and its assign statement.
>
> Signed-off-by: Zhouyi Zhou <[email protected]>
Good catch, but Byungchul Park beat you to it. Please see commit
a72da917f186 ("srcu: Remove dead code in srcu_gp_end()") in -rcu.
Thanx, Paul
> ---
> kernel/rcu/srcutree.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
> index d5cea81..1241715 100644
> --- a/kernel/rcu/srcutree.c
> +++ b/kernel/rcu/srcutree.c
> @@ -531,7 +531,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
> unsigned long flags;
> unsigned long gpseq;
> int idx;
> - int idxnext;
> unsigned long mask;
> struct srcu_data *sdp;
> struct srcu_node *snp;
> @@ -555,7 +554,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
>
> /* Initiate callback invocation as needed. */
> idx = rcu_seq_ctr(gpseq) % ARRAY_SIZE(snp->srcu_have_cbs);
> - idxnext = (idx + 1) % ARRAY_SIZE(snp->srcu_have_cbs);
> rcu_for_each_node_breadth_first(sp, snp) {
> spin_lock_irq_rcu_node(snp);
> cbs = false;
> --
> 2.1.4
>
On Fri, Feb 23, 2018 at 09:04:05AM +0800, Zhouyi Zhou wrote:
> Thanks Paul for reviewing
And thank you for your interest in SRCU! I am pretty sure that other
bugs still remain. ;-)
Thanx, Paul
> Cheers
> Zhouyi
>
> On Friday, February 23, 2018, Paul E. McKenney <[email protected]>
> wrote:
>
> > On Thu, Feb 22, 2018 at 06:52:37AM +0000, [email protected] wrote:
> > > From: Zhouyi Zhou <[email protected]>
> > >
> > > In function srcu_gp_end, the variable idxnext is never used after assign,
> > > remove it and its assign statement.
> > >
> > > Signed-off-by: Zhouyi Zhou <[email protected]>
> >
> > Good catch, but Byungchul Park beat you to it. Please see commit
> > a72da917f186 ("srcu: Remove dead code in srcu_gp_end()") in -rcu.
> >
> > Thanx, Paul
> >
> > > ---
> > > kernel/rcu/srcutree.c | 2 --
> > > 1 file changed, 2 deletions(-)
> > >
> > > diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
> > > index d5cea81..1241715 100644
> > > --- a/kernel/rcu/srcutree.c
> > > +++ b/kernel/rcu/srcutree.c
> > > @@ -531,7 +531,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
> > > unsigned long flags;
> > > unsigned long gpseq;
> > > int idx;
> > > - int idxnext;
> > > unsigned long mask;
> > > struct srcu_data *sdp;
> > > struct srcu_node *snp;
> > > @@ -555,7 +554,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
> > >
> > > /* Initiate callback invocation as needed. */
> > > idx = rcu_seq_ctr(gpseq) % ARRAY_SIZE(snp->srcu_have_cbs);
> > > - idxnext = (idx + 1) % ARRAY_SIZE(snp->srcu_have_cbs);
> > > rcu_for_each_node_breadth_first(sp, snp) {
> > > spin_lock_irq_rcu_node(snp);
> > > cbs = false;
> > > --
> > > 2.1.4
> > >
> >
> >
Thanks Paul's encouragement, I will keep studying SRCU code.
On Fri, Feb 23, 2018 at 9:20 AM, Paul E. McKenney
<[email protected]> wrote:
> On Fri, Feb 23, 2018 at 09:04:05AM +0800, Zhouyi Zhou wrote:
>> Thanks Paul for reviewing
>
> And thank you for your interest in SRCU! I am pretty sure that other
> bugs still remain. ;-)
>
> Thanx, Paul
>
>> Cheers
>> Zhouyi
>>
>> On Friday, February 23, 2018, Paul E. McKenney <[email protected]>
>> wrote:
>>
>> > On Thu, Feb 22, 2018 at 06:52:37AM +0000, [email protected] wrote:
>> > > From: Zhouyi Zhou <[email protected]>
>> > >
>> > > In function srcu_gp_end, the variable idxnext is never used after assign,
>> > > remove it and its assign statement.
>> > >
>> > > Signed-off-by: Zhouyi Zhou <[email protected]>
>> >
>> > Good catch, but Byungchul Park beat you to it. Please see commit
>> > a72da917f186 ("srcu: Remove dead code in srcu_gp_end()") in -rcu.
>> >
>> > Thanx, Paul
>> >
>> > > ---
>> > > kernel/rcu/srcutree.c | 2 --
>> > > 1 file changed, 2 deletions(-)
>> > >
>> > > diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
>> > > index d5cea81..1241715 100644
>> > > --- a/kernel/rcu/srcutree.c
>> > > +++ b/kernel/rcu/srcutree.c
>> > > @@ -531,7 +531,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
>> > > unsigned long flags;
>> > > unsigned long gpseq;
>> > > int idx;
>> > > - int idxnext;
>> > > unsigned long mask;
>> > > struct srcu_data *sdp;
>> > > struct srcu_node *snp;
>> > > @@ -555,7 +554,6 @@ static void srcu_gp_end(struct srcu_struct *sp)
>> > >
>> > > /* Initiate callback invocation as needed. */
>> > > idx = rcu_seq_ctr(gpseq) % ARRAY_SIZE(snp->srcu_have_cbs);
>> > > - idxnext = (idx + 1) % ARRAY_SIZE(snp->srcu_have_cbs);
>> > > rcu_for_each_node_breadth_first(sp, snp) {
>> > > spin_lock_irq_rcu_node(snp);
>> > > cbs = false;
>> > > --
>> > > 2.1.4
>> > >
>> >
>> >
>