Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2fd7476d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull x86 fixes from Ingo Molnar:
 "Misc smaller fixes that missed the v3.17 cycle"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/build: Add arch/x86/purgatory/ make generated files to gitignore
  x86: Fix section conflict for numachip
  x86: Reject x32 executables if x32 ABI not supported
  x86_64, entry: Filter RFLAGS.NT on entry from userspace
  x86, boot, kaslr: Fix nuisance warning on 32-bit builds
parents ba1a96fc 4ea48a01
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
boot/compressed/vmlinux
tools/test_get_len
tools/insn_sanity
purgatory/kexec-purgatory.c
purgatory/purgatory.ro
+1 −1
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ static bool mem_avoid_overlap(struct mem_vector *img)
	while (ptr) {
		struct mem_vector avoid;

		avoid.start = (u64)ptr;
		avoid.start = (unsigned long)ptr;
		avoid.size = sizeof(*ptr) + ptr->len;

		if (mem_overlaps(img, &avoid))
+17 −1
Original line number Diff line number Diff line
@@ -151,6 +151,16 @@ ENTRY(ia32_sysenter_target)
1:	movl	(%rbp),%ebp
	_ASM_EXTABLE(1b,ia32_badarg)
	ASM_CLAC

	/*
	 * Sysenter doesn't filter flags, so we need to clear NT
	 * ourselves.  To save a few cycles, we can check whether
	 * NT was set instead of doing an unconditional popfq.
	 */
	testl $X86_EFLAGS_NT,EFLAGS(%rsp)	/* saved EFLAGS match cpu */
	jnz sysenter_fix_flags
sysenter_flags_fixed:

	orl     $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET)
	testl   $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
	CFI_REMEMBER_STATE
@@ -184,6 +194,8 @@ sysexit_from_sys_call:
	TRACE_IRQS_ON
	ENABLE_INTERRUPTS_SYSEXIT32

	CFI_RESTORE_STATE

#ifdef CONFIG_AUDITSYSCALL
	.macro auditsys_entry_common
	movl %esi,%r9d			/* 6th arg: 4th syscall arg */
@@ -226,7 +238,6 @@ sysexit_from_sys_call:
	.endm

sysenter_auditsys:
	CFI_RESTORE_STATE
	auditsys_entry_common
	movl %ebp,%r9d			/* reload 6th syscall arg */
	jmp sysenter_dispatch
@@ -235,6 +246,11 @@ sysexit_audit:
	auditsys_exit sysexit_from_sys_call
#endif

sysenter_fix_flags:
	pushq_cfi $(X86_EFLAGS_IF|X86_EFLAGS_FIXED)
	popfq_cfi
	jmp sysenter_flags_fixed

sysenter_tracesys:
#ifdef CONFIG_AUDITSYSCALL
	testl	$(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET)
+3 −2
Original line number Diff line number Diff line
@@ -161,7 +161,8 @@ do { \
	((x)->e_machine == EM_X86_64)

#define compat_elf_check_arch(x)					\
	(elf_check_arch_ia32(x) || (x)->e_machine == EM_X86_64)
	(elf_check_arch_ia32(x) ||					\
	 (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64))

#if __USER32_DS != __USER_DS
# error "The following code assumes __USER32_DS == __USER_DS"
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@

static int numachip_system __read_mostly;

static const struct apic apic_numachip __read_mostly;
static const struct apic apic_numachip;

static unsigned int get_apic_id(unsigned long x)
{
Loading