diff options
Diffstat (limited to 'arch/powerpc/kernel/rtasd.c')
-rw-r--r-- | arch/powerpc/kernel/rtasd.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c index 4190eae7850a..638883e23e3a 100644 --- a/arch/powerpc/kernel/rtasd.c +++ b/arch/powerpc/kernel/rtasd.c | |||
@@ -411,9 +411,9 @@ static void rtas_event_scan(struct work_struct *w) | |||
411 | 411 | ||
412 | get_online_cpus(); | 412 | get_online_cpus(); |
413 | 413 | ||
414 | cpu = next_cpu(smp_processor_id(), cpu_online_map); | 414 | cpu = cpumask_next(smp_processor_id(), cpu_online_mask); |
415 | if (cpu == NR_CPUS) { | 415 | if (cpu >= nr_cpu_ids) { |
416 | cpu = first_cpu(cpu_online_map); | 416 | cpu = cpumask_first(cpu_online_mask); |
417 | 417 | ||
418 | if (first_pass) { | 418 | if (first_pass) { |
419 | first_pass = 0; | 419 | first_pass = 0; |
@@ -466,8 +466,8 @@ static void start_event_scan(void) | |||
466 | /* Retreive errors from nvram if any */ | 466 | /* Retreive errors from nvram if any */ |
467 | retreive_nvram_error_log(); | 467 | retreive_nvram_error_log(); |
468 | 468 | ||
469 | schedule_delayed_work_on(first_cpu(cpu_online_map), &event_scan_work, | 469 | schedule_delayed_work_on(cpumask_first(cpu_online_mask), |
470 | event_scan_delay); | 470 | &event_scan_work, event_scan_delay); |
471 | } | 471 | } |
472 | 472 | ||
473 | static int __init rtas_init(void) | 473 | static int __init rtas_init(void) |
@@ -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); |