]> err.no Git - linux-2.6/blobdiff - kernel/profile.c
wait_task_stopped/continued: remove unneeded p->signal != NULL check
[linux-2.6] / kernel / profile.c
index 9bfadb248dd877b009e49710db79957f13188c5d..6f69bf792d964b7e262f7f5c066375d8fdeb8c77 100644 (file)
@@ -26,6 +26,7 @@
 #include <asm/sections.h>
 #include <asm/semaphore.h>
 #include <asm/irq_regs.h>
+#include <asm/ptrace.h>
 
 struct profile_hit {
        u32 pc, hits;
@@ -198,11 +199,11 @@ EXPORT_SYMBOL_GPL(register_timer_hook);
 EXPORT_SYMBOL_GPL(unregister_timer_hook);
 EXPORT_SYMBOL_GPL(task_handoff_register);
 EXPORT_SYMBOL_GPL(task_handoff_unregister);
+EXPORT_SYMBOL_GPL(profile_event_register);
+EXPORT_SYMBOL_GPL(profile_event_unregister);
 
 #endif /* CONFIG_PROFILING */
 
-EXPORT_SYMBOL_GPL(profile_event_register);
-EXPORT_SYMBOL_GPL(profile_event_unregister);
 
 #ifdef CONFIG_SMP
 /*
@@ -340,11 +341,12 @@ static int __devinit profile_cpu_callback(struct notifier_block *info,
 
        switch (action) {
        case CPU_UP_PREPARE:
+       case CPU_UP_PREPARE_FROZEN:
                node = cpu_to_node(cpu);
                per_cpu(cpu_profile_flip, cpu) = 0;
                if (!per_cpu(cpu_profile_hits, cpu)[1]) {
                        page = alloc_pages_node(node,
-                                       GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
+                                       GFP_KERNEL | __GFP_ZERO,
                                        0);
                        if (!page)
                                return NOTIFY_BAD;
@@ -352,7 +354,7 @@ static int __devinit profile_cpu_callback(struct notifier_block *info,
                }
                if (!per_cpu(cpu_profile_hits, cpu)[0]) {
                        page = alloc_pages_node(node,
-                                       GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
+                                       GFP_KERNEL | __GFP_ZERO,
                                        0);
                        if (!page)
                                goto out_free;
@@ -365,10 +367,13 @@ static int __devinit profile_cpu_callback(struct notifier_block *info,
                __free_page(page);
                return NOTIFY_BAD;
        case CPU_ONLINE:
+       case CPU_ONLINE_FROZEN:
                cpu_set(cpu, prof_cpu_mask);
                break;
        case CPU_UP_CANCELED:
+       case CPU_UP_CANCELED_FROZEN:
        case CPU_DEAD:
+       case CPU_DEAD_FROZEN:
                cpu_clear(cpu, prof_cpu_mask);
                if (per_cpu(cpu_profile_hits, cpu)[0]) {
                        page = virt_to_page(per_cpu(cpu_profile_hits, cpu)[0]);