android_kernel_xiaomi_sm8350/arch
Jan Beulich 101f12af16 [PATCH] i386: actively synchronize vmalloc area when registering certain callbacks
Registering a callback handler through register_die_notifier() is obviously
primarily intended for use by modules.  However, the way these currently
get called it is basically impossible for them to actually be used by
modules, as there is, on non-PAE configurationes, a good chance (the larger
the module, the better) for the system to crash as a result.

This is because the callback gets invoked

(a) in the page fault path before the top level page table propagation
    gets carried out (hence a fault to propagate the top level page table
    entry/entries mapping to module's code/data would nest infinitly) and

(b) in the NMI path, where nested faults must absolutely not happen,
    since otherwise the IRET from the nested fault re-enables NMIs,
    potentially resulting in nested NMI occurences.

Besides the modular aspect, similar problems would even arise for in-
kernel consumers of the API if they touched ioremap()ed or vmalloc()ed
memory inside their handlers.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-23 07:38:05 -08:00
..
alpha [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-03-22 17:32:09 -08:00
arm26 [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
cris [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
frv [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
h8300 [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
i386 [PATCH] i386: actively synchronize vmalloc area when registering certain callbacks 2006-03-23 07:38:05 -08:00
ia64 [PATCH] hugepage: is_aligned_hugepage_range() cleanup 2006-03-22 07:54:04 -08:00
m32r [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
m68k [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
m68knommu [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
mips [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
parisc [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
powerpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-03-22 22:20:46 -08:00
ppc Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-03-22 22:20:46 -08:00
s390 [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
sh [PATCH] hugepage: is_aligned_hugepage_range() cleanup 2006-03-22 07:54:04 -08:00
sh64 [PATCH] hugepage: is_aligned_hugepage_range() cleanup 2006-03-22 07:54:04 -08:00
sparc Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-03-22 10:56:57 -08:00
sparc64 [PATCH] sparc64: fix set_page_count merge clash 2006-03-23 07:15:21 -08:00
um [PATCH] x86: SMP alternatives 2006-03-23 07:38:04 -08:00
v850 [PATCH] add EXPORT_SYMBOL_GPL_FUTURE() 2006-03-20 13:42:58 -08:00
x86_64 [PATCH] x86: early_printk(): remove MAX_YPOS and MAX_XPOS macros 2006-03-23 07:38:05 -08:00
xtensa [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00