diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-04 10:37:06 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-04 10:37:06 -0800 |
commit | 9b8ab9f6c37c610feea20edfb357a3b8a43d39bd (patch) | |
tree | 02d18c920a03a600e915d66d6a471d900857b3ac /kernel | |
parent | 12472b4165a21f5415ff4f60f8f46311a6b7b9ac (diff) | |
parent | f23f6e08c47acbdd20e9c49a79da8c404ea168e1 (diff) | |
download | kernel_goldelico_gta04-9b8ab9f6c37c610feea20edfb357a3b8a43d39bd.zip kernel_goldelico_gta04-9b8ab9f6c37c610feea20edfb357a3b8a43d39bd.tar.gz kernel_goldelico_gta04-9b8ab9f6c37c610feea20edfb357a3b8a43d39bd.tar.bz2 |
Merge branch 'for-linus4' of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird
* 'for-linus4' of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird:
[PATCH] severing poll.h -> mm.h
[PATCH] severing skbuff.h -> mm.h
[PATCH] severing skbuff.h -> poll.h
[PATCH] severing skbuff.h -> highmem.h
[PATCH] severing uaccess.h -> sched.h
[PATCH] severing fs.h, radix-tree.h -> sched.h
[PATCH] severing module.h->sched.h
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/auditsc.c | 1 | ||||
-rw-r--r-- | kernel/latency.c | 1 | ||||
-rw-r--r-- | kernel/module.c | 15 |
3 files changed, 16 insertions, 1 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 42f2f11..ab97e51 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -64,6 +64,7 @@ #include <linux/tty.h> #include <linux/selinux.h> #include <linux/binfmts.h> +#include <linux/highmem.h> #include <linux/syscalls.h> #include "audit.h" diff --git a/kernel/latency.c b/kernel/latency.c index 258f255..e63fcac 100644 --- a/kernel/latency.c +++ b/kernel/latency.c @@ -36,6 +36,7 @@ #include <linux/slab.h> #include <linux/module.h> #include <linux/notifier.h> +#include <linux/jiffies.h> #include <asm/atomic.h> struct latency_info { diff --git a/kernel/module.c b/kernel/module.c index 45e01cb..e2d09d6 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -34,10 +34,10 @@ #include <linux/err.h> #include <linux/vermagic.h> #include <linux/notifier.h> +#include <linux/sched.h> #include <linux/stop_machine.h> #include <linux/device.h> #include <linux/string.h> -#include <linux/sched.h> #include <linux/mutex.h> #include <linux/unwind.h> #include <asm/uaccess.h> @@ -790,6 +790,19 @@ static struct module_attribute refcnt = { .show = show_refcnt, }; +void module_put(struct module *module) +{ + if (module) { + unsigned int cpu = get_cpu(); + local_dec(&module->ref[cpu].count); + /* Maybe they're waiting for us to drop reference? */ + if (unlikely(!module_is_live(module))) + wake_up_process(module->waiter); + put_cpu(); + } +} +EXPORT_SYMBOL(module_put); + #else /* !CONFIG_MODULE_UNLOAD */ static void print_unload_info(struct seq_file *m, struct module *mod) { |