@@ -1948,89 +1948,89 @@ atomic_long_dec_if_positive(atomic_long_t *v)
1948
1948
({ \
1949
1949
typeof(ptr) __ai_ptr = (ptr); \
1950
1950
kcsan_mb(); \
1951
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1951
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1952
1952
arch_xchg(__ai_ptr, __VA_ARGS__); \
1953
1953
})
1954
1954
1955
1955
#define xchg_acquire (ptr , ...) \
1956
1956
({ \
1957
1957
typeof(ptr) __ai_ptr = (ptr); \
1958
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1958
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1959
1959
arch_xchg_acquire(__ai_ptr, __VA_ARGS__); \
1960
1960
})
1961
1961
1962
1962
#define xchg_release (ptr , ...) \
1963
1963
({ \
1964
1964
typeof(ptr) __ai_ptr = (ptr); \
1965
1965
kcsan_release(); \
1966
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1966
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1967
1967
arch_xchg_release(__ai_ptr, __VA_ARGS__); \
1968
1968
})
1969
1969
1970
1970
#define xchg_relaxed (ptr , ...) \
1971
1971
({ \
1972
1972
typeof(ptr) __ai_ptr = (ptr); \
1973
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1973
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1974
1974
arch_xchg_relaxed(__ai_ptr, __VA_ARGS__); \
1975
1975
})
1976
1976
1977
1977
#define cmpxchg (ptr , ...) \
1978
1978
({ \
1979
1979
typeof(ptr) __ai_ptr = (ptr); \
1980
1980
kcsan_mb(); \
1981
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1981
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1982
1982
arch_cmpxchg(__ai_ptr, __VA_ARGS__); \
1983
1983
})
1984
1984
1985
1985
#define cmpxchg_acquire (ptr , ...) \
1986
1986
({ \
1987
1987
typeof(ptr) __ai_ptr = (ptr); \
1988
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1988
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1989
1989
arch_cmpxchg_acquire(__ai_ptr, __VA_ARGS__); \
1990
1990
})
1991
1991
1992
1992
#define cmpxchg_release (ptr , ...) \
1993
1993
({ \
1994
1994
typeof(ptr) __ai_ptr = (ptr); \
1995
1995
kcsan_release(); \
1996
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
1996
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
1997
1997
arch_cmpxchg_release(__ai_ptr, __VA_ARGS__); \
1998
1998
})
1999
1999
2000
2000
#define cmpxchg_relaxed (ptr , ...) \
2001
2001
({ \
2002
2002
typeof(ptr) __ai_ptr = (ptr); \
2003
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2003
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2004
2004
arch_cmpxchg_relaxed(__ai_ptr, __VA_ARGS__); \
2005
2005
})
2006
2006
2007
2007
#define cmpxchg64 (ptr , ...) \
2008
2008
({ \
2009
2009
typeof(ptr) __ai_ptr = (ptr); \
2010
2010
kcsan_mb(); \
2011
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2011
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2012
2012
arch_cmpxchg64(__ai_ptr, __VA_ARGS__); \
2013
2013
})
2014
2014
2015
2015
#define cmpxchg64_acquire (ptr , ...) \
2016
2016
({ \
2017
2017
typeof(ptr) __ai_ptr = (ptr); \
2018
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2018
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2019
2019
arch_cmpxchg64_acquire(__ai_ptr, __VA_ARGS__); \
2020
2020
})
2021
2021
2022
2022
#define cmpxchg64_release (ptr , ...) \
2023
2023
({ \
2024
2024
typeof(ptr) __ai_ptr = (ptr); \
2025
2025
kcsan_release(); \
2026
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2026
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2027
2027
arch_cmpxchg64_release(__ai_ptr, __VA_ARGS__); \
2028
2028
})
2029
2029
2030
2030
#define cmpxchg64_relaxed (ptr , ...) \
2031
2031
({ \
2032
2032
typeof(ptr) __ai_ptr = (ptr); \
2033
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2033
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2034
2034
arch_cmpxchg64_relaxed(__ai_ptr, __VA_ARGS__); \
2035
2035
})
2036
2036
@@ -2039,17 +2039,17 @@ atomic_long_dec_if_positive(atomic_long_t *v)
2039
2039
typeof(ptr) __ai_ptr = (ptr); \
2040
2040
typeof(oldp) __ai_oldp = (oldp); \
2041
2041
kcsan_mb(); \
2042
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2043
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2042
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2043
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2044
2044
arch_try_cmpxchg(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2045
2045
})
2046
2046
2047
2047
#define try_cmpxchg_acquire (ptr , oldp , ...) \
2048
2048
({ \
2049
2049
typeof(ptr) __ai_ptr = (ptr); \
2050
2050
typeof(oldp) __ai_oldp = (oldp); \
2051
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2052
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2051
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2052
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2053
2053
arch_try_cmpxchg_acquire(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2054
2054
})
2055
2055
@@ -2058,17 +2058,17 @@ atomic_long_dec_if_positive(atomic_long_t *v)
2058
2058
typeof(ptr) __ai_ptr = (ptr); \
2059
2059
typeof(oldp) __ai_oldp = (oldp); \
2060
2060
kcsan_release(); \
2061
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2062
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2061
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2062
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2063
2063
arch_try_cmpxchg_release(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2064
2064
})
2065
2065
2066
2066
#define try_cmpxchg_relaxed (ptr , oldp , ...) \
2067
2067
({ \
2068
2068
typeof(ptr) __ai_ptr = (ptr); \
2069
2069
typeof(oldp) __ai_oldp = (oldp); \
2070
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2071
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2070
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2071
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2072
2072
arch_try_cmpxchg_relaxed(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2073
2073
})
2074
2074
@@ -2077,17 +2077,17 @@ atomic_long_dec_if_positive(atomic_long_t *v)
2077
2077
typeof(ptr) __ai_ptr = (ptr); \
2078
2078
typeof(oldp) __ai_oldp = (oldp); \
2079
2079
kcsan_mb(); \
2080
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2081
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2080
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2081
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2082
2082
arch_try_cmpxchg64(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2083
2083
})
2084
2084
2085
2085
#define try_cmpxchg64_acquire (ptr , oldp , ...) \
2086
2086
({ \
2087
2087
typeof(ptr) __ai_ptr = (ptr); \
2088
2088
typeof(oldp) __ai_oldp = (oldp); \
2089
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2090
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2089
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2090
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2091
2091
arch_try_cmpxchg64_acquire(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2092
2092
})
2093
2093
@@ -2096,75 +2096,75 @@ atomic_long_dec_if_positive(atomic_long_t *v)
2096
2096
typeof(ptr) __ai_ptr = (ptr); \
2097
2097
typeof(oldp) __ai_oldp = (oldp); \
2098
2098
kcsan_release(); \
2099
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2100
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2099
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2100
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2101
2101
arch_try_cmpxchg64_release(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2102
2102
})
2103
2103
2104
2104
#define try_cmpxchg64_relaxed (ptr , oldp , ...) \
2105
2105
({ \
2106
2106
typeof(ptr) __ai_ptr = (ptr); \
2107
2107
typeof(oldp) __ai_oldp = (oldp); \
2108
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2109
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2108
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2109
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2110
2110
arch_try_cmpxchg64_relaxed(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2111
2111
})
2112
2112
2113
2113
#define cmpxchg_local (ptr , ...) \
2114
2114
({ \
2115
2115
typeof(ptr) __ai_ptr = (ptr); \
2116
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2116
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2117
2117
arch_cmpxchg_local(__ai_ptr, __VA_ARGS__); \
2118
2118
})
2119
2119
2120
2120
#define cmpxchg64_local (ptr , ...) \
2121
2121
({ \
2122
2122
typeof(ptr) __ai_ptr = (ptr); \
2123
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2123
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2124
2124
arch_cmpxchg64_local(__ai_ptr, __VA_ARGS__); \
2125
2125
})
2126
2126
2127
2127
#define sync_cmpxchg (ptr , ...) \
2128
2128
({ \
2129
2129
typeof(ptr) __ai_ptr = (ptr); \
2130
2130
kcsan_mb(); \
2131
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2131
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2132
2132
arch_sync_cmpxchg(__ai_ptr, __VA_ARGS__); \
2133
2133
})
2134
2134
2135
2135
#define try_cmpxchg_local (ptr , oldp , ...) \
2136
2136
({ \
2137
2137
typeof(ptr) __ai_ptr = (ptr); \
2138
2138
typeof(oldp) __ai_oldp = (oldp); \
2139
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2140
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2139
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2140
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2141
2141
arch_try_cmpxchg_local(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2142
2142
})
2143
2143
2144
2144
#define try_cmpxchg64_local (ptr , oldp , ...) \
2145
2145
({ \
2146
2146
typeof(ptr) __ai_ptr = (ptr); \
2147
2147
typeof(oldp) __ai_oldp = (oldp); \
2148
- instrument_atomic_write (__ai_ptr, sizeof(*__ai_ptr)); \
2149
- instrument_atomic_write (__ai_oldp, sizeof(*__ai_oldp)); \
2148
+ instrument_atomic_read_write (__ai_ptr, sizeof(*__ai_ptr)); \
2149
+ instrument_read_write (__ai_oldp, sizeof(*__ai_oldp)); \
2150
2150
arch_try_cmpxchg64_local(__ai_ptr, __ai_oldp, __VA_ARGS__); \
2151
2151
})
2152
2152
2153
2153
#define cmpxchg_double (ptr , ...) \
2154
2154
({ \
2155
2155
typeof(ptr) __ai_ptr = (ptr); \
2156
2156
kcsan_mb(); \
2157
- instrument_atomic_write (__ai_ptr, 2 * sizeof(*__ai_ptr)); \
2157
+ instrument_atomic_read_write (__ai_ptr, 2 * sizeof(*__ai_ptr)); \
2158
2158
arch_cmpxchg_double(__ai_ptr, __VA_ARGS__); \
2159
2159
})
2160
2160
2161
2161
2162
2162
#define cmpxchg_double_local (ptr , ...) \
2163
2163
({ \
2164
2164
typeof(ptr) __ai_ptr = (ptr); \
2165
- instrument_atomic_write (__ai_ptr, 2 * sizeof(*__ai_ptr)); \
2165
+ instrument_atomic_read_write (__ai_ptr, 2 * sizeof(*__ai_ptr)); \
2166
2166
arch_cmpxchg_double_local(__ai_ptr, __VA_ARGS__); \
2167
2167
})
2168
2168
2169
2169
#endif /* _LINUX_ATOMIC_INSTRUMENTED_H */
2170
- // 97fe4d79aa058d2164df824632cbc4f716d2a407
2170
+ // 6b513a42e1a1b5962532a019b7fc91eaa044ad5e
0 commit comments