diff options
| author | Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> | 2008-09-23 17:21:45 -0700 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-09-24 09:35:54 +0200 | 
| commit | ee847c54ba7fc09f85f13a5bf18f45ea6c19aa83 (patch) | |
| tree | 4a7b2f98df43c2f1a026ecfe57a97ab452176dc3 | |
| parent | 5fd933303bd1efacbd0acbe452ba9b889440eb40 (diff) | |
x86: signal: cosmetic unification of do_notify_resume()
Make do_notify_resume() same.
Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/signal_32.c | 8 | ||||
| -rw-r--r-- | arch/x86/kernel/signal_64.c | 16 | 
2 files changed, 20 insertions, 4 deletions
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c index da3cf3270f8..b94463f264b 100644 --- a/arch/x86/kernel/signal_32.c +++ b/arch/x86/kernel/signal_32.c @@ -663,6 +663,12 @@ static void do_signal(struct pt_regs *regs)  void  do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)  { +#if defined(CONFIG_X86_64) && defined(CONFIG_X86_MCE) +	/* notify userspace of pending MCEs */ +	if (thread_info_flags & _TIF_MCE_NOTIFY) +		mce_notify_user(); +#endif /* CONFIG_X86_64 && CONFIG_X86_MCE */ +  	/* deal with pending signal delivery */  	if (thread_info_flags & _TIF_SIGPENDING)  		do_signal(regs); @@ -672,7 +678,9 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)  		tracehook_notify_resume(regs);  	} +#ifdef CONFIG_X86_32  	clear_thread_flag(TIF_IRET); +#endif /* CONFIG_X86_32 */  }  void signal_fault(struct pt_regs *regs, void __user *frame, char *where) diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c index 5a5fbc3b1ee..9087752f410 100644 --- a/arch/x86/kernel/signal_64.c +++ b/arch/x86/kernel/signal_64.c @@ -460,14 +460,18 @@ static void do_signal(struct pt_regs *regs)  	}  } -void do_notify_resume(struct pt_regs *regs, void *unused, -		      __u32 thread_info_flags) +/* + * notification of userspace execution resumption + * - triggered by the TIF_WORK_MASK flags + */ +void +do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)  { -#ifdef CONFIG_X86_MCE +#if defined(CONFIG_X86_64) && defined(CONFIG_X86_MCE)  	/* notify userspace of pending MCEs */  	if (thread_info_flags & _TIF_MCE_NOTIFY)  		mce_notify_user(); -#endif /* CONFIG_X86_MCE */ +#endif /* CONFIG_X86_64 && CONFIG_X86_MCE */  	/* deal with pending signal delivery */  	if (thread_info_flags & _TIF_SIGPENDING) @@ -477,6 +481,10 @@ void do_notify_resume(struct pt_regs *regs, void *unused,  		clear_thread_flag(TIF_NOTIFY_RESUME);  		tracehook_notify_resume(regs);  	} + +#ifdef CONFIG_X86_32 +	clear_thread_flag(TIF_IRET); +#endif /* CONFIG_X86_32 */  }  void signal_fault(struct pt_regs *regs, void __user *frame, char *where)  | 
