On Tue, Dec 17, 2019 at 10:05:53AM -0800, Linus Torvalds wrote: > On Tue, Dec 17, 2019 at 10:04 AM Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > Let me think about it. > > .. and in the short term, maybe for code generation, the right thing > is to just do the cast in the bitops, where we can just cast to > "unsigned long *" and remove the volatile that way. Yeah, I think I'll spin that patch series tomorrow anyway, since I don't think we need to hold it up. > I'm still hoping there's a trick, but.. Well, there's always Peter's awful hack [1] but it's really gross. FWIW, I've pushed the handful of patches I have to [2], which drop the GCC 4.8 workaround and introduce a non-atomic version instead of the '__builtin_memcpy()'. Will [1] https://lore.kernel.org/lkml/20191213125618.GD2844@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [2] https://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git/log/?h=rwonce/cleanup