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()
This commit is contained in:
@@ -716,7 +716,7 @@ void rcu_check_callbacks(int cpu, int user)
|
||||
raise_rcu_softirq();
|
||||
}
|
||||
|
||||
static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
|
||||
static void __cpuinit rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
|
||||
struct rcu_data *rdp)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
@@ -1314,7 +1314,7 @@ int rcu_needs_cpu(int cpu)
|
||||
* access due to the fact that this CPU cannot possibly have any RCU
|
||||
* callbacks in flight yet.
|
||||
*/
|
||||
static void
|
||||
static void __cpuinit
|
||||
rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
@@ -663,8 +663,10 @@ int relay_late_setup_files(struct rchan *chan,
|
||||
|
||||
mutex_lock(&relay_channels_mutex);
|
||||
/* Is chan already set up? */
|
||||
if (unlikely(chan->has_base_filename))
|
||||
if (unlikely(chan->has_base_filename)) {
|
||||
mutex_unlock(&relay_channels_mutex);
|
||||
return -EEXIST;
|
||||
}
|
||||
chan->has_base_filename = 1;
|
||||
chan->parent = parent;
|
||||
curr_cpu = get_cpu();
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <linux/lockdep.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sysctl.h>
|
||||
|
||||
#include <asm/irq_regs.h>
|
||||
|
||||
@@ -88,6 +89,14 @@ void touch_all_softlockup_watchdogs(void)
|
||||
}
|
||||
EXPORT_SYMBOL(touch_all_softlockup_watchdogs);
|
||||
|
||||
int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
|
||||
struct file *filp, void __user *buffer,
|
||||
size_t *lenp, loff_t *ppos)
|
||||
{
|
||||
touch_all_softlockup_watchdogs();
|
||||
return proc_dointvec_minmax(table, write, filp, buffer, lenp, ppos);
|
||||
}
|
||||
|
||||
/*
|
||||
* This callback runs from the timer interrupt, and checks
|
||||
* whether the watchdog thread has hung or not:
|
||||
|
@@ -809,7 +809,7 @@ static struct ctl_table kern_table[] = {
|
||||
.data = &softlockup_thresh,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = &proc_dointvec_minmax,
|
||||
.proc_handler = &proc_dosoftlockup_thresh,
|
||||
.strategy = &sysctl_intvec,
|
||||
.extra1 = &neg_one,
|
||||
.extra2 = &sixty,
|
||||
|
Reference in New Issue
Block a user