[PATCH 1/5] powerpc/rtas: Add rtas_call_unlocked()
Michael Ellerman
mpe at ellerman.id.au
Tue Nov 24 22:58:06 AEDT 2015
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 <mpe at ellerman.id.au>
>
> commit 98bd678fc89575d0f4026a3ced3de19d90d1fe72
> Author: Michael Ellerman <mpe at 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
More information about the Linuxppc-dev
mailing list