powerpc/xmon: Use rtas_call_unlocked() in xmon
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 24 Nov 2015 11:26:09 +0000 (22:26 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 17 Dec 2015 11:40:55 +0000 (22:40 +1100)
Avoid open coding the logic by using rtas_call_unlocked().

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/xmon/xmon.c

index e8c7a937955ec46bd4b916c390a5e029151c1b67..07a8508cb7fae6cd1d0a742eb0c1d4c19769eeac 100644 (file)
@@ -320,6 +320,7 @@ static inline void disable_surveillance(void)
 #ifdef CONFIG_PPC_PSERIES
        /* Since this can't be a module, args should end up below 4GB. */
        static struct rtas_args args;
+       int token;
 
        /*
         * At this point we have got all the cpus we can into
@@ -328,17 +329,12 @@ static inline void disable_surveillance(void)
         * If we did try to take rtas.lock there would be a
         * real possibility of deadlock.
         */
-       args.token = rtas_token("set-indicator");
-       if (args.token == RTAS_UNKNOWN_SERVICE)
+       token = rtas_token("set-indicator");
+       if (token == RTAS_UNKNOWN_SERVICE)
                return;
-       args.token = cpu_to_be32(args.token);
-       args.nargs = cpu_to_be32(3);
-       args.nret = cpu_to_be32(1);
-       args.rets = &args.args[3];
-       args.args[0] = cpu_to_be32(SURVEILLANCE_TOKEN);
-       args.args[1] = 0;
-       args.args[2] = 0;
-       enter_rtas(__pa(&args));
+
+       rtas_call_unlocked(&args, token, 3, 1, NULL, SURVEILLANCE_TOKEN, 0, 0);
+
 #endif /* CONFIG_PPC_PSERIES */
 }