On Fri, 04 Aug 2017 11:40:43 +1000 Benjamin Herrenschmidt <b...@kernel.crashing.org> wrote:
> On Fri, 2017-08-04 at 03:50 +1000, Nicholas Piggin wrote: > > Hey, so... why are any of these implemented in asm? We should > > just do them all in C, right? I looked a bit harder at code gen > > and a couple of them are still emitting larx/stcx. > > As long as we can guarantee that the C compiler won't play games > moving stuff around. But yes, I tend to agree. I believe so. I mean we already depend on the same pattern for any other sequence of local_irq_disable(); c code; local_irq_enable(); so we'd have other problems if we couldn't. I can easily believe there have been bugs with the fixed r13 handling in gcc in the past, but it looks like it does the right thing now AFAIKS. Thanks, Nick