On Sun, Nov 20, 2016 at 10:39:32AM +0100, 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:
> 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? > > Or just send Linus a patch for this all at once after -rc1 is out? FWIW, I have a Coccinelle-generated patch for that [1]. ... there are a few cases where it doesn't quite work (e.g. formatting in the ath9k mac drivers), and I'm trying to put together a series [2] that fixes those cases up before leaving the bulk to Coccinelle. I hope to sort that out in the next few days. Thanks, Mark. [1] https://git.kernel.org/cgit/linux/kernel/git/mark/linux.git/commit/?h=core/access-once&id=7154d3cd5f2ddcc029d1afadc472c5720408d678 [2] https://git.kernel.org/cgit/linux/kernel/git/mark/linux.git/log/?h=core/access-once