#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 ;                          \
 #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;                           \