diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2007-02-05 15:17:38 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-02-05 15:17:38 -0500 |
commit | 9b241cc862d55038c43feee86670cb7d86cf01c1 (patch) | |
tree | a5d6afbd3c6e424ab08edecd78f88a396b5f04e9 | |
parent | 758976f9a55cb22ddc602a0690d67f9546e3e43f (diff) |
[S390] Add set_fs(USER_DS) to start_thread().
Currently works anyway since search_binary_handler has a
set_fs(USER_DS). But start_thread() is the place where this should be
done. Following all other architectures...
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | include/asm-s390/processor.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h index 5dc6b938895f..7a7f50efcbd9 100644 --- a/include/asm-s390/processor.h +++ b/include/asm-s390/processor.h | |||
@@ -144,6 +144,7 @@ struct stack_frame { | |||
144 | #ifndef __s390x__ | 144 | #ifndef __s390x__ |
145 | 145 | ||
146 | #define start_thread(regs, new_psw, new_stackp) do { \ | 146 | #define start_thread(regs, new_psw, new_stackp) do { \ |
147 | set_fs(USER_DS); \ | ||
147 | regs->psw.mask = PSW_USER_BITS; \ | 148 | regs->psw.mask = PSW_USER_BITS; \ |
148 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ | 149 | regs->psw.addr = new_psw | PSW_ADDR_AMODE; \ |
149 | regs->gprs[15] = new_stackp ; \ | 150 | regs->gprs[15] = new_stackp ; \ |
@@ -152,12 +153,14 @@ struct stack_frame { | |||
152 | #else /* __s390x__ */ | 153 | #else /* __s390x__ */ |
153 | 154 | ||
154 | #define start_thread(regs, new_psw, new_stackp) do { \ | 155 | #define start_thread(regs, new_psw, new_stackp) do { \ |
156 | set_fs(USER_DS); \ | ||
155 | regs->psw.mask = PSW_USER_BITS; \ | 157 | regs->psw.mask = PSW_USER_BITS; \ |
156 | regs->psw.addr = new_psw; \ | 158 | regs->psw.addr = new_psw; \ |
157 | regs->gprs[15] = new_stackp; \ | 159 | regs->gprs[15] = new_stackp; \ |
158 | } while (0) | 160 | } while (0) |
159 | 161 | ||
160 | #define start_thread31(regs, new_psw, new_stackp) do { \ | 162 | #define start_thread31(regs, new_psw, new_stackp) do { \ |
163 | set_fs(USER_DS); \ | ||
161 | regs->psw.mask = PSW_USER32_BITS; \ | 164 | regs->psw.mask = PSW_USER32_BITS; \ |
162 | regs->psw.addr = new_psw; \ | 165 | regs->psw.addr = new_psw; \ |
163 | regs->gprs[15] = new_stackp; \ | 166 | regs->gprs[15] = new_stackp; \ |