From 4cac129d8630948cdeb41d489721f70201eae4a5 Mon Sep 17 00:00:00 2001 From: Aleksey Gorelov Date: Tue, 27 Jun 2006 02:53:48 -0700 Subject: [PATCH] --- yaml --- r: 30741 b: refs/heads/master c: 4031ff388138b58e5cd472dccce38828bcb8c706 h: refs/heads/master i: 30739: 801a72d130262627eccc8567dd4f6fa8b22a9e2c v: v3 --- [refs] | 2 +- trunk/arch/i386/kernel/entry.S | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index cc42f2c5da05..829eb9a59c5f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c723e084606ca1c81e91b80b2c0c44bde7bbc4df +refs/heads/master: 4031ff388138b58e5cd472dccce38828bcb8c706 diff --git a/trunk/arch/i386/kernel/entry.S b/trunk/arch/i386/kernel/entry.S index 8713e0248a0b..e8d2630fd19a 100644 --- a/trunk/arch/i386/kernel/entry.S +++ b/trunk/arch/i386/kernel/entry.S @@ -83,6 +83,12 @@ VM_MASK = 0x00020000 #define resume_kernel restore_nocheck #endif +#ifdef CONFIG_VM86 +#define resume_userspace_sig check_userspace +#else +#define resume_userspace_sig resume_userspace +#endif + #define SAVE_ALL \ cld; \ pushl %es; \ @@ -211,6 +217,7 @@ ret_from_exception: preempt_stop ret_from_intr: GET_THREAD_INFO(%ebp) +check_userspace: movl EFLAGS(%esp), %eax # mix EFLAGS and CS movb CS(%esp), %al testl $(VM_MASK | 3), %eax @@ -415,7 +422,7 @@ work_notifysig: # deal with pending signals and # vm86-space xorl %edx, %edx call do_notify_resume - jmp resume_userspace + jmp resume_userspace_sig ALIGN work_notifysig_v86: @@ -428,7 +435,7 @@ work_notifysig_v86: movl %eax, %esp xorl %edx, %edx call do_notify_resume - jmp resume_userspace + jmp resume_userspace_sig #endif # perform syscall exit tracing