aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJoe Korty <joe.korty@ccur.com>2006-12-06 20:14:04 -0500
committerAndi Kleen <andi@basil.nowhere.org>2006-12-06 20:14:04 -0500
commit74b47a7844501445d41d704fe7c626f4b1819508 (patch)
treee05179601b7f541838913aa9874fd9ae69418eb0 /arch
parent249e83fe839a13b5dc94285daeeaf70f6e54d930 (diff)
[PATCH] i386: Fix entry.S code with !CONFIG_VM86
The entry.S code at work_notifysig is surely wrong. It drops into unrelated code if the branch to work_notifysig_v86 is taken, and CONFIG_VM86=n. [PATCH] Make vm86 support optional tree 9b5daef5280800a0006343a17f63072658d91a1d pushed to git Jan 8, 2006, and first appears in 2.6.16 The 'fix' here is to also compile out the vm86 test & branch when CONFIG_VM86=n. Signed-off-by: Joe Korty <joe.korty@ccur.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/entry.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
index d7423efaeea4..0220bc8cbb43 100644
--- a/arch/i386/kernel/entry.S
+++ b/arch/i386/kernel/entry.S
@@ -457,6 +457,7 @@ work_resched:
457 457
458work_notifysig: # deal with pending signals and 458work_notifysig: # deal with pending signals and
459 # notify-resume requests 459 # notify-resume requests
460#ifdef CONFIG_VM86
460 testl $VM_MASK, PT_EFLAGS(%esp) 461 testl $VM_MASK, PT_EFLAGS(%esp)
461 movl %esp, %eax 462 movl %esp, %eax
462 jne work_notifysig_v86 # returning to kernel-space or 463 jne work_notifysig_v86 # returning to kernel-space or
@@ -467,17 +468,18 @@ work_notifysig: # deal with pending signals and
467 468
468 ALIGN 469 ALIGN
469work_notifysig_v86: 470work_notifysig_v86:
470#ifdef CONFIG_VM86
471 pushl %ecx # save ti_flags for do_notify_resume 471 pushl %ecx # save ti_flags for do_notify_resume
472 CFI_ADJUST_CFA_OFFSET 4 472 CFI_ADJUST_CFA_OFFSET 4
473 call save_v86_state # %eax contains pt_regs pointer 473 call save_v86_state # %eax contains pt_regs pointer
474 popl %ecx 474 popl %ecx
475 CFI_ADJUST_CFA_OFFSET -4 475 CFI_ADJUST_CFA_OFFSET -4
476 movl %eax, %esp 476 movl %eax, %esp
477#else
478 movl %esp, %eax
479#endif
477 xorl %edx, %edx 480 xorl %edx, %edx
478 call do_notify_resume 481 call do_notify_resume
479 jmp resume_userspace_sig 482 jmp resume_userspace_sig
480#endif
481 483
482 # perform syscall exit tracing 484 # perform syscall exit tracing
483 ALIGN 485 ALIGN