From 5d7462786f45f9f81fe1c1a11d7c198060b0cecc Mon Sep 17 00:00:00 2001 From: Hiroshi Shimamoto Date: Mon, 17 Nov 2008 15:47:48 -0800 Subject: [PATCH] --- yaml --- r: 120935 b: refs/heads/master c: 8c6e5ce0fd67c57ad5e19d1718e1250214e855db h: refs/heads/master i: 120933: 78975d937b4ecfd2ef03ec4ea58e1620aabbe818 120931: e44972de98184c27296263b6d5c1b8f0b782ef6f 120927: 220cf25b4a9b06d1e9f72bfe1906155281fd60d3 v: v3 --- [refs] | 2 +- trunk/arch/x86/ia32/ia32_signal.c | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 12111ad209e5..73eb0547e49a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d71a68dca54756049e0eae62458a1705bf680d09 +refs/heads/master: 8c6e5ce0fd67c57ad5e19d1718e1250214e855db diff --git a/trunk/arch/x86/ia32/ia32_signal.c b/trunk/arch/x86/ia32/ia32_signal.c index fe44c314c9c0..2c56e6857d1a 100644 --- a/trunk/arch/x86/ia32/ia32_signal.c +++ b/trunk/arch/x86/ia32/ia32_signal.c @@ -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);