diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 12:47:56 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 12:47:56 -0500 |
| commit | 3386c05bdbd3e60ca7158253442f0a00133db28e (patch) | |
| tree | 19e48f0352e65eb83a0e922fb75528ed39f44ebd /kernel | |
| parent | 1e70c7f7a9d4a3d2cc78b40e1d7768d99cd79899 (diff) | |
| parent | 6552ebae25ffd57574c6e72d17fce67fea08b918 (diff) | |
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
debugobjects: add and use INIT_WORK_ON_STACK
rcu: remove duplicate CONFIG_RCU_CPU_STALL_DETECTOR
relay: fix lock imbalance in relay_late_setup_files
oprofile: fix uninitialized use of struct op_entry
rcu: move Kconfig menu
softlock: fix false panic which can occur if softlockup_thresh is reduced
rcu: add __cpuinit to rcu_init_percpu_data()
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/rcuclassic.c | 2 | ||||
| -rw-r--r-- | kernel/rcutree.c | 2 | ||||
| -rw-r--r-- | kernel/relay.c | 4 | ||||
| -rw-r--r-- | kernel/softlockup.c | 9 | ||||
| -rw-r--r-- | kernel/sysctl.c | 2 |
5 files changed, 15 insertions, 4 deletions
diff --git a/kernel/rcuclassic.c b/kernel/rcuclassic.c index 490934fc7ac3..bd5a9003497c 100644 --- a/kernel/rcuclassic.c +++ b/kernel/rcuclassic.c | |||
| @@ -716,7 +716,7 @@ void rcu_check_callbacks(int cpu, int user) | |||
| 716 | raise_rcu_softirq(); | 716 | raise_rcu_softirq(); |
| 717 | } | 717 | } |
| 718 | 718 | ||
| 719 | static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, | 719 | static void __cpuinit rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, |
| 720 | struct rcu_data *rdp) | 720 | struct rcu_data *rdp) |
| 721 | { | 721 | { |
| 722 | unsigned long flags; | 722 | unsigned long flags; |
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index f2d8638e6c60..b2fd602a6f6f 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
| @@ -1314,7 +1314,7 @@ int rcu_needs_cpu(int cpu) | |||
| 1314 | * access due to the fact that this CPU cannot possibly have any RCU | 1314 | * access due to the fact that this CPU cannot possibly have any RCU |
| 1315 | * callbacks in flight yet. | 1315 | * callbacks in flight yet. |
| 1316 | */ | 1316 | */ |
| 1317 | static void | 1317 | static void __cpuinit |
| 1318 | rcu_init_percpu_data(int cpu, struct rcu_state *rsp) | 1318 | rcu_init_percpu_data(int cpu, struct rcu_state *rsp) |
| 1319 | { | 1319 | { |
| 1320 | unsigned long flags; | 1320 | unsigned long flags; |
diff --git a/kernel/relay.c b/kernel/relay.c index 09ac2008f77b..9d79b7854fa6 100644 --- a/kernel/relay.c +++ b/kernel/relay.c | |||
| @@ -663,8 +663,10 @@ int relay_late_setup_files(struct rchan *chan, | |||
| 663 | 663 | ||
| 664 | mutex_lock(&relay_channels_mutex); | 664 | mutex_lock(&relay_channels_mutex); |
| 665 | /* Is chan already set up? */ | 665 | /* Is chan already set up? */ |
| 666 | if (unlikely(chan->has_base_filename)) | 666 | if (unlikely(chan->has_base_filename)) { |
| 667 | mutex_unlock(&relay_channels_mutex); | ||
| 667 | return -EEXIST; | 668 | return -EEXIST; |
| 669 | } | ||
| 668 | chan->has_base_filename = 1; | 670 | chan->has_base_filename = 1; |
| 669 | chan->parent = parent; | 671 | chan->parent = parent; |
| 670 | curr_cpu = get_cpu(); | 672 | curr_cpu = get_cpu(); |
diff --git a/kernel/softlockup.c b/kernel/softlockup.c index d9188c66278a..85d5a2455103 100644 --- a/kernel/softlockup.c +++ b/kernel/softlockup.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <linux/lockdep.h> | 16 | #include <linux/lockdep.h> |
| 17 | #include <linux/notifier.h> | 17 | #include <linux/notifier.h> |
| 18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
| 19 | #include <linux/sysctl.h> | ||
| 19 | 20 | ||
| 20 | #include <asm/irq_regs.h> | 21 | #include <asm/irq_regs.h> |
| 21 | 22 | ||
| @@ -88,6 +89,14 @@ void touch_all_softlockup_watchdogs(void) | |||
| 88 | } | 89 | } |
| 89 | EXPORT_SYMBOL(touch_all_softlockup_watchdogs); | 90 | EXPORT_SYMBOL(touch_all_softlockup_watchdogs); |
| 90 | 91 | ||
| 92 | int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | ||
| 93 | struct file *filp, void __user *buffer, | ||
| 94 | size_t *lenp, loff_t *ppos) | ||
| 95 | { | ||
| 96 | touch_all_softlockup_watchdogs(); | ||
| 97 | return proc_dointvec_minmax(table, write, filp, buffer, lenp, ppos); | ||
| 98 | } | ||
| 99 | |||
| 91 | /* | 100 | /* |
| 92 | * This callback runs from the timer interrupt, and checks | 101 | * This callback runs from the timer interrupt, and checks |
| 93 | * whether the watchdog thread has hung or not: | 102 | * whether the watchdog thread has hung or not: |
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 368d1638ee78..790f9d785663 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -809,7 +809,7 @@ static struct ctl_table kern_table[] = { | |||
| 809 | .data = &softlockup_thresh, | 809 | .data = &softlockup_thresh, |
| 810 | .maxlen = sizeof(int), | 810 | .maxlen = sizeof(int), |
| 811 | .mode = 0644, | 811 | .mode = 0644, |
| 812 | .proc_handler = &proc_dointvec_minmax, | 812 | .proc_handler = &proc_dosoftlockup_thresh, |
| 813 | .strategy = &sysctl_intvec, | 813 | .strategy = &sysctl_intvec, |
| 814 | .extra1 = &neg_one, | 814 | .extra1 = &neg_one, |
| 815 | .extra2 = &sixty, | 815 | .extra2 = &sixty, |
