diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2015-11-24 22:26:11 +1100 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-12-17 22:40:56 +1100 |
commit | 4456f4524604be2558e5f6a8e0f7cc9ed17c783e (patch) | |
tree | c48ec0ac00174e11d2c7194c31216ec9d5649182 /arch/powerpc/kernel/rtas.c | |
parent | b2e8590fa1e35c38680dcb87c9d1bfdcc6c61a40 (diff) | |
download | op-kernel-dev-4456f4524604be2558e5f6a8e0f7cc9ed17c783e.zip op-kernel-dev-4456f4524604be2558e5f6a8e0f7cc9ed17c783e.tar.gz |
powerpc/rtas: Use rtas_call_unlocked() in call_rtas_display_status()
Although call_rtas_display_status() does actually want to use the
regular RTAS locking, it doesn't want the extra logic that is in
rtas_call(), so currently it open codes the logic.
Instead we can use rtas_call_unlocked(), after taking the RTAS lock.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel/rtas.c')
-rw-r--r-- | arch/powerpc/kernel/rtas.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c index fcf2d65..f4fa137 100644 --- a/arch/powerpc/kernel/rtas.c +++ b/arch/powerpc/kernel/rtas.c @@ -93,21 +93,13 @@ static void unlock_rtas(unsigned long flags) */ static void call_rtas_display_status(unsigned char c) { - struct rtas_args *args = &rtas.args; unsigned long s; if (!rtas.base) return; - s = lock_rtas(); - - args->token = cpu_to_be32(10); - args->nargs = cpu_to_be32(1); - args->nret = cpu_to_be32(1); - args->rets = &(args->args[1]); - args->args[0] = cpu_to_be32(c); - - enter_rtas(__pa(args)); + s = lock_rtas(); + rtas_call_unlocked(&rtas.args, 10, 1, 1, NULL, c); unlock_rtas(s); } |