diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/module.c | 2 | ||||
| -rw-r--r-- | kernel/nsproxy.c | 1 | ||||
| -rw-r--r-- | kernel/power/disk.c | 13 | ||||
| -rw-r--r-- | kernel/power/main.c | 5 | ||||
| -rw-r--r-- | kernel/power/swap.c | 1 | ||||
| -rw-r--r-- | kernel/rcupdate.c | 1 | ||||
| -rw-r--r-- | kernel/signal.c | 5 | ||||
| -rw-r--r-- | kernel/smp.c | 10 | ||||
| -rw-r--r-- | kernel/sys.c | 8 | ||||
| -rw-r--r-- | kernel/time/tick-sched.c | 6 | ||||
| -rw-r--r-- | kernel/user_namespace.c | 1 | ||||
| -rw-r--r-- | kernel/utsname.c | 1 | ||||
| -rw-r--r-- | kernel/utsname_sysctl.c | 1 |
13 files changed, 35 insertions, 20 deletions
diff --git a/kernel/module.c b/kernel/module.c index 08864d257eb0..9db11911e04b 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
| @@ -1799,7 +1799,7 @@ static void *module_alloc_update_bounds(unsigned long size) | |||
| 1799 | 1799 | ||
| 1800 | /* Allocate and load the module: note that size of section 0 is always | 1800 | /* Allocate and load the module: note that size of section 0 is always |
| 1801 | zero, and we rely on this for optional sections. */ | 1801 | zero, and we rely on this for optional sections. */ |
| 1802 | static struct module *load_module(void __user *umod, | 1802 | static noinline struct module *load_module(void __user *umod, |
| 1803 | unsigned long len, | 1803 | unsigned long len, |
| 1804 | const char __user *uargs) | 1804 | const char __user *uargs) |
| 1805 | { | 1805 | { |
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index 21575fc46d05..1d3ef29a2583 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
| 17 | #include <linux/version.h> | ||
| 18 | #include <linux/nsproxy.h> | 17 | #include <linux/nsproxy.h> |
| 19 | #include <linux/init_task.h> | 18 | #include <linux/init_task.h> |
| 20 | #include <linux/mnt_namespace.h> | 19 | #include <linux/mnt_namespace.h> |
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index f011e0870b52..bbd85c60f741 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/console.h> | 21 | #include <linux/console.h> |
| 22 | #include <linux/cpu.h> | 22 | #include <linux/cpu.h> |
| 23 | #include <linux/freezer.h> | 23 | #include <linux/freezer.h> |
| 24 | #include <linux/ftrace.h> | ||
| 24 | 25 | ||
| 25 | #include "power.h" | 26 | #include "power.h" |
| 26 | 27 | ||
| @@ -255,7 +256,7 @@ static int create_image(int platform_mode) | |||
| 255 | 256 | ||
| 256 | int hibernation_snapshot(int platform_mode) | 257 | int hibernation_snapshot(int platform_mode) |
| 257 | { | 258 | { |
| 258 | int error; | 259 | int error, ftrace_save; |
| 259 | 260 | ||
| 260 | /* Free memory before shutting down devices. */ | 261 | /* Free memory before shutting down devices. */ |
| 261 | error = swsusp_shrink_memory(); | 262 | error = swsusp_shrink_memory(); |
| @@ -267,6 +268,7 @@ int hibernation_snapshot(int platform_mode) | |||
| 267 | goto Close; | 268 | goto Close; |
| 268 | 269 | ||
| 269 | suspend_console(); | 270 | suspend_console(); |
| 271 | ftrace_save = __ftrace_enabled_save(); | ||
| 270 | error = device_suspend(PMSG_FREEZE); | 272 | error = device_suspend(PMSG_FREEZE); |
| 271 | if (error) | 273 | if (error) |
| 272 | goto Recover_platform; | 274 | goto Recover_platform; |
| @@ -296,6 +298,7 @@ int hibernation_snapshot(int platform_mode) | |||
| 296 | Resume_devices: | 298 | Resume_devices: |
| 297 | device_resume(in_suspend ? | 299 | device_resume(in_suspend ? |
| 298 | (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); | 300 | (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); |
| 301 | __ftrace_enabled_restore(ftrace_save); | ||
| 299 | resume_console(); | 302 | resume_console(); |
| 300 | Close: | 303 | Close: |
| 301 | platform_end(platform_mode); | 304 | platform_end(platform_mode); |
| @@ -366,10 +369,11 @@ static int resume_target_kernel(void) | |||
| 366 | 369 | ||
| 367 | int hibernation_restore(int platform_mode) | 370 | int hibernation_restore(int platform_mode) |
| 368 | { | 371 | { |
| 369 | int error; | 372 | int error, ftrace_save; |
| 370 | 373 | ||
| 371 | pm_prepare_console(); | 374 | pm_prepare_console(); |
| 372 | suspend_console(); | 375 | suspend_console(); |
| 376 | ftrace_save = __ftrace_enabled_save(); | ||
| 373 | error = device_suspend(PMSG_QUIESCE); | 377 | error = device_suspend(PMSG_QUIESCE); |
| 374 | if (error) | 378 | if (error) |
| 375 | goto Finish; | 379 | goto Finish; |
| @@ -384,6 +388,7 @@ int hibernation_restore(int platform_mode) | |||
| 384 | platform_restore_cleanup(platform_mode); | 388 | platform_restore_cleanup(platform_mode); |
| 385 | device_resume(PMSG_RECOVER); | 389 | device_resume(PMSG_RECOVER); |
| 386 | Finish: | 390 | Finish: |
| 391 | __ftrace_enabled_restore(ftrace_save); | ||
| 387 | resume_console(); | 392 | resume_console(); |
| 388 | pm_restore_console(); | 393 | pm_restore_console(); |
| 389 | return error; | 394 | return error; |
| @@ -396,7 +401,7 @@ int hibernation_restore(int platform_mode) | |||
| 396 | 401 | ||
| 397 | int hibernation_platform_enter(void) | 402 | int hibernation_platform_enter(void) |
| 398 | { | 403 | { |
| 399 | int error; | 404 | int error, ftrace_save; |
| 400 | 405 | ||
| 401 | if (!hibernation_ops) | 406 | if (!hibernation_ops) |
| 402 | return -ENOSYS; | 407 | return -ENOSYS; |
| @@ -411,6 +416,7 @@ int hibernation_platform_enter(void) | |||
| 411 | goto Close; | 416 | goto Close; |
| 412 | 417 | ||
| 413 | suspend_console(); | 418 | suspend_console(); |
| 419 | ftrace_save = __ftrace_enabled_save(); | ||
| 414 | error = device_suspend(PMSG_HIBERNATE); | 420 | error = device_suspend(PMSG_HIBERNATE); |
| 415 | if (error) { | 421 | if (error) { |
| 416 | if (hibernation_ops->recover) | 422 | if (hibernation_ops->recover) |
| @@ -445,6 +451,7 @@ int hibernation_platform_enter(void) | |||
| 445 | hibernation_ops->finish(); | 451 | hibernation_ops->finish(); |
| 446 | Resume_devices: | 452 | Resume_devices: |
| 447 | device_resume(PMSG_RESTORE); | 453 | device_resume(PMSG_RESTORE); |
| 454 | __ftrace_enabled_restore(ftrace_save); | ||
| 448 | resume_console(); | 455 | resume_console(); |
| 449 | Close: | 456 | Close: |
| 450 | hibernation_ops->end(); | 457 | hibernation_ops->end(); |
diff --git a/kernel/power/main.c b/kernel/power/main.c index 0b7476f5d2a6..540b16b68565 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/freezer.h> | 21 | #include <linux/freezer.h> |
| 22 | #include <linux/vmstat.h> | 22 | #include <linux/vmstat.h> |
| 23 | #include <linux/syscalls.h> | 23 | #include <linux/syscalls.h> |
| 24 | #include <linux/ftrace.h> | ||
| 24 | 25 | ||
| 25 | #include "power.h" | 26 | #include "power.h" |
| 26 | 27 | ||
| @@ -310,7 +311,7 @@ static int suspend_enter(suspend_state_t state) | |||
| 310 | */ | 311 | */ |
| 311 | int suspend_devices_and_enter(suspend_state_t state) | 312 | int suspend_devices_and_enter(suspend_state_t state) |
| 312 | { | 313 | { |
| 313 | int error; | 314 | int error, ftrace_save; |
| 314 | 315 | ||
| 315 | if (!suspend_ops) | 316 | if (!suspend_ops) |
| 316 | return -ENOSYS; | 317 | return -ENOSYS; |
| @@ -321,6 +322,7 @@ int suspend_devices_and_enter(suspend_state_t state) | |||
| 321 | goto Close; | 322 | goto Close; |
| 322 | } | 323 | } |
| 323 | suspend_console(); | 324 | suspend_console(); |
| 325 | ftrace_save = __ftrace_enabled_save(); | ||
| 324 | suspend_test_start(); | 326 | suspend_test_start(); |
| 325 | error = device_suspend(PMSG_SUSPEND); | 327 | error = device_suspend(PMSG_SUSPEND); |
| 326 | if (error) { | 328 | if (error) { |
| @@ -352,6 +354,7 @@ int suspend_devices_and_enter(suspend_state_t state) | |||
| 352 | suspend_test_start(); | 354 | suspend_test_start(); |
| 353 | device_resume(PMSG_RESUME); | 355 | device_resume(PMSG_RESUME); |
| 354 | suspend_test_finish("resume devices"); | 356 | suspend_test_finish("resume devices"); |
| 357 | __ftrace_enabled_restore(ftrace_save); | ||
| 355 | resume_console(); | 358 | resume_console(); |
| 356 | Close: | 359 | Close: |
| 357 | if (suspend_ops->end) | 360 | if (suspend_ops->end) |
diff --git a/kernel/power/swap.c b/kernel/power/swap.c index a0abf9a463f9..80ccac849e46 100644 --- a/kernel/power/swap.c +++ b/kernel/power/swap.c | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
| 15 | #include <linux/file.h> | 15 | #include <linux/file.h> |
| 16 | #include <linux/utsname.h> | 16 | #include <linux/utsname.h> |
| 17 | #include <linux/version.h> | ||
| 18 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
| 19 | #include <linux/bitops.h> | 18 | #include <linux/bitops.h> |
| 20 | #include <linux/genhd.h> | 19 | #include <linux/genhd.h> |
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index f14f372cf6f5..467d5940f624 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c | |||
| @@ -77,6 +77,7 @@ void wakeme_after_rcu(struct rcu_head *head) | |||
| 77 | * sections are delimited by rcu_read_lock() and rcu_read_unlock(), | 77 | * sections are delimited by rcu_read_lock() and rcu_read_unlock(), |
| 78 | * and may be nested. | 78 | * and may be nested. |
| 79 | */ | 79 | */ |
| 80 | void synchronize_rcu(void); /* Makes kernel-doc tools happy */ | ||
| 80 | synchronize_rcu_xxx(synchronize_rcu, call_rcu) | 81 | synchronize_rcu_xxx(synchronize_rcu, call_rcu) |
| 81 | EXPORT_SYMBOL_GPL(synchronize_rcu); | 82 | EXPORT_SYMBOL_GPL(synchronize_rcu); |
| 82 | 83 | ||
diff --git a/kernel/signal.c b/kernel/signal.c index c539f60c6f41..e661b01d340f 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -1338,6 +1338,7 @@ int do_notify_parent(struct task_struct *tsk, int sig) | |||
| 1338 | struct siginfo info; | 1338 | struct siginfo info; |
| 1339 | unsigned long flags; | 1339 | unsigned long flags; |
| 1340 | struct sighand_struct *psig; | 1340 | struct sighand_struct *psig; |
| 1341 | int ret = sig; | ||
| 1341 | 1342 | ||
| 1342 | BUG_ON(sig == -1); | 1343 | BUG_ON(sig == -1); |
| 1343 | 1344 | ||
| @@ -1402,7 +1403,7 @@ int do_notify_parent(struct task_struct *tsk, int sig) | |||
| 1402 | * is implementation-defined: we do (if you don't want | 1403 | * is implementation-defined: we do (if you don't want |
| 1403 | * it, just use SIG_IGN instead). | 1404 | * it, just use SIG_IGN instead). |
| 1404 | */ | 1405 | */ |
| 1405 | tsk->exit_signal = -1; | 1406 | ret = tsk->exit_signal = -1; |
| 1406 | if (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN) | 1407 | if (psig->action[SIGCHLD-1].sa.sa_handler == SIG_IGN) |
| 1407 | sig = -1; | 1408 | sig = -1; |
| 1408 | } | 1409 | } |
| @@ -1411,7 +1412,7 @@ int do_notify_parent(struct task_struct *tsk, int sig) | |||
| 1411 | __wake_up_parent(tsk, tsk->parent); | 1412 | __wake_up_parent(tsk, tsk->parent); |
| 1412 | spin_unlock_irqrestore(&psig->siglock, flags); | 1413 | spin_unlock_irqrestore(&psig->siglock, flags); |
| 1413 | 1414 | ||
| 1414 | return sig; | 1415 | return ret; |
| 1415 | } | 1416 | } |
| 1416 | 1417 | ||
| 1417 | static void do_notify_parent_cldstop(struct task_struct *tsk, int why) | 1418 | static void do_notify_parent_cldstop(struct task_struct *tsk, int why) |
diff --git a/kernel/smp.c b/kernel/smp.c index 782e2b93e465..f362a8553777 100644 --- a/kernel/smp.c +++ b/kernel/smp.c | |||
| @@ -210,8 +210,10 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | |||
| 210 | { | 210 | { |
| 211 | struct call_single_data d; | 211 | struct call_single_data d; |
| 212 | unsigned long flags; | 212 | unsigned long flags; |
| 213 | /* prevent preemption and reschedule on another processor */ | 213 | /* prevent preemption and reschedule on another processor, |
| 214 | as well as CPU removal */ | ||
| 214 | int me = get_cpu(); | 215 | int me = get_cpu(); |
| 216 | int err = 0; | ||
| 215 | 217 | ||
| 216 | /* Can deadlock when called with interrupts disabled */ | 218 | /* Can deadlock when called with interrupts disabled */ |
| 217 | WARN_ON(irqs_disabled()); | 219 | WARN_ON(irqs_disabled()); |
| @@ -220,7 +222,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | |||
| 220 | local_irq_save(flags); | 222 | local_irq_save(flags); |
| 221 | func(info); | 223 | func(info); |
| 222 | local_irq_restore(flags); | 224 | local_irq_restore(flags); |
| 223 | } else { | 225 | } else if ((unsigned)cpu < NR_CPUS && cpu_online(cpu)) { |
| 224 | struct call_single_data *data = NULL; | 226 | struct call_single_data *data = NULL; |
| 225 | 227 | ||
| 226 | if (!wait) { | 228 | if (!wait) { |
| @@ -236,10 +238,12 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | |||
| 236 | data->func = func; | 238 | data->func = func; |
| 237 | data->info = info; | 239 | data->info = info; |
| 238 | generic_exec_single(cpu, data); | 240 | generic_exec_single(cpu, data); |
| 241 | } else { | ||
| 242 | err = -ENXIO; /* CPU not online */ | ||
| 239 | } | 243 | } |
| 240 | 244 | ||
| 241 | put_cpu(); | 245 | put_cpu(); |
| 242 | return 0; | 246 | return err; |
| 243 | } | 247 | } |
| 244 | EXPORT_SYMBOL(smp_call_function_single); | 248 | EXPORT_SYMBOL(smp_call_function_single); |
| 245 | 249 | ||
diff --git a/kernel/sys.c b/kernel/sys.c index 3dacb00a7f76..038a7bc0901d 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
| @@ -169,9 +169,9 @@ asmlinkage long sys_setpriority(int which, int who, int niceval) | |||
| 169 | pgrp = find_vpid(who); | 169 | pgrp = find_vpid(who); |
| 170 | else | 170 | else |
| 171 | pgrp = task_pgrp(current); | 171 | pgrp = task_pgrp(current); |
| 172 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { | 172 | do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { |
| 173 | error = set_one_prio(p, niceval, error); | 173 | error = set_one_prio(p, niceval, error); |
| 174 | } while_each_pid_task(pgrp, PIDTYPE_PGID, p); | 174 | } while_each_pid_thread(pgrp, PIDTYPE_PGID, p); |
| 175 | break; | 175 | break; |
| 176 | case PRIO_USER: | 176 | case PRIO_USER: |
| 177 | user = current->user; | 177 | user = current->user; |
| @@ -229,11 +229,11 @@ asmlinkage long sys_getpriority(int which, int who) | |||
| 229 | pgrp = find_vpid(who); | 229 | pgrp = find_vpid(who); |
| 230 | else | 230 | else |
| 231 | pgrp = task_pgrp(current); | 231 | pgrp = task_pgrp(current); |
| 232 | do_each_pid_task(pgrp, PIDTYPE_PGID, p) { | 232 | do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { |
| 233 | niceval = 20 - task_nice(p); | 233 | niceval = 20 - task_nice(p); |
| 234 | if (niceval > retval) | 234 | if (niceval > retval) |
| 235 | retval = niceval; | 235 | retval = niceval; |
| 236 | } while_each_pid_task(pgrp, PIDTYPE_PGID, p); | 236 | } while_each_pid_thread(pgrp, PIDTYPE_PGID, p); |
| 237 | break; | 237 | break; |
| 238 | case PRIO_USER: | 238 | case PRIO_USER: |
| 239 | user = current->user; | 239 | user = current->user; |
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index f5da526424a9..7a46bde78c66 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
| @@ -643,17 +643,21 @@ void tick_setup_sched_timer(void) | |||
| 643 | ts->nohz_mode = NOHZ_MODE_HIGHRES; | 643 | ts->nohz_mode = NOHZ_MODE_HIGHRES; |
| 644 | #endif | 644 | #endif |
| 645 | } | 645 | } |
| 646 | #endif /* HIGH_RES_TIMERS */ | ||
| 646 | 647 | ||
| 648 | #if defined CONFIG_NO_HZ || defined CONFIG_HIGH_RES_TIMERS | ||
| 647 | void tick_cancel_sched_timer(int cpu) | 649 | void tick_cancel_sched_timer(int cpu) |
| 648 | { | 650 | { |
| 649 | struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); | 651 | struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); |
| 650 | 652 | ||
| 653 | # ifdef CONFIG_HIGH_RES_TIMERS | ||
| 651 | if (ts->sched_timer.base) | 654 | if (ts->sched_timer.base) |
| 652 | hrtimer_cancel(&ts->sched_timer); | 655 | hrtimer_cancel(&ts->sched_timer); |
| 656 | # endif | ||
| 653 | 657 | ||
| 654 | ts->nohz_mode = NOHZ_MODE_INACTIVE; | 658 | ts->nohz_mode = NOHZ_MODE_INACTIVE; |
| 655 | } | 659 | } |
| 656 | #endif /* HIGH_RES_TIMERS */ | 660 | #endif |
| 657 | 661 | ||
| 658 | /** | 662 | /** |
| 659 | * Async notification about clocksource changes | 663 | * Async notification about clocksource changes |
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index a9ab0596de44..532858fa5b88 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #include <linux/module.h> | 8 | #include <linux/module.h> |
| 9 | #include <linux/version.h> | ||
| 10 | #include <linux/nsproxy.h> | 9 | #include <linux/nsproxy.h> |
| 11 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
| 12 | #include <linux/user_namespace.h> | 11 | #include <linux/user_namespace.h> |
diff --git a/kernel/utsname.c b/kernel/utsname.c index 64d398f12444..815237a55af8 100644 --- a/kernel/utsname.c +++ b/kernel/utsname.c | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
| 13 | #include <linux/uts.h> | 13 | #include <linux/uts.h> |
| 14 | #include <linux/utsname.h> | 14 | #include <linux/utsname.h> |
| 15 | #include <linux/version.h> | ||
| 16 | #include <linux/err.h> | 15 | #include <linux/err.h> |
| 17 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
| 18 | 17 | ||
diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c index fe3a56c2256d..4ab9659d269e 100644 --- a/kernel/utsname_sysctl.c +++ b/kernel/utsname_sysctl.c | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
| 13 | #include <linux/uts.h> | 13 | #include <linux/uts.h> |
| 14 | #include <linux/utsname.h> | 14 | #include <linux/utsname.h> |
| 15 | #include <linux/version.h> | ||
| 16 | #include <linux/sysctl.h> | 15 | #include <linux/sysctl.h> |
| 17 | 16 | ||
| 18 | static void *get_uts(ctl_table *table, int write) | 17 | static void *get_uts(ctl_table *table, int write) |
