diff options
author | Avi Kivity <avi@redhat.com> | 2012-08-05 06:25:10 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-08-05 06:25:10 -0400 |
commit | fe56097b23b1303b894eefd91582e4a64247d03f (patch) | |
tree | 4b3ab60eb19e8cfe2884e2da66dd4e4e25ae2274 /arch/um/kernel/process.c | |
parent | e115676e042f4d9268c6b6d8cb7dc962aa6cfd7d (diff) | |
parent | e7882d6c40874a5b5033ca85f7508a602a60b662 (diff) |
Merge remote-tracking branch 'upstream' into next
- bring back critical fixes (esp. aa67f6096c19bc)
- provide an updated base for development
* upstream: (4334 commits)
missed mnt_drop_write() in do_dentry_open()
UBIFS: nuke pdflush from comments
gfs2: nuke pdflush from comments
drbd: nuke pdflush from comments
nilfs2: nuke write_super from comments
hfs: nuke write_super from comments
vfs: nuke pdflush from comments
jbd/jbd2: nuke write_super from comments
btrfs: nuke pdflush from comments
btrfs: nuke write_super from comments
ext4: nuke pdflush from comments
ext4: nuke write_super from comments
ext3: nuke write_super from comments
Documentation: fix the VM knobs descritpion WRT pdflush
Documentation: get rid of write_super
vfs: kill write_super and sync_supers
ACPI processor: Fix tick_broadcast_mask online/offline regression
ACPI: Only count valid srat memory structures
ACPI: Untangle a return statement for better readability
Linux 3.6-rc1
...
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r-- | arch/um/kernel/process.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index ccb9a9d283f..57fc7028714 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c | |||
@@ -151,12 +151,10 @@ void new_thread_handler(void) | |||
151 | * 0 if it just exits | 151 | * 0 if it just exits |
152 | */ | 152 | */ |
153 | n = run_kernel_thread(fn, arg, ¤t->thread.exec_buf); | 153 | n = run_kernel_thread(fn, arg, ¤t->thread.exec_buf); |
154 | if (n == 1) { | 154 | if (n == 1) |
155 | /* Handle any immediate reschedules or signals */ | ||
156 | interrupt_end(); | ||
157 | userspace(¤t->thread.regs.regs); | 155 | userspace(¤t->thread.regs.regs); |
158 | } | 156 | else |
159 | else do_exit(0); | 157 | do_exit(0); |
160 | } | 158 | } |
161 | 159 | ||
162 | /* Called magically, see new_thread_handler above */ | 160 | /* Called magically, see new_thread_handler above */ |
@@ -175,9 +173,6 @@ void fork_handler(void) | |||
175 | 173 | ||
176 | current->thread.prev_sched = NULL; | 174 | current->thread.prev_sched = NULL; |
177 | 175 | ||
178 | /* Handle any immediate reschedules or signals */ | ||
179 | interrupt_end(); | ||
180 | |||
181 | userspace(¤t->thread.regs.regs); | 176 | userspace(¤t->thread.regs.regs); |
182 | } | 177 | } |
183 | 178 | ||
@@ -193,7 +188,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, | |||
193 | if (current->thread.forking) { | 188 | if (current->thread.forking) { |
194 | memcpy(&p->thread.regs.regs, ®s->regs, | 189 | memcpy(&p->thread.regs.regs, ®s->regs, |
195 | sizeof(p->thread.regs.regs)); | 190 | sizeof(p->thread.regs.regs)); |
196 | UPT_SET_SYSCALL_RETURN(&p->thread.regs.regs, 0); | 191 | PT_REGS_SET_SYSCALL_RETURN(&p->thread.regs, 0); |
197 | if (sp != 0) | 192 | if (sp != 0) |
198 | REGS_SP(p->thread.regs.regs.gp) = sp; | 193 | REGS_SP(p->thread.regs.regs.gp) = sp; |
199 | 194 | ||