mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 08:09:56 +00:00
[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>
This commit is contained in:
parent
249e83fe83
commit
74b47a7844
@ -457,6 +457,7 @@ work_resched:
|
|||||||
|
|
||||||
work_notifysig: # deal with pending signals and
|
work_notifysig: # deal with pending signals and
|
||||||
# notify-resume requests
|
# notify-resume requests
|
||||||
|
#ifdef CONFIG_VM86
|
||||||
testl $VM_MASK, PT_EFLAGS(%esp)
|
testl $VM_MASK, PT_EFLAGS(%esp)
|
||||||
movl %esp, %eax
|
movl %esp, %eax
|
||||||
jne work_notifysig_v86 # returning to kernel-space or
|
jne work_notifysig_v86 # returning to kernel-space or
|
||||||
@ -467,17 +468,18 @@ work_notifysig: # deal with pending signals and
|
|||||||
|
|
||||||
ALIGN
|
ALIGN
|
||||||
work_notifysig_v86:
|
work_notifysig_v86:
|
||||||
#ifdef CONFIG_VM86
|
|
||||||
pushl %ecx # save ti_flags for do_notify_resume
|
pushl %ecx # save ti_flags for do_notify_resume
|
||||||
CFI_ADJUST_CFA_OFFSET 4
|
CFI_ADJUST_CFA_OFFSET 4
|
||||||
call save_v86_state # %eax contains pt_regs pointer
|
call save_v86_state # %eax contains pt_regs pointer
|
||||||
popl %ecx
|
popl %ecx
|
||||||
CFI_ADJUST_CFA_OFFSET -4
|
CFI_ADJUST_CFA_OFFSET -4
|
||||||
movl %eax, %esp
|
movl %eax, %esp
|
||||||
|
#else
|
||||||
|
movl %esp, %eax
|
||||||
|
#endif
|
||||||
xorl %edx, %edx
|
xorl %edx, %edx
|
||||||
call do_notify_resume
|
call do_notify_resume
|
||||||
jmp resume_userspace_sig
|
jmp resume_userspace_sig
|
||||||
#endif
|
|
||||||
|
|
||||||
# perform syscall exit tracing
|
# perform syscall exit tracing
|
||||||
ALIGN
|
ALIGN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user