On Tue, May 30, 2023 at 02:51:27PM +0000, Alan Huang wrote: > There is no concurrent updates to 'total' by other threads, plain access > is enough. But there might be threads updating 'counter', READ_ONCE is > required. > > Signed-off-by: Alan Huang <mmpgouride@xxxxxxxxx> Queued and pushed, thank you! Thanx, Paul > --- > CodeSamples/count/count_end_rcu.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/CodeSamples/count/count_end_rcu.c b/CodeSamples/count/count_end_rcu.c > index 8fc70611..71bd5269 100644 > --- a/CodeSamples/count/count_end_rcu.c > +++ b/CodeSamples/count/count_end_rcu.c > @@ -48,10 +48,10 @@ unsigned long read_count(void) //\lnlbl{read:b} > > rcu_read_lock(); //\lnlbl{read:rrl} > cap = rcu_dereference(countarrayp); //\lnlbl{read:deref} > - sum = READ_ONCE(cap->total); //\lnlbl{read:init} > + sum = cap->total; //\lnlbl{read:init} > for_each_thread(t) { //\lnlbl{read:add:b} > ctrp = READ_ONCE(cap->counterp[t]); > - if (ctrp != NULL) sum += *ctrp; //\lnlbl{read:add:e} > + if (ctrp != NULL) sum += READ_ONCE(*ctrp); //\lnlbl{read:add:e} > } > rcu_read_unlock(); //\lnlbl{read:rru} > return sum; //\lnlbl{read:ret} > -- > 2.34.1 >