linux/arch/x86/mm
Andy Lutomirski 15a416e8aa x86/entry: Treat BUG/WARN as NMI-like entries
BUG/WARN are cleverly optimized using UD2 to handle the BUG/WARN out of
line in an exception fixup.

But if BUG or WARN is issued in a funny RCU context, then the
idtentry_enter...() path might helpfully WARN that the RCU context is
invalid, which results in infinite recursion.

Split the BUG/WARN handling into an nmi_enter()/nmi_exit() path in
exc_invalid_op() to increase the chance to survive the experience.

[ tglx: Make the declaration match the implementation ]

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/f8fe40e0088749734b4435b554f73eee53dcf7a8.1591932307.git.luto@kernel.org
2020-06-12 12:12:57 +02:00
..
pat mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
amdtopology.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
cpu_entry_area.c x86/entry: Remove DBn stacks 2020-06-11 15:15:23 +02:00
debug_pagetables.c mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
dump_pagetables.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
extable.c x86/entry: Treat BUG/WARN as NMI-like entries 2020-06-12 12:12:57 +02:00
fault.c x86/idt: Consolidate idt functionality 2020-06-11 15:15:26 +02:00
highmem_32.c arch/kunmap_atomic: consolidate duplicate code 2020-06-04 19:06:22 -07:00
hugetlbpage.c hugetlbfs: remove hugetlb_add_hstate() warning for existing hstate 2020-06-03 20:09:46 -07:00
ident_map.c x86/mm: Stop pretending pgtable_l5_enabled is a variable 2018-05-19 11:56:57 +02:00
init_32.c mm: pgtable: add shortcuts for accessing kernel PMD and PTE 2020-06-09 09:39:13 -07:00
init_64.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
init.c x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
iomap_32.c x86/mm/pat: Rename <asm/pat.h> => <asm/memtype.h> 2019-12-10 10:12:55 +01:00
ioremap.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
kasan_init_64.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
kaslr.c x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
kmmio.c Misc changes: 2020-06-05 11:18:53 -07:00
maccess.c maccess: always use strict semantics for probe_kernel_read 2020-06-09 09:39:15 -07:00
Makefile x86: mm: convert dump_pagetables to use walk_page_range 2020-02-04 03:05:25 +00:00
mem_encrypt_boot.S mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
mem_encrypt_identity.c Merge branch 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-09 11:52:34 -07:00
mem_encrypt.c x86/tlb: Move __flush_tlb() out of line 2020-04-26 11:00:05 +02:00
mm_internal.h x86/mm: thread pgprot_t through init_memory_mapping() 2020-04-10 15:36:21 -07:00
mmap.c x86/mm/mmap: Fix -Wmissing-prototypes warnings 2020-04-22 20:19:48 +02:00
mmio-mod.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
numa_32.c x86/mm: Drop deprecated DISCONTIGMEM support for 32-bit 2020-05-28 18:34:30 +02:00
numa_64.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
numa_emulation.c x86/mm: Mark setup_emu2phys_nid() static 2020-03-27 11:07:30 +01:00
numa_internal.h
numa.c mm: rename free_area_init_node() to free_area_init_memoryless_node() 2020-06-03 20:09:44 -07:00
pf_in.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pf_in.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pgtable_32.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
pgtable.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
physaddr.c mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
physaddr.h
pkeys.c mm/vma: introduce VM_ACCESS_FLAGS 2020-04-10 15:36:21 -07:00
pti.c x86/entry: Unbreak __irqentry_text_start/end magic 2020-06-11 15:15:29 +02:00
setup_nx.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
srat.c
testmmiotrace.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
tlb.c Misc changes: 2020-06-05 11:18:53 -07:00