diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 14:17:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 14:17:05 -0400 |
commit | 79c4581262e225a7c96d88b632b05ab3b5e9a52c (patch) | |
tree | 8ef030c74ab7e0d0df27cf86195f915efd2832f7 /arch/powerpc/kernel/rtasd.c | |
parent | 59534f7298c5e28aaa64e6ed550e247f64ee72ae (diff) | |
parent | 99ec28f183daa450faa7bdad6f932364ae325648 (diff) |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (92 commits)
powerpc: Remove unused 'protect4gb' boot parameter
powerpc: Build-in e1000e for pseries & ppc64_defconfig
powerpc/pseries: Make request_ras_irqs() available to other pseries code
powerpc/numa: Use ibm,architecture-vec-5 to detect form 1 affinity
powerpc/numa: Set a smaller value for RECLAIM_DISTANCE to enable zone reclaim
powerpc: Use smt_snooze_delay=-1 to always busy loop
powerpc: Remove check of ibm,smt-snooze-delay OF property
powerpc/kdump: Fix race in kdump shutdown
powerpc/kexec: Fix race in kexec shutdown
powerpc/kexec: Speedup kexec hash PTE tear down
powerpc/pseries: Add hcall to read 4 ptes at a time in real mode
powerpc: Use more accurate limit for first segment memory allocations
powerpc/kdump: Use chip->shutdown to disable IRQs
powerpc/kdump: CPUs assume the context of the oopsing CPU
powerpc/crashdump: Do not fail on NULL pointer dereferencing
powerpc/eeh: Fix oops when probing in early boot
powerpc/pci: Check devices status property when scanning OF tree
powerpc/vio: Switch VIO Bus PM to use generic helpers
powerpc: Avoid bad relocations in iSeries code
powerpc: Use common cpu_die (fixes SMP+SUSPEND build)
...
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); |