Commit d613adcd authored by Nathan Fontenot's avatar Nathan Fontenot Committed by Linus Torvalds

[PATCH] ppc64: fix enable_surveillance() for power5

On some platforms (notably power5) you can't enable surveillance
(firmware/service processor watchdog) from the kernel - you have to do
it in the firmware.

This patch changes enable_surveillance() to make the message that is
printed in this situation more informative.  Additionaly, the rtas_call
was changed to rtas_set_indicator so as to avoid having to handle
RTAS_BUSY returns.
Signed-off-by: default avatarNathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bf851860
...@@ -343,15 +343,18 @@ static int enable_surveillance(int timeout) ...@@ -343,15 +343,18 @@ static int enable_surveillance(int timeout)
{ {
int error; int error;
error = rtas_call(rtas_token("set-indicator"), 3, 1, NULL, error = rtas_set_indicator(SURVEILLANCE_TOKEN, 0, timeout);
SURVEILLANCE_TOKEN, 0, timeout);
if (error) { if (error == 0)
printk(KERN_ERR "rtasd: could not enable surveillance\n"); return 0;
return -1;
if (error == RTAS_NO_SUCH_INDICATOR) {
printk(KERN_INFO "rtasd: surveillance not supported\n");
return 0;
} }
return 0; printk(KERN_ERR "rtasd: could not update surveillance\n");
return -1;
} }
static int get_eventscan_parms(void) static int get_eventscan_parms(void)
......
...@@ -22,12 +22,13 @@ ...@@ -22,12 +22,13 @@
/* Buffer size for ppc_rtas system call. */ /* Buffer size for ppc_rtas system call. */
#define RTAS_RMOBUF_MAX (64 * 1024) #define RTAS_RMOBUF_MAX (64 * 1024)
/* RTAS return codes */ /* RTAS return status codes */
#define RTAS_BUSY -2 /* RTAS Return Status - Busy */ #define RTAS_BUSY -2 /* RTAS Busy */
#define RTAS_EXTENDED_DELAY_MIN 9900 #define RTAS_NO_SUCH_INDICATOR -3 /* No such indicator implemented */
#define RTAS_EXTENDED_DELAY_MAX 9905 #define RTAS_EXTENDED_DELAY_MIN 9900
#define RTAS_EXTENDED_DELAY_MAX 9905
#define RTAS_UNKNOWN_OP -1099 /* Return Status - Unknown RTAS Token */ #define RTAS_UNKNOWN_OP -1099 /* Unknown RTAS Token */
/* /*
* In general to call RTAS use rtas_token("string") to lookup * In general to call RTAS use rtas_token("string") to lookup
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment