@@ -2322,9 +2322,9 @@ static const char * const tomoyo_memory_headers[TOMOYO_MAX_MEMORY_STAT] = {
2322
2322
[TOMOYO_MEMORY_QUERY ] = "query message:" ,
2323
2323
};
2324
2324
2325
- /* Timestamp counter for last updated. */
2326
- static unsigned int tomoyo_stat_updated [TOMOYO_MAX_POLICY_STAT ];
2327
2325
/* Counter for number of updates. */
2326
+ static atomic_t tomoyo_stat_updated [TOMOYO_MAX_POLICY_STAT ];
2327
+ /* Timestamp counter for last updated. */
2328
2328
static time64_t tomoyo_stat_modified [TOMOYO_MAX_POLICY_STAT ];
2329
2329
2330
2330
/**
@@ -2336,10 +2336,7 @@ static time64_t tomoyo_stat_modified[TOMOYO_MAX_POLICY_STAT];
2336
2336
*/
2337
2337
void tomoyo_update_stat (const u8 index )
2338
2338
{
2339
- /*
2340
- * I don't use atomic operations because race condition is not fatal.
2341
- */
2342
- tomoyo_stat_updated [index ]++ ;
2339
+ atomic_inc (& tomoyo_stat_updated [index ]);
2343
2340
tomoyo_stat_modified [index ] = ktime_get_real_seconds ();
2344
2341
}
2345
2342
@@ -2360,7 +2357,7 @@ static void tomoyo_read_stat(struct tomoyo_io_buffer *head)
2360
2357
for (i = 0 ; i < TOMOYO_MAX_POLICY_STAT ; i ++ ) {
2361
2358
tomoyo_io_printf (head , "Policy %-30s %10u" ,
2362
2359
tomoyo_policy_headers [i ],
2363
- tomoyo_stat_updated [i ]);
2360
+ atomic_read ( & tomoyo_stat_updated [i ]) );
2364
2361
if (tomoyo_stat_modified [i ]) {
2365
2362
struct tomoyo_time stamp ;
2366
2363
0 commit comments