]> git.baikalelectronics.ru Git - kernel.git/commitdiff
kernel.h: split out panic and oops helpers
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 1 Jul 2021 01:54:59 +0000 (18:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 1 Jul 2021 18:06:04 +0000 (11:06 -0700)
kernel.h is being used as a dump for all kinds of stuff for a long time.
Here is the attempt to start cleaning it up by splitting out panic and
oops helpers.

There are several purposes of doing this:
- dropping dependency in bug.h
- dropping a loop by moving out panic_notifier.h
- unload kernel.h from something which has its own domain

At the same time convert users tree-wide to use new headers, although for
the time being include new header back to kernel.h to avoid twisted
indirected includes for existing users.

[akpm@linux-foundation.org: thread_info.h needs limits.h]
[andriy.shevchenko@linux.intel.com: ia64 fix]
Link: https://lkml.kernel.org/r/20210520130557.55277-1-andriy.shevchenko@linux.intel.com
Link: https://lkml.kernel.org/r/20210511074137.33666-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Co-developed-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Wei Liu <wei.liu@kernel.org>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Sebastian Reichel <sre@kernel.org>
Acked-by: Luis Chamberlain <mcgrof@kernel.org>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Acked-by: Helge Deller <deller@gmx.de> # parisc
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
55 files changed:
arch/alpha/kernel/setup.c
arch/arm64/kernel/setup.c
arch/ia64/include/asm/pal.h
arch/mips/kernel/relocate.c
arch/mips/sgi-ip22/ip22-reset.c
arch/mips/sgi-ip32/ip32-reset.c
arch/parisc/kernel/pdc_chassis.c
arch/powerpc/kernel/setup-common.c
arch/s390/kernel/ipl.c
arch/sparc/kernel/sstate.c
arch/um/drivers/mconsole_kern.c
arch/um/kernel/um_arch.c
arch/x86/include/asm/desc.h
arch/x86/kernel/cpu/mshyperv.c
arch/x86/kernel/setup.c
arch/x86/purgatory/purgatory.c
arch/x86/xen/enlighten.c
arch/xtensa/platforms/iss/setup.c
drivers/bus/brcmstb_gisb.c
drivers/char/ipmi/ipmi_msghandler.c
drivers/clk/analogbits/wrpll-cln28hpc.c
drivers/edac/altera_edac.c
drivers/firmware/google/gsmi.c
drivers/hv/vmbus_drv.c
drivers/hwtracing/coresight/coresight-cpu-debug.c
drivers/leds/trigger/ledtrig-activity.c
drivers/leds/trigger/ledtrig-heartbeat.c
drivers/leds/trigger/ledtrig-panic.c
drivers/misc/bcm-vk/bcm_vk_dev.c
drivers/misc/ibmasm/heartbeat.c
drivers/misc/pvpanic/pvpanic.c
drivers/net/ipa/ipa_smp2p.c
drivers/parisc/power.c
drivers/power/reset/ltc2952-poweroff.c
drivers/remoteproc/remoteproc_core.c
drivers/s390/char/con3215.c
drivers/s390/char/con3270.c
drivers/s390/char/sclp.c
drivers/s390/char/sclp_con.c
drivers/s390/char/sclp_vt220.c
drivers/s390/char/zcore.c
drivers/soc/bcm/brcmstb/pm/pm-arm.c
drivers/staging/olpc_dcon/olpc_dcon.c
drivers/video/fbdev/hyperv_fb.c
include/asm-generic/bug.h
include/linux/kernel.h
include/linux/panic.h [new file with mode: 0644]
include/linux/panic_notifier.h [new file with mode: 0644]
include/linux/thread_info.h
kernel/hung_task.c
kernel/kexec_core.c
kernel/panic.c
kernel/rcu/tree.c
kernel/sysctl.c
kernel/trace/trace.c

index 5f6858e9dc2835f946f788a2f75b77a8a454d527..7d56c217b235048460e141295f1da71db83aead4 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/init.h>
 #include <linux/string.h>
 #include <linux/ioport.h>
+#include <linux/panic_notifier.h>
 #include <linux/platform_device.h>
 #include <linux/memblock.h>
 #include <linux/pci.h>
@@ -46,7 +47,6 @@
 #include <linux/log2.h>
 #include <linux/export.h>
 
-extern struct atomic_notifier_head panic_notifier_list;
 static int alpha_panic_event(struct notifier_block *, unsigned long, void *);
 static struct notifier_block alpha_panic_block = {
        alpha_panic_event,
index 61845c0821d9dc8533bb0eca1768da7b33d85d65..787bc0f601b36eb533fe1c000d00413474d0dcad 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/interrupt.h>
 #include <linux/smp.h>
 #include <linux/fs.h>
+#include <linux/panic_notifier.h>
 #include <linux/proc_fs.h>
 #include <linux/memblock.h>
 #include <linux/of_fdt.h>
index 5c51fceedaf9481a4c7956c444285086fc2ff099..e6b652f9e45e2973b03cea0b20c5d79fcce06c1a 100644 (file)
@@ -99,6 +99,7 @@
 
 #include <linux/types.h>
 #include <asm/fpu.h>
+#include <asm/intrinsics.h>
 
 /*
  * Data types needed to pass information into PAL procedures and
index 499a5357c09fbd15a2fa4c29afe3056ba344f30a..56b51de2dc51b3e00e1e34f2fe4df6d90c04e146 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/kernel.h>
 #include <linux/libfdt.h>
 #include <linux/of_fdt.h>
+#include <linux/panic_notifier.h>
 #include <linux/sched/task.h>
 #include <linux/start_kernel.h>
 #include <linux/string.h>
index c374f3ceec38cf6ae5040e16665521ea69cefecf..9028dbbb45dd0e83b94ccf36236af3ec44da5ad8 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/kernel.h>
 #include <linux/sched/signal.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/pm.h>
 #include <linux/timer.h>
 
index 20d8637340be40b4b96aa09f9c5f4b6d61436273..18d1c115cd534a2d78a1ee5f8b53681e46fc021f 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/panic_notifier.h>
 #include <linux/sched.h>
 #include <linux/sched/signal.h>
 #include <linux/notifier.h>
index 75ae88d13909455fadcbeb63d28545b1c29303ac..da154406d368d7d2bbd0d045a931ea9637aa92c7 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/notifier.h>
 #include <linux/cache.h>
index 74a98fff2c2f916b3454a2d700f7592638b37917..046fe21b5c3b02685db5f96a2fc9087280d9f419 100644 (file)
@@ -9,6 +9,7 @@
 #undef DEBUG
 
 #include <linux/export.h>
+#include <linux/panic_notifier.h>
 #include <linux/string.h>
 #include <linux/sched.h>
 #include <linux/init.h>
index dba04fbc37a210b4a412281c6074fcac13398e28..36f870dc944f79b4c3dd6b895cbc78b18239a48e 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/delay.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/ctype.h>
 #include <linux/fs.h>
index ac8677c3841edb32c1697c80ee25fdc1349ccd6b..3bcc4ddc69119492a90ae7303ab7a358006581ca 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <linux/kernel.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/init.h>
 
index 6d00af25ec6b04167da503e532f0cbc8792e9bfb..328b16f99b30389b4a91e679a4285180308909b7 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/sched/debug.h>
 #include <linux/proc_fs.h>
index 74e07e748a9b01819c1cfbea3be8adbe48d5f7b7..9512253947d55dc3121927a9ac15817443e8ea39 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/module.h>
+#include <linux/panic_notifier.h>
 #include <linux/seq_file.h>
 #include <linux/string.h>
 #include <linux/utsname.h>
index 476082a83d1c1147e975bdf22107360fdfd1eef6..ceb12683b6d1d96be0d7db30fc7079b9dac174a3 100644 (file)
@@ -9,6 +9,7 @@
 #include <asm/irq_vectors.h>
 #include <asm/cpu_entry_area.h>
 
+#include <linux/debug_locks.h>
 #include <linux/smp.h>
 #include <linux/percpu.h>
 
index 22f13343b5da808f5045195a93522130dc8165d0..9e5c6f2b044debe62ab62d7caf2861874a8ec247 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/irq.h>
 #include <linux/kexec.h>
 #include <linux/i8253.h>
+#include <linux/panic_notifier.h>
 #include <linux/random.h>
 #include <asm/processor.h>
 #include <asm/hypervisor.h>
index 1e720626069a35ef10ca880855ef6e6293808850..d21ba6fa39d9d53915de81fad6505dd814fc0407 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/initrd.h>
 #include <linux/iscsi_ibft.h>
 #include <linux/memblock.h>
+#include <linux/panic_notifier.h>
 #include <linux/pci.h>
 #include <linux/root_dev.h>
 #include <linux/hugetlb.h>
index f03b64d9cb51b1d3505605db9019b89032367869..7558139920f8c5d0034ca08f58aa6a7dcbde139b 100644 (file)
@@ -9,6 +9,8 @@
  */
 
 #include <linux/bug.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
 #include <crypto/sha2.h>
 #include <asm/purgatory.h>
 
index aa9f50fccc5da08b1088dc5240eabfa50fbc09c5..c79bd0af2e8c26d819fdda1b07072c52b256effa 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/cpu.h>
 #include <linux/kexec.h>
 #include <linux/slab.h>
+#include <linux/panic_notifier.h>
 
 #include <xen/xen.h>
 #include <xen/features.h>
index ed519aee0ec8b25527d8793625c02161539824ff..d3433e1bb94e0cca317338048a3032db9039b5da 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/printk.h>
 #include <linux/string.h>
 
index 7355fa2cb4391fd20b25797d7e90840ea2bff65e..6551286a60cc4053677b38487cde89305b460dc1 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/module.h>
+#include <linux/panic_notifier.h>
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/sysfs.h>
index 8a0e97b33caef8b296dea662fc5ba7f76f8a9f70..e96cb5c4f97a36225516be094b165368d4120183 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <linux/module.h>
 #include <linux/errno.h>
+#include <linux/panic_notifier.h>
 #include <linux/poll.h>
 #include <linux/sched.h>
 #include <linux/seq_file.h>
index 776ead319ae9c1dfbc2c243a698c749077139eee..7c64ea52a8d5e73124fac2940a36584a65b818a2 100644 (file)
 
 #include <linux/bug.h>
 #include <linux/err.h>
+#include <linux/limits.h>
 #include <linux/log2.h>
 #include <linux/math64.h>
+#include <linux/math.h>
+#include <linux/minmax.h>
+
 #include <linux/clk/analogbits-wrpll-cln28hpc.h>
 
 /* MIN_INPUT_FREQ: minimum input clock frequency, in Hz (Fref_min) */
index 5f7fd79ec82fc98f50b836b3c68a40fc1e14a481..61c21bd880a43dd4a6d185d4f960ee5e1b551d00 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
+#include <linux/panic_notifier.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/types.h>
index bb6e77ee3898c16979542b47024e7526b9e6871d..adaa492c3d2dfae33af1de749511a9b65c9ecfd4 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/fs.h>
 #include <linux/slab.h>
+#include <linux/panic_notifier.h>
 #include <linux/ioctl.h>
 #include <linux/acpi.h>
 #include <linux/io.h>
index 92cb3f7d21d9413e0741a5ce0c44440984d428f7..57bbbaa4e8f7bda22b5b15f0d341cbd923e52990 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <linux/delay.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/ptrace.h>
 #include <linux/screen_info.h>
 #include <linux/kdebug.h>
index 2dcf13de751fc2296ad5e0c26f8d8a92aaa2049e..9731d3a9607352a382db865baed5028a7dbbd92e 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
+#include <linux/panic_notifier.h>
 #include <linux/pm_qos.h>
 #include <linux/slab.h>
 #include <linux/smp.h>
index 14ba7faaed9e09d962d57fcd091d96a427d84087..30bc9df036360f1b7f3cee315679a638545a72f3 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/leds.h>
 #include <linux/module.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
index 36b6709afe9f7a4fe3d833136be24a4134ecd7ca..7fe0a05574d2aad40985e626ccd78bcffbfb70e9 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/panic_notifier.h>
 #include <linux/slab.h>
 #include <linux/timer.h>
 #include <linux/sched.h>
index 5751cd032f9dbe2bafbf10d2df4e2d7c57021021..64abf2e91608a5ecdbb80c8fd706f389ee62159c 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/leds.h>
 #include "../leds.h"
 
index 6bfea3210389f317391000eabcd20d45db4d6744..ad639ee85b2ae160a896f85bb027ff99f7d9bb23 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/fs.h>
 #include <linux/idr.h>
 #include <linux/interrupt.h>
+#include <linux/panic_notifier.h>
 #include <linux/kref.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
index 4f5f3bdc814deda39e70eaf5f7a04405fd2d852e..59c9a0d956591b50b959dba2334a4f90152112ee 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include "ibmasm.h"
 #include "dot_command.h"
 #include "lowlevel.h"
index 65f70a4da8c077afb5ced0cc1b17f860588e93de..793ea0c011939ba152ac2b3be04c89e9bf043668 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/panic_notifier.h>
 #include <linux/types.h>
 #include <linux/cdev.h>
 #include <linux/list.h>
index a5f7a79a19238c28579dda5ee0f633100429f5ee..34b68dc438869ec3f4cd723cff8639960aff39e7 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/device.h>
 #include <linux/interrupt.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/soc/qcom/smem.h>
 #include <linux/soc/qcom/smem_state.h>
 
index ebaf6867b4570549411cac12709fbe9c0cc86670..456776bd8ee6686da1093e788e923e574cb6e78f 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/notifier.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/sched/signal.h>
 #include <linux/kthread.h>
index d1495af300817cb36c4cccb474913b49f3455450..8688c8ba8894c4475e291e2cf54b25b577553045 100644 (file)
@@ -52,6 +52,7 @@
 #include <linux/slab.h>
 #include <linux/kmod.h>
 #include <linux/module.h>
+#include <linux/panic_notifier.h>
 #include <linux/mod_devicetable.h>
 #include <linux/gpio/consumer.h>
 #include <linux/reboot.h>
index 626a6b90fba2c7cf51141cb62e6fa76a7931953c..76dd8e2b1e7efbb3344e701c4d786b63a2cfb6e0 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/device.h>
+#include <linux/panic_notifier.h>
 #include <linux/slab.h>
 #include <linux/mutex.h>
 #include <linux/dma-map-ops.h>
index 1fd5bca9fa209ead1e878996936dc84f4b3f56c2..02523f4e29f487c42434e0fcf8564250e876d58f 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/console.h>
 #include <linux/interrupt.h>
 #include <linux/err.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/serial.h> /* ASYNC_* flags */
 #include <linux/slab.h>
index e21962c0fd9486b81a0d9bb3e88faa20afa70a35..87cdbace1453196d4bcd02b781f4e80a6f8f08b4 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
+#include <linux/panic_notifier.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/err.h>
index 986bbbc23d0a4b61298ab1885ba08340d44e940c..6627820a5eb94e4ab5b37ea022cf879dbdc541c2 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/module.h>
 #include <linux/err.h>
+#include <linux/panic_notifier.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
 #include <linux/timer.h>
index 9b852a47ccc1b1257107f625404b4c092e82ef2c..cc01a7b8595d840bd81ec29fd68e2ccd7e1f925e 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/kmod.h>
 #include <linux/console.h>
 #include <linux/init.h>
+#include <linux/panic_notifier.h>
 #include <linux/timer.h>
 #include <linux/jiffies.h>
 #include <linux/termios.h>
index 7f4445b0f81921c8f5609e9d0ca60674ea99869c..5b8a7b090a974370b1a4d02adebb8deb9c01e8f0 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <linux/module.h>
 #include <linux/spinlock.h>
+#include <linux/panic_notifier.h>
 #include <linux/list.h>
 #include <linux/wait.h>
 #include <linux/timer.h>
index bd3c724bf695f12866a53b02faaa28c2628d602d..b5b0848da93ba5e0135aa566e2e5abf6b12ccfcb 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/debugfs.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 
 #include <asm/asm-offsets.h>
index a673fdffe2163f2397d918bf0dc4713b2e97fbef..3cbb165d6e30900c224058508cd3df7702d029a6 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/notifier.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/panic_notifier.h>
 #include <linux/platform_device.h>
 #include <linux/pm.h>
 #include <linux/printk.h>
index 6d8e9a481786552dd2d2a2eb3f626f62de2e6b57..7284cb4ac395115b03e057001337d4e164a3e49d 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/device.h>
 #include <linux/uaccess.h>
 #include <linux/ctype.h>
+#include <linux/panic_notifier.h>
 #include <linux/reboot.h>
 #include <linux/olpc-ec.h>
 #include <asm/tsc.h>
index a7e6eea2c4a1d09ca364f84e6c2961967f514047..23999df52739349783f5b1d4b1927e41bd3b16b8 100644 (file)
@@ -52,6 +52,7 @@
 #include <linux/completion.h>
 #include <linux/fb.h>
 #include <linux/pci.h>
+#include <linux/panic_notifier.h>
 #include <linux/efi.h>
 #include <linux/console.h>
 
index b402494883b682e8d0fdea0a702a37ee93078632..f152b9bb916fccb4df26f33d87079543bdb71b00 100644 (file)
@@ -17,7 +17,8 @@
 #endif
 
 #ifndef __ASSEMBLY__
-#include <linux/kernel.h>
+#include <linux/panic.h>
+#include <linux/printk.h>
 
 #ifdef CONFIG_BUG
 
index bf950621febfa387929e40d83ed8371f07655a8f..baea2eb763d0e0cae82edb4cefd90a378324d661 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/math.h>
 #include <linux/minmax.h>
 #include <linux/typecheck.h>
+#include <linux/panic.h>
 #include <linux/printk.h>
 #include <linux/build_bug.h>
 #include <linux/static_call_types.h>
@@ -72,7 +73,6 @@
 #define lower_32_bits(n) ((u32)((n) & 0xffffffff))
 
 struct completion;
-struct pt_regs;
 struct user;
 
 #ifdef CONFIG_PREEMPT_VOLUNTARY
@@ -177,14 +177,6 @@ void __might_fault(const char *file, int line);
 static inline void might_fault(void) { }
 #endif
 
-extern struct atomic_notifier_head panic_notifier_list;
-extern long (*panic_blink)(int state);
-__printf(1, 2)
-void panic(const char *fmt, ...) __noreturn __cold;
-void nmi_panic(struct pt_regs *regs, const char *msg);
-extern void oops_enter(void);
-extern void oops_exit(void);
-extern bool oops_may_print(void);
 void do_exit(long error_code) __noreturn;
 void complete_and_exit(struct completion *, long) __noreturn;
 
@@ -372,52 +364,8 @@ extern int __kernel_text_address(unsigned long addr);
 extern int kernel_text_address(unsigned long addr);
 extern int func_ptr_is_kernel_text(void *ptr);
 
-#ifdef CONFIG_SMP
-extern unsigned int sysctl_oops_all_cpu_backtrace;
-#else
-#define sysctl_oops_all_cpu_backtrace 0
-#endif /* CONFIG_SMP */
-
 extern void bust_spinlocks(int yes);
-extern int panic_timeout;
-extern unsigned long panic_print;
-extern int panic_on_oops;
-extern int panic_on_unrecovered_nmi;
-extern int panic_on_io_nmi;
-extern int panic_on_warn;
-extern unsigned long panic_on_taint;
-extern bool panic_on_taint_nousertaint;
-extern int sysctl_panic_on_rcu_stall;
-extern int sysctl_max_rcu_stall_to_panic;
-extern int sysctl_panic_on_stackoverflow;
-
-extern bool crash_kexec_post_notifiers;
 
-/*
- * panic_cpu is used for synchronizing panic() and crash_kexec() execution. It
- * holds a CPU number which is executing panic() currently. A value of
- * PANIC_CPU_INVALID means no CPU has entered panic() or crash_kexec().
- */
-extern atomic_t panic_cpu;
-#define PANIC_CPU_INVALID      -1
-
-/*
- * Only to be used by arch init code. If the user over-wrote the default
- * CONFIG_PANIC_TIMEOUT, honor it.
- */
-static inline void set_arch_panic_timeout(int timeout, int arch_default_timeout)
-{
-       if (panic_timeout == arch_default_timeout)
-               panic_timeout = timeout;
-}
-extern const char *print_tainted(void);
-enum lockdep_ok {
-       LOCKDEP_STILL_OK,
-       LOCKDEP_NOW_UNRELIABLE
-};
-extern void add_taint(unsigned flag, enum lockdep_ok);
-extern int test_taint(unsigned flag);
-extern unsigned long get_taint(void);
 extern int root_mountflags;
 
 extern bool early_boot_irqs_disabled;
@@ -436,36 +384,6 @@ extern enum system_states {
        SYSTEM_SUSPEND,
 } system_state;
 
-/* This cannot be an enum because some may be used in assembly source. */
-#define TAINT_PROPRIETARY_MODULE       0
-#define TAINT_FORCED_MODULE            1
-#define TAINT_CPU_OUT_OF_SPEC          2
-#define TAINT_FORCED_RMMOD             3
-#define TAINT_MACHINE_CHECK            4
-#define TAINT_BAD_PAGE                 5
-#define TAINT_USER                     6
-#define TAINT_DIE                      7
-#define TAINT_OVERRIDDEN_ACPI_TABLE    8
-#define TAINT_WARN                     9
-#define TAINT_CRAP                     10
-#define TAINT_FIRMWARE_WORKAROUND      11
-#define TAINT_OOT_MODULE               12
-#define TAINT_UNSIGNED_MODULE          13
-#define TAINT_SOFTLOCKUP               14
-#define TAINT_LIVEPATCH                        15
-#define TAINT_AUX                      16
-#define TAINT_RANDSTRUCT               17
-#define TAINT_FLAGS_COUNT              18
-#define TAINT_FLAGS_MAX                        ((1UL << TAINT_FLAGS_COUNT) - 1)
-
-struct taint_flag {
-       char c_true;    /* character printed when tainted */
-       char c_false;   /* character printed when not tainted */
-       bool module;    /* also show as a per-module taint flag */
-};
-
-extern const struct taint_flag taint_flags[TAINT_FLAGS_COUNT];
-
 extern const char hex_asc[];
 #define hex_asc_lo(x)  hex_asc[((x) & 0x0f)]
 #define hex_asc_hi(x)  hex_asc[((x) & 0xf0) >> 4]
diff --git a/include/linux/panic.h b/include/linux/panic.h
new file mode 100644 (file)
index 0000000..f584490
--- /dev/null
@@ -0,0 +1,98 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_PANIC_H
+#define _LINUX_PANIC_H
+
+#include <linux/compiler_attributes.h>
+#include <linux/types.h>
+
+struct pt_regs;
+
+extern long (*panic_blink)(int state);
+__printf(1, 2)
+void panic(const char *fmt, ...) __noreturn __cold;
+void nmi_panic(struct pt_regs *regs, const char *msg);
+extern void oops_enter(void);
+extern void oops_exit(void);
+extern bool oops_may_print(void);
+
+#ifdef CONFIG_SMP
+extern unsigned int sysctl_oops_all_cpu_backtrace;
+#else
+#define sysctl_oops_all_cpu_backtrace 0
+#endif /* CONFIG_SMP */
+
+extern int panic_timeout;
+extern unsigned long panic_print;
+extern int panic_on_oops;
+extern int panic_on_unrecovered_nmi;
+extern int panic_on_io_nmi;
+extern int panic_on_warn;
+
+extern unsigned long panic_on_taint;
+extern bool panic_on_taint_nousertaint;
+
+extern int sysctl_panic_on_rcu_stall;
+extern int sysctl_max_rcu_stall_to_panic;
+extern int sysctl_panic_on_stackoverflow;
+
+extern bool crash_kexec_post_notifiers;
+
+/*
+ * panic_cpu is used for synchronizing panic() and crash_kexec() execution. It
+ * holds a CPU number which is executing panic() currently. A value of
+ * PANIC_CPU_INVALID means no CPU has entered panic() or crash_kexec().
+ */
+extern atomic_t panic_cpu;
+#define PANIC_CPU_INVALID      -1
+
+/*
+ * Only to be used by arch init code. If the user over-wrote the default
+ * CONFIG_PANIC_TIMEOUT, honor it.
+ */
+static inline void set_arch_panic_timeout(int timeout, int arch_default_timeout)
+{
+       if (panic_timeout == arch_default_timeout)
+               panic_timeout = timeout;
+}
+
+/* This cannot be an enum because some may be used in assembly source. */
+#define TAINT_PROPRIETARY_MODULE       0
+#define TAINT_FORCED_MODULE            1
+#define TAINT_CPU_OUT_OF_SPEC          2
+#define TAINT_FORCED_RMMOD             3
+#define TAINT_MACHINE_CHECK            4
+#define TAINT_BAD_PAGE                 5
+#define TAINT_USER                     6
+#define TAINT_DIE                      7
+#define TAINT_OVERRIDDEN_ACPI_TABLE    8
+#define TAINT_WARN                     9
+#define TAINT_CRAP                     10
+#define TAINT_FIRMWARE_WORKAROUND      11
+#define TAINT_OOT_MODULE               12
+#define TAINT_UNSIGNED_MODULE          13
+#define TAINT_SOFTLOCKUP               14
+#define TAINT_LIVEPATCH                        15
+#define TAINT_AUX                      16
+#define TAINT_RANDSTRUCT               17
+#define TAINT_FLAGS_COUNT              18
+#define TAINT_FLAGS_MAX                        ((1UL << TAINT_FLAGS_COUNT) - 1)
+
+struct taint_flag {
+       char c_true;    /* character printed when tainted */
+       char c_false;   /* character printed when not tainted */
+       bool module;    /* also show as a per-module taint flag */
+};
+
+extern const struct taint_flag taint_flags[TAINT_FLAGS_COUNT];
+
+enum lockdep_ok {
+       LOCKDEP_STILL_OK,
+       LOCKDEP_NOW_UNRELIABLE,
+};
+
+extern const char *print_tainted(void);
+extern void add_taint(unsigned flag, enum lockdep_ok);
+extern int test_taint(unsigned flag);
+extern unsigned long get_taint(void);
+
+#endif /* _LINUX_PANIC_H */
diff --git a/include/linux/panic_notifier.h b/include/linux/panic_notifier.h
new file mode 100644 (file)
index 0000000..41e3248
--- /dev/null
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_PANIC_NOTIFIERS_H
+#define _LINUX_PANIC_NOTIFIERS_H
+
+#include <linux/notifier.h>
+#include <linux/types.h>
+
+extern struct atomic_notifier_head panic_notifier_list;
+
+extern bool crash_kexec_post_notifiers;
+
+#endif /* _LINUX_PANIC_NOTIFIERS_H */
index 157762db9d4bf011f3ba9fa8319911f325e192d0..0999f6317978f63380574835f522299b96ae1a42 100644 (file)
@@ -9,6 +9,7 @@
 #define _LINUX_THREAD_INFO_H
 
 #include <linux/types.h>
+#include <linux/limits.h>
 #include <linux/bug.h>
 #include <linux/restart_block.h>
 #include <linux/errno.h>
index 396ebaebea3fea3578fe295c73cf041530a91d93..ebc641664eb00195afab7517a31e57babf4b8698 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/kthread.h>
 #include <linux/lockdep.h>
 #include <linux/export.h>
+#include <linux/panic_notifier.h>
 #include <linux/sysctl.h>
 #include <linux/suspend.h>
 #include <linux/utsname.h>
index f099baee357839461733bfdde000912d8f3d4fc2..4b34a9aa32bc05b98911864160069cdce2fa699e 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/suspend.h>
 #include <linux/device.h>
 #include <linux/freezer.h>
+#include <linux/panic_notifier.h>
 #include <linux/pm.h>
 #include <linux/cpu.h>
 #include <linux/uaccess.h>
index 332736a72a58e50666cc0bf14cb6ee542491ff2f..edad89660a2b455bac00aa8e7dd89d999e48eb60 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/reboot.h>
 #include <linux/delay.h>
 #include <linux/kexec.h>
+#include <linux/panic_notifier.h>
 #include <linux/sched.h>
 #include <linux/sysrq.h>
 #include <linux/init.h>
index 8e78b2430c168f29054be180424dc9ea573019f4..f12056beb916c3c80345a3c6f319d205878ef2a7 100644 (file)
@@ -32,6 +32,8 @@
 #include <linux/export.h>
 #include <linux/completion.h>
 #include <linux/moduleparam.h>
+#include <linux/panic.h>
+#include <linux/panic_notifier.h>
 #include <linux/percpu.h>
 #include <linux/notifier.h>
 #include <linux/cpu.h>
index bb37739f573143db60bce5f6aca2e52459d21a65..70e286c83d6be440b8c4c294707eb121e749cf64 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/sysctl.h>
 #include <linux/bitmap.h>
 #include <linux/signal.h>
+#include <linux/panic.h>
 #include <linux/printk.h>
 #include <linux/proc_fs.h>
 #include <linux/security.h>
index d23a09d3eb37b3b07090c30d475d9301bf85879b..3c1384bc5c5a4156d5f46c69bdd9dc1b07073756 100644 (file)
@@ -39,6 +39,7 @@
 #include <linux/slab.h>
 #include <linux/ctype.h>
 #include <linux/init.h>
+#include <linux/panic_notifier.h>
 #include <linux/poll.h>
 #include <linux/nmi.h>
 #include <linux/fs.h>