Commit 536e89ee 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 fixes (mainly Andy's TLS fixes), plus a cleanup"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/tls: Disallow unusual TLS segments
  x86/tls: Validate TLS entries to protect espfix
  MAINTAINERS: Add me as x86 VDSO submaintainer
  x86/asm: Unify segment selector defines
  x86/asm: Guard against building the 32/64-bit versions of the asm-offsets*.c file directly
  x86_64, switch_to(): Load TLS descriptors before switching DS and ES
  x86/mm: Use min() instead of min_t() in the e820 printout code
  x86/mm: Fix zone ranges boot printout
  x86/doc: Update documentation after file shuffling
parents 9ea18f8c 0e58af4e
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -7,9 +7,12 @@ http://lkml.kernel.org/r/<20110529191055.GC9835%40elte.hu>
The x86 architecture has quite a few different ways to jump into
kernel code.  Most of these entry points are registered in
arch/x86/kernel/traps.c and implemented in arch/x86/kernel/entry_64.S
and arch/x86/ia32/ia32entry.S.
for 64-bit, arch/x86/kernel/entry_32.S for 32-bit and finally
arch/x86/ia32/ia32entry.S which implements the 32-bit compatibility
syscall entry points and thus provides for 32-bit processes the
ability to execute syscalls when running on 64-bit kernels.

The IDT vector assignments are listed in arch/x86/include/irq_vectors.h.
The IDT vector assignments are listed in arch/x86/include/asm/irq_vectors.h.

Some of these entries are:

+7 −0
Original line number Diff line number Diff line
@@ -10485,6 +10485,13 @@ L: linux-edac@vger.kernel.org
S:	Maintained
F:	arch/x86/kernel/cpu/mcheck/*

X86 VDSO
M:	Andy Lutomirski <luto@amacapital.net>
L:	linux-kernel@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/vdso
S:	Maintained
F:	arch/x86/vdso/

XC2028/3028 TUNER DRIVER
M:	Mauro Carvalho Chehab <mchehab@osg.samsung.com>
L:	linux-media@vger.kernel.org
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@
#define MAX_DMA_CHANNELS	8

/* 16MB ISA DMA zone */
#define MAX_DMA_PFN   ((16 * 1024 * 1024) >> PAGE_SHIFT)
#define MAX_DMA_PFN   ((16UL * 1024 * 1024) >> PAGE_SHIFT)

/* 4GB broken PCI/AGP hardware bus master zone */
#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
+9 −21
Original line number Diff line number Diff line
@@ -23,6 +23,15 @@
#define GDT_ENTRY_BOOT_TSS	(GDT_ENTRY_BOOT_CS + 2)
#define __BOOT_TSS		(GDT_ENTRY_BOOT_TSS * 8)

#define SEGMENT_RPL_MASK	0x3 /*
				     * Bottom two bits of selector give the ring
				     * privilege level
				     */
#define SEGMENT_TI_MASK		0x4 /* Bit 2 is table indicator (LDT/GDT) */
#define USER_RPL		0x3 /* User mode is privilege level 3 */
#define SEGMENT_LDT		0x4 /* LDT segment has TI set... */
#define SEGMENT_GDT		0x0 /* ... GDT has it cleared */

#ifdef CONFIG_X86_32
/*
 * The layout of the per-CPU GDT under Linux:
@@ -125,16 +134,6 @@
#define PNP_TS1    (GDT_ENTRY_PNPBIOS_TS1 * 8)	/* transfer data segment */
#define PNP_TS2    (GDT_ENTRY_PNPBIOS_TS2 * 8)	/* another data segment */

/* Bottom two bits of selector give the ring privilege level */
#define SEGMENT_RPL_MASK	0x3
/* Bit 2 is table indicator (LDT/GDT) */
#define SEGMENT_TI_MASK		0x4

/* User mode is privilege level 3 */
#define USER_RPL		0x3
/* LDT segment has TI set, GDT has it cleared */
#define SEGMENT_LDT		0x4
#define SEGMENT_GDT		0x0

/*
 * Matching rules for certain types of segments.
@@ -192,17 +191,6 @@
#define get_kernel_rpl()  0
#endif

/* User mode is privilege level 3 */
#define USER_RPL		0x3
/* LDT segment has TI set, GDT has it cleared */
#define SEGMENT_LDT		0x4
#define SEGMENT_GDT		0x0

/* Bottom two bits of selector give the ring privilege level */
#define SEGMENT_RPL_MASK	0x3
/* Bit 2 is table indicator (LDT/GDT) */
#define SEGMENT_TI_MASK		0x4

#define IDT_ENTRIES 256
#define NUM_EXCEPTION_VECTORS 32
/* Bitmask of exception vectors which push an error code on the stack */
+4 −0
Original line number Diff line number Diff line
#ifndef __LINUX_KBUILD_H
# error "Please do not build this file directly, build asm-offsets.c instead"
#endif

#include <asm/ucontext.h>

#include <linux/lguest.h>
Loading