aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/futex.c4
-rw-r--r--kernel/irq/resend.c9
-rw-r--r--kernel/kthread.c12
-rw-r--r--kernel/lockdep_proc.c2
-rw-r--r--kernel/params.c7
-rw-r--r--kernel/relay.c3
-rw-r--r--kernel/sched.c6
-rw-r--r--kernel/sched_debug.c2
-rw-r--r--kernel/time/timer_list.c2
-rw-r--r--kernel/time/timer_stats.c2
10 files changed, 30 insertions, 19 deletions
diff --git a/kernel/futex.c b/kernel/futex.c
index a12425051ee9..3415e9ad1391 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2060,8 +2060,10 @@ asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
2060 } 2060 }
2061 /* 2061 /*
2062 * requeue parameter in 'utime' if cmd == FUTEX_REQUEUE. 2062 * requeue parameter in 'utime' if cmd == FUTEX_REQUEUE.
2063 * number of waiters to wake in 'utime' if cmd == FUTEX_WAKE_OP.
2063 */ 2064 */
2064 if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE) 2065 if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE ||
2066 cmd == FUTEX_WAKE_OP)
2065 val2 = (u32) (unsigned long) utime; 2067 val2 = (u32) (unsigned long) utime;
2066 2068
2067 return do_futex(uaddr, op, val, tp, uaddr2, val2, val3); 2069 return do_futex(uaddr, op, val, tp, uaddr2, val2, val3);
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index 5bfeaed7e487..c38272746887 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -62,6 +62,15 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq)
62 */ 62 */
63 desc->chip->enable(irq); 63 desc->chip->enable(irq);
64 64
65 /*
66 * Temporary hack to figure out more about the problem, which
67 * is causing the ancient network cards to die.
68 */
69 if (desc->handle_irq != handle_edge_irq) {
70 WARN_ON_ONCE(1);
71 return;
72 }
73
65 if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { 74 if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) {
66 desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY; 75 desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY;
67 76
diff --git a/kernel/kthread.c b/kernel/kthread.c
index a404f7ee7395..dcfe724300eb 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -214,23 +214,15 @@ int kthread_stop(struct task_struct *k)
214} 214}
215EXPORT_SYMBOL(kthread_stop); 215EXPORT_SYMBOL(kthread_stop);
216 216
217 217int kthreadd(void *unused)
218static noinline __init_refok void kthreadd_setup(void)
219{ 218{
220 struct task_struct *tsk = current; 219 struct task_struct *tsk = current;
221 220
221 /* Setup a clean context for our children to inherit. */
222 set_task_comm(tsk, "kthreadd"); 222 set_task_comm(tsk, "kthreadd");
223
224 ignore_signals(tsk); 223 ignore_signals(tsk);
225
226 set_user_nice(tsk, -5); 224 set_user_nice(tsk, -5);
227 set_cpus_allowed(tsk, CPU_MASK_ALL); 225 set_cpus_allowed(tsk, CPU_MASK_ALL);
228}
229
230int kthreadd(void *unused)
231{
232 /* Setup a clean context for our children to inherit. */
233 kthreadd_setup();
234 226
235 current->flags |= PF_NOFREEZE; 227 current->flags |= PF_NOFREEZE;
236 228
diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c
index 9f17af4a2490..c851b2dcc685 100644
--- a/kernel/lockdep_proc.c
+++ b/kernel/lockdep_proc.c
@@ -346,7 +346,7 @@ static const struct file_operations proc_lockdep_stats_operations = {
346 .open = lockdep_stats_open, 346 .open = lockdep_stats_open,
347 .read = seq_read, 347 .read = seq_read,
348 .llseek = seq_lseek, 348 .llseek = seq_lseek,
349 .release = seq_release, 349 .release = single_release,
350}; 350};
351 351
352#ifdef CONFIG_LOCK_STAT 352#ifdef CONFIG_LOCK_STAT
diff --git a/kernel/params.c b/kernel/params.c
index effbaaedd7f3..4e57732fcfb4 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -567,7 +567,12 @@ static void __init kernel_param_sysfs_setup(const char *name,
567 kobject_set_name(&mk->kobj, name); 567 kobject_set_name(&mk->kobj, name);
568 kobject_init(&mk->kobj); 568 kobject_init(&mk->kobj);
569 ret = kobject_add(&mk->kobj); 569 ret = kobject_add(&mk->kobj);
570 BUG_ON(ret < 0); 570 if (ret) {
571 printk(KERN_ERR "Module '%s' failed to be added to sysfs, "
572 "error number %d\n", name, ret);
573 printk(KERN_ERR "The system will be unstable now.\n");
574 return;
575 }
571 param_sysfs_setup(mk, kparam, num_params, name_skip); 576 param_sysfs_setup(mk, kparam, num_params, name_skip);
572 kobject_uevent(&mk->kobj, KOBJ_ADD); 577 kobject_uevent(&mk->kobj, KOBJ_ADD);
573} 578}
diff --git a/kernel/relay.c b/kernel/relay.c
index 510fbbd7b500..ad855017bc59 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Public API and common code for kernel->userspace relay file support. 2 * Public API and common code for kernel->userspace relay file support.
3 * 3 *
4 * See Documentation/filesystems/relayfs.txt for an overview of relayfs. 4 * See Documentation/filesystems/relay.txt for an overview.
5 * 5 *
6 * Copyright (C) 2002-2005 - Tom Zanussi (zanussi@us.ibm.com), IBM Corp 6 * Copyright (C) 2002-2005 - Tom Zanussi (zanussi@us.ibm.com), IBM Corp
7 * Copyright (C) 1999-2005 - Karim Yaghmour (karim@opersys.com) 7 * Copyright (C) 1999-2005 - Karim Yaghmour (karim@opersys.com)
@@ -426,6 +426,7 @@ static struct rchan_buf *relay_open_buf(struct rchan *chan, unsigned int cpu)
426 426
427free_buf: 427free_buf:
428 relay_destroy_buf(buf); 428 relay_destroy_buf(buf);
429 buf = NULL;
429free_name: 430free_name:
430 kfree(tmpname); 431 kfree(tmpname);
431end: 432end:
diff --git a/kernel/sched.c b/kernel/sched.c
index 5c51d7e5dcc1..238a76957e86 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1678,8 +1678,8 @@ void fastcall wake_up_new_task(struct task_struct *p, unsigned long clone_flags)
1678#ifdef CONFIG_PREEMPT_NOTIFIERS 1678#ifdef CONFIG_PREEMPT_NOTIFIERS
1679 1679
1680/** 1680/**
1681 * preempt_notifier_register - tell me when current is being being preempted 1681 * preempt_notifier_register - tell me when current is being being preempted & rescheduled
1682 * and rescheduled 1682 * @notifier: notifier struct to register
1683 */ 1683 */
1684void preempt_notifier_register(struct preempt_notifier *notifier) 1684void preempt_notifier_register(struct preempt_notifier *notifier)
1685{ 1685{
@@ -1689,6 +1689,7 @@ EXPORT_SYMBOL_GPL(preempt_notifier_register);
1689 1689
1690/** 1690/**
1691 * preempt_notifier_unregister - no longer interested in preemption notifications 1691 * preempt_notifier_unregister - no longer interested in preemption notifications
1692 * @notifier: notifier struct to unregister
1692 * 1693 *
1693 * This is safe to call from within a preemption notifier. 1694 * This is safe to call from within a preemption notifier.
1694 */ 1695 */
@@ -1735,6 +1736,7 @@ fire_sched_out_preempt_notifiers(struct task_struct *curr,
1735/** 1736/**
1736 * prepare_task_switch - prepare to switch tasks 1737 * prepare_task_switch - prepare to switch tasks
1737 * @rq: the runqueue preparing to switch 1738 * @rq: the runqueue preparing to switch
1739 * @prev: the current task that is being switched out
1738 * @next: the task we are going to switch to. 1740 * @next: the task we are going to switch to.
1739 * 1741 *
1740 * This is called with the rq lock held and interrupts off. It must 1742 * This is called with the rq lock held and interrupts off. It must
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
index 42970f723a97..0eca442b7792 100644
--- a/kernel/sched_debug.c
+++ b/kernel/sched_debug.c
@@ -200,7 +200,7 @@ static struct file_operations sched_debug_fops = {
200 .open = sched_debug_open, 200 .open = sched_debug_open,
201 .read = seq_read, 201 .read = seq_read,
202 .llseek = seq_lseek, 202 .llseek = seq_lseek,
203 .release = seq_release, 203 .release = single_release,
204}; 204};
205 205
206static int __init init_sched_debug_procfs(void) 206static int __init init_sched_debug_procfs(void)
diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index e5edc3a22a08..fdb2e03d4fe0 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -267,7 +267,7 @@ static struct file_operations timer_list_fops = {
267 .open = timer_list_open, 267 .open = timer_list_open,
268 .read = seq_read, 268 .read = seq_read,
269 .llseek = seq_lseek, 269 .llseek = seq_lseek,
270 .release = seq_release, 270 .release = single_release,
271}; 271};
272 272
273static int __init init_timer_list_procfs(void) 273static int __init init_timer_list_procfs(void)
diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
index 8ed62fda16c6..3c38fb5eae1b 100644
--- a/kernel/time/timer_stats.c
+++ b/kernel/time/timer_stats.c
@@ -399,7 +399,7 @@ static struct file_operations tstats_fops = {
399 .read = seq_read, 399 .read = seq_read,
400 .write = tstats_write, 400 .write = tstats_write,
401 .llseek = seq_lseek, 401 .llseek = seq_lseek,
402 .release = seq_release, 402 .release = single_release,
403}; 403};
404 404
405void __init init_timer_stats(void) 405void __init init_timer_stats(void)