Re: [PATCH] drivers/usb: use READ_ONCE instead of deprecated ACCESS_ONCE

From: Davidlohr Bueso
Date: Sun Nov 20 2016 - 11:11:05 EST


Hi Greg!

On Sun, 20 Nov 2016, Greg KH wrote:

On Sat, Nov 19, 2016 at 11:54:25AM -0800, Davidlohr Bueso wrote:
With the new standardized functions, we can replace all ACCESS_ONCE()
calls across relevant drivers/usb/.

ACCESS_ONCE() does not work reliably on non-scalar types. For example
gcc 4.6 and 4.7 might remove the volatile tag for such accesses during
the SRA (scalar replacement of aggregates) step:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145

Update the new calls regardless of if it is a scalar type, this is
cleaner than having three alternatives.

Signed-off-by: Davidlohr Bueso <dbueso@xxxxxxx>

Nit, this doesn't match your From: line :(

That's on purpose, and all my patches are the same.

If this is the case, why not just replacing the define for ACCESS_ONCE()
with READ_ONCE() and then go back and just do a search/replace for the
whole kernel all at once?

So that we don't have three variants; the idea is to eventually
get rid of ACCESS_ONCE entirely.


Or just send Linus a patch for this all at once after -rc1 is out?

No rush, whenever you see fit.

Thanks,
Davidlohr