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

Commit 69d2ca60 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 Thoma Gleixner:
 "Another round of fixes for x86:

   - Move the initialization of the microcode driver to late_initcall to
     make sure everything that init function needs is available.

   - Make sure that lockdep knows about interrupts being off in the
     entry code before calling into c-code.

   - Undo the cpu hotplug init delay regression.

   - Use the proper conditionals in the mpx instruction decoder.

   - Fixup restart_syscall for x32 tasks.

   - Fix the hugepage regression on PAE kernels which was introduced
     with the latest PAT changes"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/signal: Fix restart_syscall number for x32 tasks
  x86/mpx: Fix instruction decoder condition
  x86/mm: Fix regression with huge pages on PAE
  x86 smpboot: Re-enable init_udelay=0 by default on modern CPUs
  x86/entry/64: Fix irqflag tracing wrt context tracking
  x86/microcode: Initialize the driver late when facilities are up
parents 19190f5e 22eab110
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -23,7 +23,6 @@
#include <stdarg.h>
#include <stdarg.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/edd.h>
#include <linux/edd.h>
#include <asm/boot.h>
#include <asm/setup.h>
#include <asm/setup.h>
#include "bitops.h"
#include "bitops.h"
#include "ctype.h"
#include "ctype.h"
+2 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,8 @@
#include "video.h"
#include "video.h"
#include "vesa.h"
#include "vesa.h"


#include <uapi/asm/boot.h>

/*
/*
 * Common variables
 * Common variables
 */
 */
+2 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,8 @@
 * Select video mode
 * Select video mode
 */
 */


#include <uapi/asm/boot.h>

#include "boot.h"
#include "boot.h"
#include "video.h"
#include "video.h"
#include "vesa.h"
#include "vesa.h"
+18 −1
Original line number Original line Diff line number Diff line
@@ -509,6 +509,17 @@ END(irq_entries_start)
	 * tracking that we're in kernel mode.
	 * tracking that we're in kernel mode.
	 */
	 */
	SWAPGS
	SWAPGS

	/*
	 * We need to tell lockdep that IRQs are off.  We can't do this until
	 * we fix gsbase, and we should do it before enter_from_user_mode
	 * (which can take locks).  Since TRACE_IRQS_OFF idempotent,
	 * the simplest way to handle it is to just call it twice if
	 * we enter from user mode.  There's no reason to optimize this since
	 * TRACE_IRQS_OFF is a no-op if lockdep is off.
	 */
	TRACE_IRQS_OFF

#ifdef CONFIG_CONTEXT_TRACKING
#ifdef CONFIG_CONTEXT_TRACKING
	call enter_from_user_mode
	call enter_from_user_mode
#endif
#endif
@@ -1049,12 +1060,18 @@ ENTRY(error_entry)
	SWAPGS
	SWAPGS


.Lerror_entry_from_usermode_after_swapgs:
.Lerror_entry_from_usermode_after_swapgs:
	/*
	 * We need to tell lockdep that IRQs are off.  We can't do this until
	 * we fix gsbase, and we should do it before enter_from_user_mode
	 * (which can take locks).
	 */
	TRACE_IRQS_OFF
#ifdef CONFIG_CONTEXT_TRACKING
#ifdef CONFIG_CONTEXT_TRACKING
	call enter_from_user_mode
	call enter_from_user_mode
#endif
#endif
	ret


.Lerror_entry_done:
.Lerror_entry_done:

	TRACE_IRQS_OFF
	TRACE_IRQS_OFF
	ret
	ret


+9 −7
Original line number Original line Diff line number Diff line
@@ -9,19 +9,21 @@
#define PAGE_SIZE	(_AC(1,UL) << PAGE_SHIFT)
#define PAGE_SIZE	(_AC(1,UL) << PAGE_SHIFT)
#define PAGE_MASK	(~(PAGE_SIZE-1))
#define PAGE_MASK	(~(PAGE_SIZE-1))


#define PMD_PAGE_SIZE		(_AC(1, UL) << PMD_SHIFT)
#define PMD_PAGE_MASK		(~(PMD_PAGE_SIZE-1))

#define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
#define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))

#define __PHYSICAL_MASK		((phys_addr_t)((1ULL << __PHYSICAL_MASK_SHIFT) - 1))
#define __PHYSICAL_MASK		((phys_addr_t)((1ULL << __PHYSICAL_MASK_SHIFT) - 1))
#define __VIRTUAL_MASK		((1UL << __VIRTUAL_MASK_SHIFT) - 1)
#define __VIRTUAL_MASK		((1UL << __VIRTUAL_MASK_SHIFT) - 1)


/* Cast PAGE_MASK to a signed type so that it is sign-extended if
/* Cast *PAGE_MASK to a signed type so that it is sign-extended if
   virtual addresses are 32-bits but physical addresses are larger
   virtual addresses are 32-bits but physical addresses are larger
   (ie, 32-bit PAE). */
   (ie, 32-bit PAE). */
#define PHYSICAL_PAGE_MASK	(((signed long)PAGE_MASK) & __PHYSICAL_MASK)
#define PHYSICAL_PAGE_MASK	(((signed long)PAGE_MASK) & __PHYSICAL_MASK)

#define PHYSICAL_PMD_PAGE_MASK	(((signed long)PMD_PAGE_MASK) & __PHYSICAL_MASK)
#define PMD_PAGE_SIZE		(_AC(1, UL) << PMD_SHIFT)
#define PHYSICAL_PUD_PAGE_MASK	(((signed long)PUD_PAGE_MASK) & __PHYSICAL_MASK)
#define PMD_PAGE_MASK		(~(PMD_PAGE_SIZE-1))

#define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
#define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))


#define HPAGE_SHIFT		PMD_SHIFT
#define HPAGE_SHIFT		PMD_SHIFT
#define HPAGE_SIZE		(_AC(1,UL) << HPAGE_SHIFT)
#define HPAGE_SIZE		(_AC(1,UL) << HPAGE_SHIFT)
Loading