|
@@ -779,6 +779,8 @@ static void do_signal(struct pt_regs *regs)
|
|
void
|
|
void
|
|
do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
|
|
do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
|
|
{
|
|
{
|
|
|
|
+ rcu_user_exit();
|
|
|
|
+
|
|
#ifdef CONFIG_X86_MCE
|
|
#ifdef CONFIG_X86_MCE
|
|
/* notify userspace of pending MCEs */
|
|
/* notify userspace of pending MCEs */
|
|
if (thread_info_flags & _TIF_MCE_NOTIFY)
|
|
if (thread_info_flags & _TIF_MCE_NOTIFY)
|
|
@@ -804,6 +806,8 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
|
|
#ifdef CONFIG_X86_32
|
|
#ifdef CONFIG_X86_32
|
|
clear_thread_flag(TIF_IRET);
|
|
clear_thread_flag(TIF_IRET);
|
|
#endif /* CONFIG_X86_32 */
|
|
#endif /* CONFIG_X86_32 */
|
|
|
|
+
|
|
|
|
+ rcu_user_enter();
|
|
}
|
|
}
|
|
|
|
|
|
void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
|
|
void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
|