diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/futex.c | 4 | ||||
-rw-r--r-- | kernel/irq/resend.c | 9 | ||||
-rw-r--r-- | kernel/kthread.c | 12 | ||||
-rw-r--r-- | kernel/lockdep_proc.c | 2 | ||||
-rw-r--r-- | kernel/params.c | 7 | ||||
-rw-r--r-- | kernel/relay.c | 3 | ||||
-rw-r--r-- | kernel/sched.c | 6 | ||||
-rw-r--r-- | kernel/sched_debug.c | 2 | ||||
-rw-r--r-- | kernel/time/timer_list.c | 2 | ||||
-rw-r--r-- | kernel/time/timer_stats.c | 2 |
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 | } |
215 | EXPORT_SYMBOL(kthread_stop); | 215 | EXPORT_SYMBOL(kthread_stop); |
216 | 216 | ||
217 | 217 | int kthreadd(void *unused) | |
218 | static 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 | |||
230 | int 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 | ||
427 | free_buf: | 427 | free_buf: |
428 | relay_destroy_buf(buf); | 428 | relay_destroy_buf(buf); |
429 | buf = NULL; | ||
429 | free_name: | 430 | free_name: |
430 | kfree(tmpname); | 431 | kfree(tmpname); |
431 | end: | 432 | end: |
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 | */ |
1684 | void preempt_notifier_register(struct preempt_notifier *notifier) | 1684 | void 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 | ||
206 | static int __init init_sched_debug_procfs(void) | 206 | static 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 | ||
273 | static int __init init_timer_list_procfs(void) | 273 | static 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 | ||
405 | void __init init_timer_stats(void) | 405 | void __init init_timer_stats(void) |