[GIT PULL] x86/irq changes for v5.2

From: Ingo Molnar
Date: Mon May 06 2019 - 06:28:27 EST


Linus,

Please pull the latest x86-irq-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-irq-for-linus

# HEAD: 2c4645439e8f2f6e7c37f158feae6f6a82baa910 x86/irq: Fix outdated comments

Here are the main changes in this tree:

- Introduce x86-64 IRQ/exception/debug stack guard pages to detect stack
overflows immediately and deterministically.

- Clean up over a decade worth of cruft accumulated.

The outcome of this feature should be more clear-cut faults/crashes when
any of the low level x86 CPU stacks overflow, instead of silent memory
corruption and sporadic failures much later on.


out-of-topic modifications in x86-irq-for-linus:
--------------------------------------------------
mm/slab.c # 80552f0f7aeb: mm/slab: Remove store_stacki

Thanks,

Ingo

------------------>
Andy Lutomirski (4):
x86/dumpstack: Fix off-by-one errors in stack identification
x86/irq/64: Remove a hardcoded irq_stack_union access
x86/irq/64: Split the IRQ stack into its own pages
x86/irq/64: Remap the IRQ stack with guard pages

Jiang Biao (1):
x86/irq: Fix outdated comments

Qian Cai (1):
mm/slab: Remove store_stackinfo()

Thomas Gleixner (27):
x86/irq/64: Limit IST stack overflow check to #DB stack
x86/irq/64: Sanitize the top/bottom confusion
x86/idt: Remove unused macro SISTG
x86/64: Remove stale CURRENT_MASK
x86/exceptions: Remove unused stack defines on 32bit
x86/exceptions: Make IST index zero based
x86/cpu_entry_area: Cleanup setup functions
x86/exceptions: Add structs for exception stacks
x86/cpu_entry_area: Prepare for IST guard pages
x86/cpu_entry_area: Provide exception stack accessor
x86/traps: Use cpu_entry_area instead of orig_ist
x86/irq/64: Use cpu entry area instead of orig_ist
x86/dumpstack/64: Use cpu_entry_area instead of orig_ist
x86/cpu: Prepare TSS.IST setup for guard pages
x86/cpu: Remove orig_ist array
x86/exceptions: Disconnect IST index and stack order
x86/exceptions: Enable IST guard pages
x86/exceptions: Split debug IST stack
x86/dumpstack/64: Speedup in_exception_stack()
x86/irq/32: Define IRQ_STACK_SIZE
x86/irq/32: Make irq stack a character array
x86/irq/32: Rename hard/softirq_stack to hard/softirq_stack_ptr
x86/irq/64: Rename irq_stack_ptr to hardirq_stack_ptr
x86/irq/32: Invoke irq_ctx_init() from init_IRQ()
x86/irq/32: Handle irq stack allocation failure proper
x86/irq/64: Init hardirq_stack_ptr during CPU hotplug
x86/irq/64: Remove stack overflow debug code


Documentation/x86/kernel-stacks | 13 +++--
arch/x86/Kconfig | 2 +-
arch/x86/entry/entry_64.S | 16 +++---
arch/x86/include/asm/cpu_entry_area.h | 69 ++++++++++++++++++++++--
arch/x86/include/asm/debugreg.h | 2 -
arch/x86/include/asm/irq.h | 6 +--
arch/x86/include/asm/irq_vectors.h | 4 +-
arch/x86/include/asm/page_32_types.h | 8 ++-
arch/x86/include/asm/page_64_types.h | 16 +++---
arch/x86/include/asm/processor.h | 43 ++++++---------
arch/x86/include/asm/smp.h | 2 +-
arch/x86/include/asm/stackprotector.h | 6 +--
arch/x86/include/asm/stacktrace.h | 2 +
arch/x86/kernel/asm-offsets_64.c | 4 +-
arch/x86/kernel/cpu/common.c | 60 ++++-----------------
arch/x86/kernel/dumpstack_32.c | 8 +--
arch/x86/kernel/dumpstack_64.c | 99 ++++++++++++++++++++++++-----------
arch/x86/kernel/head_64.S | 2 +-
arch/x86/kernel/idt.c | 19 ++++---
arch/x86/kernel/irq_32.c | 41 ++++++++-------
arch/x86/kernel/irq_64.c | 89 +++++++++++++++----------------
arch/x86/kernel/irqinit.c | 4 +-
arch/x86/kernel/nmi.c | 20 ++++++-
arch/x86/kernel/setup_percpu.c | 5 --
arch/x86/kernel/smpboot.c | 15 ++++--
arch/x86/kernel/vmlinux.lds.S | 7 +--
arch/x86/mm/cpu_entry_area.c | 64 +++++++++++++++-------
arch/x86/mm/fault.c | 3 +-
arch/x86/tools/relocs.c | 2 +-
arch/x86/xen/smp_pv.c | 4 +-
arch/x86/xen/xen-head.S | 10 ++--
drivers/xen/events/events_base.c | 1 -
mm/slab.c | 48 +++--------------
33 files changed, 377 insertions(+), 317 deletions(-)