From 31bb5cb18271bb05c53a2b27b9d92dec0a55e380 Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Mon, 25 Jan 2021 11:56:46 +0100 Subject: [PATCH] porting: prefer READ_ONCE in place of ACCESS_ONCE --- kernel/compat.h | 7 +++++++ kernel/lib_mapfree.c | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/kernel/compat.h b/kernel/compat.h index f17cbd02..a0ef7598 100644 --- a/kernel/compat.h +++ b/kernel/compat.h @@ -253,4 +253,11 @@ extern int _compat_unlink( #define HAS_ZLIB #endif +/* general compat */ + +/* new code prefers READ_ONCE in place of ACCESS_ONCE */ +#ifndef READ_ONCE +#define READ_ONCE ACCESS_ONCE +#endif + #endif /* _MARS_COMPAT */ diff --git a/kernel/lib_mapfree.c b/kernel/lib_mapfree.c index 77af0e7a..6ae0df82 100644 --- a/kernel/lib_mapfree.c +++ b/kernel/lib_mapfree.c @@ -435,20 +435,20 @@ loff_t mf_dirty_length(struct mapfree_info *mf, enum dirty_stage stage) */ if (stage > 0) { struct dirty_length *d0 = _get_dl(mf, 0); - u64 nr1 = ACCESS_ONCE(dl->dl_appends); - u64 nr0 = ACCESS_ONCE(d0->dl_appends); + u64 nr1 = READ_ONCE(dl->dl_appends); + u64 nr0 = READ_ONCE(d0->dl_appends); if (nr0 <= nr1) { loff_t real_size = mapfree_real_size(mf); /* check for races once again */ - nr1 = ACCESS_ONCE(dl->dl_appends); - nr0 = ACCESS_ONCE(d0->dl_appends); + nr1 = READ_ONCE(dl->dl_appends); + nr0 = READ_ONCE(d0->dl_appends); if (nr0 <= nr1) return real_size; } } - return ACCESS_ONCE(dl->dl_length); + return READ_ONCE(dl->dl_length); #else /* cannot rely on atomic read of two 32bit values */ loff_t res; unsigned long flags;