Re: [PATCH 2/5] x86: ia32_signal: introduce COPY_SEG_STRICT

Hiroshi Shimamoto
2008-11-17T18:03:18Z

Américo Wang wrote:
> On Sat, Nov 15, 2008 at 3:26 AM, Hiroshi Shimamoto
> <h-shimamoto@ct.jp.nec.com> wrote:
>> From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
>>
>> Impact: cleanup
>>
>> Introduce COPY_SEG_STRICT for ia32_restore_sigcontext().
>>
>> Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
>> ---
>> arch/x86/ia32/ia32_signal.c | 12 ++++++++----
>> 1 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
>> index a28790a..f74178e 100644
>> --- a/arch/x86/ia32/ia32_signal.c
>> +++ b/arch/x86/ia32/ia32_signal.c
>> @@ -201,6 +201,12 @@ struct rt_sigframe
>> err |= __get_user(regs->x, &sc->x); \
>> }
>>
>> +#define COPY_SEG_STRICT(seg) { \
>> + unsigned short tmp; \
>> + err |= __get_user(tmp, &sc->seg); \
>> + regs->seg = tmp | 3; \
>> +}
>> +
>
> Since your first patch is to kill the temporary variables, then why do you
> introduce a temporary variable here? It can be avoided like it was.
>
> Can you explain the reason? :)

The first reason is to make this macro same as arch/x86/kernel/signal_{32|64}.c.
And second, I guess gcc may generate little better code.

thanks,
Hiroshi Shimamoto