summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@penguin.transmeta.com>2002-05-08 22:05:59 -0700
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-05-08 22:05:59 -0700
commit4ee819e6abaa6203dcd727c939e9fec254c5b16e (patch)
tree555dce1cdc25f9420304e4f559a3d59555780609
parentbf4d84856aacd032acb9a92daed616aaa5a17ae2 (diff)
parent3de8785e34aa94edec93e6171638dc0d033a98bf (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.c1
-rw-r--r--kernel/fork.c6
-rw-r--r--mm/slab.c9
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",