|
@@ -144,6 +144,7 @@ struct stack_frame {
|
|
#ifndef __s390x__
|
|
#ifndef __s390x__
|
|
|
|
|
|
#define start_thread(regs, new_psw, new_stackp) do { \
|
|
#define start_thread(regs, new_psw, new_stackp) do { \
|
|
|
|
+ set_fs(USER_DS); \
|
|
regs->psw.mask = PSW_USER_BITS; \
|
|
regs->psw.mask = PSW_USER_BITS; \
|
|
regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
|
|
regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
|
|
regs->gprs[15] = new_stackp ; \
|
|
regs->gprs[15] = new_stackp ; \
|
|
@@ -152,12 +153,14 @@ struct stack_frame {
|
|
#else /* __s390x__ */
|
|
#else /* __s390x__ */
|
|
|
|
|
|
#define start_thread(regs, new_psw, new_stackp) do { \
|
|
#define start_thread(regs, new_psw, new_stackp) do { \
|
|
|
|
+ set_fs(USER_DS); \
|
|
regs->psw.mask = PSW_USER_BITS; \
|
|
regs->psw.mask = PSW_USER_BITS; \
|
|
regs->psw.addr = new_psw; \
|
|
regs->psw.addr = new_psw; \
|
|
regs->gprs[15] = new_stackp; \
|
|
regs->gprs[15] = new_stackp; \
|
|
} while (0)
|
|
} while (0)
|
|
|
|
|
|
#define start_thread31(regs, new_psw, new_stackp) do { \
|
|
#define start_thread31(regs, new_psw, new_stackp) do { \
|
|
|
|
+ set_fs(USER_DS); \
|
|
regs->psw.mask = PSW_USER32_BITS; \
|
|
regs->psw.mask = PSW_USER32_BITS; \
|
|
regs->psw.addr = new_psw; \
|
|
regs->psw.addr = new_psw; \
|
|
regs->gprs[15] = new_stackp; \
|
|
regs->gprs[15] = new_stackp; \
|