diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-11-23 04:37:12 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-11-23 04:48:44 -0500 |
| commit | cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349 (patch) | |
| tree | 801547a9c777ce65ad291e1225e5266a1e34f99f /kernel/power | |
| parent | a0a70c735ef714fe1b6777b571630c3d50c7b008 (diff) | |
tracing: allow tracing of suspend/resume & hibernation code again
Impact: widen function-tracing to suspend+resume (and hibernation) sequences
Now that the ftrace kernel thread is gone, we can allow tracing
during suspend/resume again.
So revert these two commits:
f42ac38c5 "ftrace: disable tracing for suspend to ram"
41108eb10 "ftrace: disable tracing for hibernation"
This should be tested very carefully, as it could interact with
altneratives instruction patching, etc.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/power')
| -rw-r--r-- | kernel/power/disk.c | 13 | ||||
| -rw-r--r-- | kernel/power/main.c | 5 |
2 files changed, 4 insertions, 14 deletions
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index c9d74083746f..f77d3819ef57 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | #include <linux/console.h> | 22 | #include <linux/console.h> |
| 23 | #include <linux/cpu.h> | 23 | #include <linux/cpu.h> |
| 24 | #include <linux/freezer.h> | 24 | #include <linux/freezer.h> |
| 25 | #include <linux/ftrace.h> | ||
| 26 | 25 | ||
| 27 | #include "power.h" | 26 | #include "power.h" |
| 28 | 27 | ||
| @@ -257,7 +256,7 @@ static int create_image(int platform_mode) | |||
| 257 | 256 | ||
| 258 | int hibernation_snapshot(int platform_mode) | 257 | int hibernation_snapshot(int platform_mode) |
| 259 | { | 258 | { |
| 260 | int error, ftrace_save; | 259 | int error; |
| 261 | 260 | ||
| 262 | /* Free memory before shutting down devices. */ | 261 | /* Free memory before shutting down devices. */ |
| 263 | error = swsusp_shrink_memory(); | 262 | error = swsusp_shrink_memory(); |
| @@ -269,7 +268,6 @@ int hibernation_snapshot(int platform_mode) | |||
| 269 | goto Close; | 268 | goto Close; |
| 270 | 269 | ||
| 271 | suspend_console(); | 270 | suspend_console(); |
| 272 | ftrace_save = __ftrace_enabled_save(); | ||
| 273 | error = device_suspend(PMSG_FREEZE); | 271 | error = device_suspend(PMSG_FREEZE); |
| 274 | if (error) | 272 | if (error) |
| 275 | goto Recover_platform; | 273 | goto Recover_platform; |
| @@ -299,7 +297,6 @@ int hibernation_snapshot(int platform_mode) | |||
| 299 | Resume_devices: | 297 | Resume_devices: |
| 300 | device_resume(in_suspend ? | 298 | device_resume(in_suspend ? |
| 301 | (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); | 299 | (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); |
| 302 | __ftrace_enabled_restore(ftrace_save); | ||
| 303 | resume_console(); | 300 | resume_console(); |
| 304 | Close: | 301 | Close: |
| 305 | platform_end(platform_mode); | 302 | platform_end(platform_mode); |
| @@ -370,11 +367,10 @@ static int resume_target_kernel(void) | |||
| 370 | 367 | ||
| 371 | int hibernation_restore(int platform_mode) | 368 | int hibernation_restore(int platform_mode) |
| 372 | { | 369 | { |
| 373 | int error, ftrace_save; | 370 | int error; |
| 374 | 371 | ||
| 375 | pm_prepare_console(); | 372 | pm_prepare_console(); |
| 376 | suspend_console(); | 373 | suspend_console(); |
| 377 | ftrace_save = __ftrace_enabled_save(); | ||
| 378 | error = device_suspend(PMSG_QUIESCE); | 374 | error = device_suspend(PMSG_QUIESCE); |
| 379 | if (error) | 375 | if (error) |
| 380 | goto Finish; | 376 | goto Finish; |
| @@ -389,7 +385,6 @@ int hibernation_restore(int platform_mode) | |||
| 389 | platform_restore_cleanup(platform_mode); | 385 | platform_restore_cleanup(platform_mode); |
| 390 | device_resume(PMSG_RECOVER); | 386 | device_resume(PMSG_RECOVER); |
| 391 | Finish: | 387 | Finish: |
| 392 | __ftrace_enabled_restore(ftrace_save); | ||
| 393 | resume_console(); | 388 | resume_console(); |
| 394 | pm_restore_console(); | 389 | pm_restore_console(); |
| 395 | return error; | 390 | return error; |
| @@ -402,7 +397,7 @@ int hibernation_restore(int platform_mode) | |||
| 402 | 397 | ||
| 403 | int hibernation_platform_enter(void) | 398 | int hibernation_platform_enter(void) |
| 404 | { | 399 | { |
| 405 | int error, ftrace_save; | 400 | int error; |
| 406 | 401 | ||
| 407 | if (!hibernation_ops) | 402 | if (!hibernation_ops) |
| 408 | return -ENOSYS; | 403 | return -ENOSYS; |
| @@ -417,7 +412,6 @@ int hibernation_platform_enter(void) | |||
| 417 | goto Close; | 412 | goto Close; |
| 418 | 413 | ||
| 419 | suspend_console(); | 414 | suspend_console(); |
| 420 | ftrace_save = __ftrace_enabled_save(); | ||
| 421 | error = device_suspend(PMSG_HIBERNATE); | 415 | error = device_suspend(PMSG_HIBERNATE); |
| 422 | if (error) { | 416 | if (error) { |
| 423 | if (hibernation_ops->recover) | 417 | if (hibernation_ops->recover) |
| @@ -452,7 +446,6 @@ int hibernation_platform_enter(void) | |||
| 452 | hibernation_ops->finish(); | 446 | hibernation_ops->finish(); |
| 453 | Resume_devices: | 447 | Resume_devices: |
| 454 | device_resume(PMSG_RESTORE); | 448 | device_resume(PMSG_RESTORE); |
| 455 | __ftrace_enabled_restore(ftrace_save); | ||
| 456 | resume_console(); | 449 | resume_console(); |
| 457 | Close: | 450 | Close: |
| 458 | hibernation_ops->end(); | 451 | hibernation_ops->end(); |
diff --git a/kernel/power/main.c b/kernel/power/main.c index b8f7ce9473e8..613f16941b85 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | #include <linux/freezer.h> | 22 | #include <linux/freezer.h> |
| 23 | #include <linux/vmstat.h> | 23 | #include <linux/vmstat.h> |
| 24 | #include <linux/syscalls.h> | 24 | #include <linux/syscalls.h> |
| 25 | #include <linux/ftrace.h> | ||
| 26 | 25 | ||
| 27 | #include "power.h" | 26 | #include "power.h" |
| 28 | 27 | ||
| @@ -317,7 +316,7 @@ static int suspend_enter(suspend_state_t state) | |||
| 317 | */ | 316 | */ |
| 318 | int suspend_devices_and_enter(suspend_state_t state) | 317 | int suspend_devices_and_enter(suspend_state_t state) |
| 319 | { | 318 | { |
| 320 | int error, ftrace_save; | 319 | int error; |
| 321 | 320 | ||
| 322 | if (!suspend_ops) | 321 | if (!suspend_ops) |
| 323 | return -ENOSYS; | 322 | return -ENOSYS; |
| @@ -328,7 +327,6 @@ int suspend_devices_and_enter(suspend_state_t state) | |||
| 328 | goto Close; | 327 | goto Close; |
| 329 | } | 328 | } |
| 330 | suspend_console(); | 329 | suspend_console(); |
| 331 | ftrace_save = __ftrace_enabled_save(); | ||
| 332 | suspend_test_start(); | 330 | suspend_test_start(); |
| 333 | error = device_suspend(PMSG_SUSPEND); | 331 | error = device_suspend(PMSG_SUSPEND); |
| 334 | if (error) { | 332 | if (error) { |
| @@ -360,7 +358,6 @@ int suspend_devices_and_enter(suspend_state_t state) | |||
| 360 | suspend_test_start(); | 358 | suspend_test_start(); |
| 361 | device_resume(PMSG_RESUME); | 359 | device_resume(PMSG_RESUME); |
| 362 | suspend_test_finish("resume devices"); | 360 | suspend_test_finish("resume devices"); |
| 363 | __ftrace_enabled_restore(ftrace_save); | ||
| 364 | resume_console(); | 361 | resume_console(); |
| 365 | Close: | 362 | Close: |
| 366 | if (suspend_ops->end) | 363 | if (suspend_ops->end) |
