summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/rtasd.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2010-05-19 02:12:32 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-05-21 17:29:39 +1000
commit7358650e9e9a81c854dc4582b4193eb5ea500bf6 (patch)
treef21f177a301f7a7f7ec99e3213d7a525b67fab89 /arch/powerpc/kernel/rtasd.c
parent78f622377f7d31d988db350a43c5689dd5f31876 (diff)
downloadlinux-7358650e9e9a81c854dc4582b4193eb5ea500bf6.tar.gz
linux-7358650e9e9a81c854dc4582b4193eb5ea500bf6.tar.bz2
linux-7358650e9e9a81c854dc4582b4193eb5ea500bf6.zip
powerpc/rtasd: Don't start event scan if scan rate is zero
There appear to be Pegasos systems which have the rtas-event-scan RTAS tokens, but on which the event scan always fails. They also have an event-scan-rate property containing 0, which means call event scan 0 times per minute. So interpret a scan rate of 0 to mean don't scan at all. This fixes the problem on the Pegasos machines and makes sense as well. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/rtasd.c')
-rw-r--r--arch/powerpc/kernel/rtasd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c
index e907ca66f75a..638883e23e3a 100644
--- a/arch/powerpc/kernel/rtasd.c
+++ b/arch/powerpc/kernel/rtasd.c
@@ -490,6 +490,12 @@ static int __init rtas_init(void)
return -ENODEV;
}
+ if (!rtas_event_scan_rate) {
+ /* Broken firmware: take a rate of zero to mean don't scan */
+ printk(KERN_DEBUG "rtasd: scan rate is 0, not scanning\n");
+ return 0;
+ }
+
/* Make room for the sequence number */
rtas_error_log_max = rtas_get_error_log_max();
rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int);