[1/5] powerpc/rtas: Add rtas_call_unlocked()
Michael Ellerman
mpe at ellerman.id.au
Thu Dec 17 22:57:31 AEDT 2015
On Tue, 2015-24-11 at 11:26:08 UTC, 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>
Series applied to powerpc next.
https://git.kernel.org/powerpc/c/209eb4e5cbaba53ab555f3e7b4
cheers
More information about the Linuxppc-dev
mailing list