diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-03-30 17:53:32 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-30 17:53:32 -0400 |
commit | 65fb0d23fcddd8697c871047b700c78817bdaa43 (patch) | |
tree | 119e6e5f276622c4c862f6c9b6d795264ba1603a /arch/x86/kernel/process.c | |
parent | 8c083f081d0014057901c68a0a3e0f8ca7ac8d23 (diff) | |
parent | dfbbe89e197a77f2c8046a51c74e33e35f878080 (diff) |
Merge branch 'linus' into cpumask-for-linus
Conflicts:
arch/x86/kernel/cpu/common.c
Diffstat (limited to 'arch/x86/kernel/process.c')
-rw-r--r-- | arch/x86/kernel/process.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 78533a519d8f..25e28087a3ee 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
@@ -65,11 +65,11 @@ void exit_thread(void) | |||
65 | { | 65 | { |
66 | struct task_struct *me = current; | 66 | struct task_struct *me = current; |
67 | struct thread_struct *t = &me->thread; | 67 | struct thread_struct *t = &me->thread; |
68 | unsigned long *bp = t->io_bitmap_ptr; | ||
68 | 69 | ||
69 | if (me->thread.io_bitmap_ptr) { | 70 | if (bp) { |
70 | struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); | 71 | struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); |
71 | 72 | ||
72 | kfree(t->io_bitmap_ptr); | ||
73 | t->io_bitmap_ptr = NULL; | 73 | t->io_bitmap_ptr = NULL; |
74 | clear_thread_flag(TIF_IO_BITMAP); | 74 | clear_thread_flag(TIF_IO_BITMAP); |
75 | /* | 75 | /* |
@@ -78,6 +78,7 @@ void exit_thread(void) | |||
78 | memset(tss->io_bitmap, 0xff, t->io_bitmap_max); | 78 | memset(tss->io_bitmap, 0xff, t->io_bitmap_max); |
79 | t->io_bitmap_max = 0; | 79 | t->io_bitmap_max = 0; |
80 | put_cpu(); | 80 | put_cpu(); |
81 | kfree(bp); | ||
81 | } | 82 | } |
82 | 83 | ||
83 | ds_exit_thread(current); | 84 | ds_exit_thread(current); |