提交 2fb9e96c 编写于 作者: L Linus Torvalds

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull additional x86 fixes from Peter Anvin:
 - address a long-standing bug related to when a kernel-spawned process
   gets a signal on an i386 kernel compiled without CONFIG_VM86.

 - fix the newly introduced build warning in arch/x86/boot.

 - fix a typo in the i386 system call table which affects building some
   libcs.

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86-32: Fix endless loop when processing signals for kernel tasks
  x86, boot: Correct CFLAGS for hostprogs
  x86-32: Fix typo for mq_getsetattr in syscall table
...@@ -37,9 +37,9 @@ setup-y += video-bios.o ...@@ -37,9 +37,9 @@ setup-y += video-bios.o
targets += $(setup-y) targets += $(setup-y)
hostprogs-y := mkcpustr tools/build hostprogs-y := mkcpustr tools/build
HOSTCFLAGS_mkcpustr.o := -I$(srctree)/arch/$(SRCARCH)/include HOST_EXTRACFLAGS += -I$(srctree)/tools/include $(LINUXINCLUDE) \
HOST_EXTRACFLAGS += -I$(objtree)/include -I$(srctree)/tools/include \ -D__EXPORTED_HEADERS__
-include $(srctree)/include/linux/kconfig.h
$(obj)/cpu.o: $(obj)/cpustr.h $(obj)/cpu.o: $(obj)/cpustr.h
quiet_cmd_cpustr = CPUSTR $@ quiet_cmd_cpustr = CPUSTR $@
......
...@@ -98,12 +98,6 @@ ...@@ -98,12 +98,6 @@
#endif #endif
.endm .endm
#ifdef CONFIG_VM86
#define resume_userspace_sig check_userspace
#else
#define resume_userspace_sig resume_userspace
#endif
/* /*
* User gs save/restore * User gs save/restore
* *
...@@ -327,10 +321,19 @@ ret_from_exception: ...@@ -327,10 +321,19 @@ ret_from_exception:
preempt_stop(CLBR_ANY) preempt_stop(CLBR_ANY)
ret_from_intr: ret_from_intr:
GET_THREAD_INFO(%ebp) GET_THREAD_INFO(%ebp)
check_userspace: resume_userspace_sig:
#ifdef CONFIG_VM86
movl PT_EFLAGS(%esp), %eax # mix EFLAGS and CS movl PT_EFLAGS(%esp), %eax # mix EFLAGS and CS
movb PT_CS(%esp), %al movb PT_CS(%esp), %al
andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax
#else
/*
* We can be coming here from a syscall done in the kernel space,
* e.g. a failed kernel_execve().
*/
movl PT_CS(%esp), %eax
andl $SEGMENT_RPL_MASK, %eax
#endif
cmpl $USER_RPL, %eax cmpl $USER_RPL, %eax
jb resume_kernel # not returning to v8086 or userspace jb resume_kernel # not returning to v8086 or userspace
......
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
279 i386 mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend 279 i386 mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend
280 i386 mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive 280 i386 mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive
281 i386 mq_notify sys_mq_notify compat_sys_mq_notify 281 i386 mq_notify sys_mq_notify compat_sys_mq_notify
282 i386 mq_getsetaddr sys_mq_getsetattr compat_sys_mq_getsetattr 282 i386 mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr
283 i386 kexec_load sys_kexec_load compat_sys_kexec_load 283 i386 kexec_load sys_kexec_load compat_sys_kexec_load
284 i386 waitid sys_waitid compat_sys_waitid 284 i386 waitid sys_waitid compat_sys_waitid
# 285 sys_setaltroot # 285 sys_setaltroot
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册