diff options
| author | Ingo Molnar <mingo@elte.hu> | 2011-05-01 13:09:39 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-05-01 13:09:39 -0400 |
| commit | 809435ff4f43a5c0cb0201b3b89176253d5ade18 (patch) | |
| tree | 607d673c02117656a956b54dd2bb80fe94edea61 /kernel | |
| parent | 32673822e440eb92eb334631eb0a199d0c532d13 (diff) | |
| parent | 058e297d34a404caaa5ed277de15698d8dc43000 (diff) | |
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kexec.c | 7 | ||||
| -rw-r--r-- | kernel/power/hibernate.c | 10 | ||||
| -rw-r--r-- | kernel/power/suspend.c | 5 | ||||
| -rw-r--r-- | kernel/trace/Kconfig | 2 | ||||
| -rw-r--r-- | kernel/trace/ftrace.c | 12 |
5 files changed, 27 insertions, 9 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c index 55936f9cb251..87b77de03dd3 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/vmalloc.h> | 33 | #include <linux/vmalloc.h> |
| 34 | #include <linux/swap.h> | 34 | #include <linux/swap.h> |
| 35 | #include <linux/kmsg_dump.h> | 35 | #include <linux/kmsg_dump.h> |
| 36 | #include <linux/syscore_ops.h> | ||
| 36 | 37 | ||
| 37 | #include <asm/page.h> | 38 | #include <asm/page.h> |
| 38 | #include <asm/uaccess.h> | 39 | #include <asm/uaccess.h> |
| @@ -1532,6 +1533,11 @@ int kernel_kexec(void) | |||
| 1532 | local_irq_disable(); | 1533 | local_irq_disable(); |
| 1533 | /* Suspend system devices */ | 1534 | /* Suspend system devices */ |
| 1534 | error = sysdev_suspend(PMSG_FREEZE); | 1535 | error = sysdev_suspend(PMSG_FREEZE); |
| 1536 | if (!error) { | ||
| 1537 | error = syscore_suspend(); | ||
| 1538 | if (error) | ||
| 1539 | sysdev_resume(); | ||
| 1540 | } | ||
| 1535 | if (error) | 1541 | if (error) |
| 1536 | goto Enable_irqs; | 1542 | goto Enable_irqs; |
| 1537 | } else | 1543 | } else |
| @@ -1546,6 +1552,7 @@ int kernel_kexec(void) | |||
| 1546 | 1552 | ||
| 1547 | #ifdef CONFIG_KEXEC_JUMP | 1553 | #ifdef CONFIG_KEXEC_JUMP |
| 1548 | if (kexec_image->preserve_context) { | 1554 | if (kexec_image->preserve_context) { |
| 1555 | syscore_resume(); | ||
| 1549 | sysdev_resume(); | 1556 | sysdev_resume(); |
| 1550 | Enable_irqs: | 1557 | Enable_irqs: |
| 1551 | local_irq_enable(); | 1558 | local_irq_enable(); |
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index aeabd26e3342..50aae660174d 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c | |||
| @@ -273,8 +273,11 @@ static int create_image(int platform_mode) | |||
| 273 | local_irq_disable(); | 273 | local_irq_disable(); |
| 274 | 274 | ||
| 275 | error = sysdev_suspend(PMSG_FREEZE); | 275 | error = sysdev_suspend(PMSG_FREEZE); |
| 276 | if (!error) | 276 | if (!error) { |
| 277 | error = syscore_suspend(); | 277 | error = syscore_suspend(); |
| 278 | if (error) | ||
| 279 | sysdev_resume(); | ||
| 280 | } | ||
| 278 | if (error) { | 281 | if (error) { |
| 279 | printk(KERN_ERR "PM: Some system devices failed to power down, " | 282 | printk(KERN_ERR "PM: Some system devices failed to power down, " |
| 280 | "aborting hibernation\n"); | 283 | "aborting hibernation\n"); |
| @@ -407,8 +410,11 @@ static int resume_target_kernel(bool platform_mode) | |||
| 407 | local_irq_disable(); | 410 | local_irq_disable(); |
| 408 | 411 | ||
| 409 | error = sysdev_suspend(PMSG_QUIESCE); | 412 | error = sysdev_suspend(PMSG_QUIESCE); |
| 410 | if (!error) | 413 | if (!error) { |
| 411 | error = syscore_suspend(); | 414 | error = syscore_suspend(); |
| 415 | if (error) | ||
| 416 | sysdev_resume(); | ||
| 417 | } | ||
| 412 | if (error) | 418 | if (error) |
| 413 | goto Enable_irqs; | 419 | goto Enable_irqs; |
| 414 | 420 | ||
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 2814c32aed51..8935369d503a 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
| @@ -164,8 +164,11 @@ static int suspend_enter(suspend_state_t state) | |||
| 164 | BUG_ON(!irqs_disabled()); | 164 | BUG_ON(!irqs_disabled()); |
| 165 | 165 | ||
| 166 | error = sysdev_suspend(PMSG_SUSPEND); | 166 | error = sysdev_suspend(PMSG_SUSPEND); |
| 167 | if (!error) | 167 | if (!error) { |
| 168 | error = syscore_suspend(); | 168 | error = syscore_suspend(); |
| 169 | if (error) | ||
| 170 | sysdev_resume(); | ||
| 171 | } | ||
| 169 | if (!error) { | 172 | if (!error) { |
| 170 | if (!(suspend_test(TEST_CORE) || pm_wakeup_pending())) { | 173 | if (!(suspend_test(TEST_CORE) || pm_wakeup_pending())) { |
| 171 | error = suspend_ops->enter(state); | 174 | error = suspend_ops->enter(state); |
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 61d7d59f4a1a..2ad39e556cb4 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
| @@ -141,7 +141,7 @@ if FTRACE | |||
| 141 | config FUNCTION_TRACER | 141 | config FUNCTION_TRACER |
| 142 | bool "Kernel Function Tracer" | 142 | bool "Kernel Function Tracer" |
| 143 | depends on HAVE_FUNCTION_TRACER | 143 | depends on HAVE_FUNCTION_TRACER |
| 144 | select FRAME_POINTER if !ARM_UNWIND && !S390 | 144 | select FRAME_POINTER if !ARM_UNWIND && !S390 && !MICROBLAZE |
| 145 | select KALLSYMS | 145 | select KALLSYMS |
| 146 | select GENERIC_TRACER | 146 | select GENERIC_TRACER |
| 147 | select CONTEXT_SWITCH_TRACER | 147 | select CONTEXT_SWITCH_TRACER |
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index ee24fa1935ac..666880d051ef 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -2413,14 +2413,16 @@ ftrace_regex_release(struct inode *inode, struct file *file, int enable) | |||
| 2413 | ftrace_match_records(parser->buffer, parser->idx, enable); | 2413 | ftrace_match_records(parser->buffer, parser->idx, enable); |
| 2414 | } | 2414 | } |
| 2415 | 2415 | ||
| 2416 | mutex_lock(&ftrace_lock); | ||
| 2417 | if (ftrace_start_up && ftrace_enabled) | ||
| 2418 | ftrace_run_update_code(FTRACE_ENABLE_CALLS); | ||
| 2419 | mutex_unlock(&ftrace_lock); | ||
| 2420 | |||
| 2421 | trace_parser_put(parser); | 2416 | trace_parser_put(parser); |
| 2422 | kfree(iter); | 2417 | kfree(iter); |
| 2423 | 2418 | ||
| 2419 | if (file->f_mode & FMODE_WRITE) { | ||
| 2420 | mutex_lock(&ftrace_lock); | ||
| 2421 | if (ftrace_start_up && ftrace_enabled) | ||
| 2422 | ftrace_run_update_code(FTRACE_ENABLE_CALLS); | ||
| 2423 | mutex_unlock(&ftrace_lock); | ||
| 2424 | } | ||
| 2425 | |||
| 2424 | mutex_unlock(&ftrace_regex_lock); | 2426 | mutex_unlock(&ftrace_regex_lock); |
| 2425 | return 0; | 2427 | return 0; |
| 2426 | } | 2428 | } |
