[PATCH] CodeSample/count: Update the places where READ_ONCE is used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>
---
 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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux