diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2010-05-18 22:12:32 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-05-21 03:29:39 -0400 |
commit | 7358650e9e9a81c854dc4582b4193eb5ea500bf6 (patch) | |
tree | f21f177a301f7a7f7ec99e3213d7a525b67fab89 | |
parent | 78f622377f7d31d988db350a43c5689dd5f31876 (diff) |
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>
-rw-r--r-- | arch/powerpc/kernel/rtasd.c | 6 |
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) | |||
490 | return -ENODEV; | 490 | return -ENODEV; |
491 | } | 491 | } |
492 | 492 | ||
493 | if (!rtas_event_scan_rate) { | ||
494 | /* Broken firmware: take a rate of zero to mean don't scan */ | ||
495 | printk(KERN_DEBUG "rtasd: scan rate is 0, not scanning\n"); | ||
496 | return 0; | ||
497 | } | ||
498 | |||
493 | /* Make room for the sequence number */ | 499 | /* Make room for the sequence number */ |
494 | rtas_error_log_max = rtas_get_error_log_max(); | 500 | rtas_error_log_max = rtas_get_error_log_max(); |
495 | rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int); | 501 | rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int); |