On Tue, 2015-11-24 at 22:26 +1100, Michael Ellerman wrote: > Most users of RTAS (Run-Time Abstraction Services) use rtas_call(), > which deals with locking as well as endian handling. > > However we have two users outside of rtas.c that can't use rtas_call() > because they have different locking requirements. > > The hotplug CPU code can't take the RTAS lock because the CPU would go > offline with the lock held and no other CPUs would be able to call RTAS > until the CPU came back online. > > The xmon code doesn't want to take the lock because it would risk dead > locking when we are trying to recover from a crash. > > Both sites required multiple patches when we added little endian > support, proving that programmers can't do endian right. > > Although that ship has sailed, we can still clean the code up by > providing an unlocked version of rtas_call() which avoids the need to > open code the logic elsewhere. > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > > commit 98bd678fc89575d0f4026a3ced3de19d90d1fe72 > Author: Michael Ellerman <m...@ellerman.id.au> > Date: Fri May 15 16:40:48 2015 +1000 > > powerpc/rtas: Add rtas_call_unlocked(), make enter_rtas() private
... wut. Obviously I fubared the commit message a bit here while rebasing. cheers _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev