aboutsummaryrefslogtreecommitdiff
path: root/include/asm-s390
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2007-02-05 21:17:38 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-02-05 21:17:38 +0100
commit9b241cc862d55038c43feee86670cb7d86cf01c1 (patch)
treea5d6afbd3c6e424ab08edecd78f88a396b5f04e9 /include/asm-s390
parent758976f9a55cb22ddc602a0690d67f9546e3e43f (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>
Diffstat (limited to 'include/asm-s390')
-rw-r--r--include/asm-s390/processor.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h
index 5dc6b938895..7a7f50efcbd 100644
--- a/include/asm-s390/processor.h
+++ b/include/asm-s390/processor.h
@@ -144,6 +144,7 @@ struct stack_frame {
#ifndef __s390x__
#define start_thread(regs, new_psw, new_stackp) do { \
+ set_fs(USER_DS); \
regs->psw.mask = PSW_USER_BITS; \
regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
regs->gprs[15] = new_stackp ; \
@@ -152,12 +153,14 @@ struct stack_frame {
#else /* __s390x__ */
#define start_thread(regs, new_psw, new_stackp) do { \
+ set_fs(USER_DS); \
regs->psw.mask = PSW_USER_BITS; \
regs->psw.addr = new_psw; \
regs->gprs[15] = new_stackp; \
} while (0)
#define start_thread31(regs, new_psw, new_stackp) do { \
+ set_fs(USER_DS); \
regs->psw.mask = PSW_USER32_BITS; \
regs->psw.addr = new_psw; \
regs->gprs[15] = new_stackp; \