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); |
