>From a3544822ccd81e63b98f3db3c428c1867c983e9a Mon Sep 17 00:00:00 2001 From: Akira Yokosawa <akiyks@xxxxxxxxx> Date: Mon, 8 Oct 2018 16:11:29 +0900 Subject: [PATCH 2/6] count: Fix uses of READ/WRITE_ONCE() in count_lim_app Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- CodeSamples/count/count_lim_app.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CodeSamples/count/count_lim_app.c b/CodeSamples/count/count_lim_app.c index 1817c19..ad8f09f 100644 --- a/CodeSamples/count/count_lim_app.c +++ b/CodeSamples/count/count_lim_app.c @@ -59,7 +59,7 @@ static void balance_count(void) int add_count(unsigned long delta) { if (countermax - counter >= delta) { - counter += delta; + WRITE_ONCE(counter, counter + delta); return 1; } spin_lock(&gblcnt_mutex); @@ -77,7 +77,7 @@ int add_count(unsigned long delta) int sub_count(unsigned long delta) { if (counter >= delta) { - counter -= delta; + WRITE_ONCE(counter, counter - delta); return 1; } spin_lock(&gblcnt_mutex); @@ -101,7 +101,7 @@ unsigned long read_count(void) sum = globalcount; for_each_thread(t) if (counterp[t] != NULL) - sum += *counterp[t]; + sum += READ_ONCE(*counterp[t]); spin_unlock(&gblcnt_mutex); return sum; } -- 2.7.4