diff options
| author | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-05-08 22:05:59 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-05-08 22:05:59 -0700 |
| commit | 4ee819e6abaa6203dcd727c939e9fec254c5b16e (patch) | |
| tree | 555dce1cdc25f9420304e4f559a3d59555780609 | |
| parent | bf4d84856aacd032acb9a92daed616aaa5a17ae2 (diff) | |
| parent | 3de8785e34aa94edec93e6171638dc0d033a98bf (diff) | |
Merge master.kernel.org:/home/davem/BK/misc-2.5
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
| -rw-r--r-- | drivers/usb/net/rtl8150.c | 1 | ||||
| -rw-r--r-- | kernel/fork.c | 6 | ||||
| -rw-r--r-- | mm/slab.c | 9 |
3 files changed, 13 insertions, 3 deletions
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c index 5ed530fd1161..3934c4dd5069 100644 --- a/drivers/usb/net/rtl8150.c +++ b/drivers/usb/net/rtl8150.c @@ -19,6 +19,7 @@ #include <linux/ethtool.h> #include <linux/devfs_fs_kernel.h> #include <linux/usb.h> +#include <linux/init.h> #include <asm/uaccess.h> /* Version Information */ diff --git a/kernel/fork.c b/kernel/fork.c index 9c02ba5c4635..61a6c7799bb3 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -387,6 +387,9 @@ static int copy_mm(unsigned long clone_flags, struct task_struct * tsk) if (!mm_init(mm)) goto fail_nomem; + if (init_new_context(tsk,mm)) + goto free_pt; + down_write(&oldmm->mmap_sem); retval = dup_mmap(mm); up_write(&oldmm->mmap_sem); @@ -394,9 +397,6 @@ static int copy_mm(unsigned long clone_flags, struct task_struct * tsk) if (retval) goto free_pt; - if (init_new_context(tsk,mm)) - goto free_pt; - good_mm: tsk->mm = mm; tsk->active_mm = mm; diff --git a/mm/slab.c b/mm/slab.c index 99b7559849f6..53bf1aedfcc4 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -839,7 +839,10 @@ next: down(&cache_chain_sem); { struct list_head *p; + mm_segment_t old_fs; + old_fs = get_fs(); + set_fs(KERNEL_DS); list_for_each(p, &cache_chain) { kmem_cache_t *pc = list_entry(p, kmem_cache_t, next); char tmp; @@ -857,6 +860,7 @@ next: BUG(); } } + set_fs(old_fs); } /* There is no reason to lock our new cache before we @@ -1965,8 +1969,13 @@ static int s_show(struct seq_file *m, void *p) name = cachep->name; { char tmp; + mm_segment_t old_fs; + + old_fs = get_fs(); + set_fs(KERNEL_DS); if (__get_user(tmp, name)) name = "broken"; + set_fs(old_fs); } seq_printf(m, "%-17s %6lu %6lu %6u %4lu %4lu %4u", |
