On Tue, Mar 30, 2021 at 03:51:21AM -0700, Guenter Roeck wrote: > [ ... ] > > Then please explain why _this_ use of time_after() is wrong but all > others in the kernel are not. Also, please note that we are not > concerned with code generation by the compiler as long as the > generated code is correct (and I don't see any indication that > it isn't). The accesses to priv->temp_input[], ->fan_input[] and ->updated (where this relates to your question about time_after()) are not wrong, but undefined. But if we are not concerned with code that is currently generated correctly, which indeed is the case in the five arch x compiler combinations I tested, then there simply is no point to this patch. Thanks for going through this with me, Jonas P.S. Admittedly from a sample way too small, but in the kernel time_after(jiffies, x) calls do not generally appear to involve an expression x with a data race. And there are a few calls where READ_ONCE() is indeed used in x.