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
This commit is contained in:
@@ -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 @@
|
|||||||
#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:
|
|||||||
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 @@
|
|||||||
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
|
||||||
|
Reference in New Issue
Block a user