diff options
Diffstat (limited to 'arch/um/sys-x86_64/syscalls.c')
-rw-r--r-- | arch/um/sys-x86_64/syscalls.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/um/sys-x86_64/syscalls.c b/arch/um/sys-x86_64/syscalls.c index e437ee2215c5..f1199fd34d38 100644 --- a/arch/um/sys-x86_64/syscalls.c +++ b/arch/um/sys-x86_64/syscalls.c | |||
@@ -48,7 +48,9 @@ long arch_prctl(struct task_struct *task, int code, unsigned long __user *addr) | |||
48 | switch (code) { | 48 | switch (code) { |
49 | case ARCH_SET_FS: | 49 | case ARCH_SET_FS: |
50 | case ARCH_SET_GS: | 50 | case ARCH_SET_GS: |
51 | restore_registers(pid, ¤t->thread.regs.regs); | 51 | ret = restore_registers(pid, ¤t->thread.regs.regs); |
52 | if (ret) | ||
53 | return ret; | ||
52 | break; | 54 | break; |
53 | case ARCH_GET_FS: | 55 | case ARCH_GET_FS: |
54 | case ARCH_GET_GS: | 56 | case ARCH_GET_GS: |
@@ -70,10 +72,10 @@ long arch_prctl(struct task_struct *task, int code, unsigned long __user *addr) | |||
70 | switch (code) { | 72 | switch (code) { |
71 | case ARCH_SET_FS: | 73 | case ARCH_SET_FS: |
72 | current->thread.arch.fs = (unsigned long) ptr; | 74 | current->thread.arch.fs = (unsigned long) ptr; |
73 | save_registers(pid, ¤t->thread.regs.regs); | 75 | ret = save_registers(pid, ¤t->thread.regs.regs); |
74 | break; | 76 | break; |
75 | case ARCH_SET_GS: | 77 | case ARCH_SET_GS: |
76 | save_registers(pid, ¤t->thread.regs.regs); | 78 | ret = save_registers(pid, ¤t->thread.regs.regs); |
77 | break; | 79 | break; |
78 | case ARCH_GET_FS: | 80 | case ARCH_GET_FS: |
79 | ret = put_user(tmp, addr); | 81 | ret = put_user(tmp, addr); |