|
@@ -207,13 +207,14 @@ struct rt_sigframe
|
|
|
regs->seg = tmp | 3; \
|
|
|
}
|
|
|
|
|
|
-#define RELOAD_SEG(seg,mask) \
|
|
|
- { unsigned int cur; \
|
|
|
- unsigned short pre; \
|
|
|
- err |= __get_user(pre, &sc->seg); \
|
|
|
- savesegment(seg, cur); \
|
|
|
- pre |= mask; \
|
|
|
- if (pre != cur) loadsegment(seg, pre); }
|
|
|
+#define RELOAD_SEG(seg) { \
|
|
|
+ unsigned int cur, pre; \
|
|
|
+ err |= __get_user(pre, &sc->seg); \
|
|
|
+ savesegment(seg, cur); \
|
|
|
+ pre |= 3; \
|
|
|
+ if (pre != cur) \
|
|
|
+ loadsegment(seg, pre); \
|
|
|
+}
|
|
|
|
|
|
static int ia32_restore_sigcontext(struct pt_regs *regs,
|
|
|
struct sigcontext_ia32 __user *sc,
|
|
@@ -244,9 +245,9 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
|
|
|
if (gs != oldgs)
|
|
|
load_gs_index(gs);
|
|
|
|
|
|
- RELOAD_SEG(fs, 3);
|
|
|
- RELOAD_SEG(ds, 3);
|
|
|
- RELOAD_SEG(es, 3);
|
|
|
+ RELOAD_SEG(fs);
|
|
|
+ RELOAD_SEG(ds);
|
|
|
+ RELOAD_SEG(es);
|
|
|
|
|
|
COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
|
|
|
COPY(dx); COPY(cx); COPY(ip);
|