Commit d68b4b6f authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'mm-nonmm-stable-2023-08-28-22-48' of...

Merge tag 'mm-nonmm-stable-2023-08-28-22-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull non-MM updates from Andrew Morton:

 - An extensive rework of kexec and crash Kconfig from Eric DeVolder
   ("refactor Kconfig to consolidate KEXEC and CRASH options")

 - kernel.h slimming work from Andy Shevchenko ("kernel.h: Split out a
   couple of macros to args.h")

 - gdb feature work from Kuan-Ying Lee ("Add GDB memory helper
   commands")

 - vsprintf inclusion rationalization from Andy Shevchenko
   ("lib/vsprintf: Rework header inclusions")

 - Switch the handling of kdump from a udev scheme to in-kernel
   handling, by Eric DeVolder ("crash: Kernel handling of CPU and memory
   hot un/plug")

 - Many singleton patches to various parts of the tree

* tag 'mm-nonmm-stable-2023-08-28-22-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (81 commits)
  document while_each_thread(), change first_tid() to use for_each_thread()
  drivers/char/mem.c: shrink character device's devlist[] array
  x86/crash: optimize CPU changes
  crash: change crash_prepare_elf64_headers() to for_each_possible_cpu()
  crash: hotplug support for kexec_load()
  x86/crash: add x86 crash hotplug support
  crash: memory and CPU hotplug sysfs attributes
  kexec: exclude elfcorehdr from the segment digest
  crash: add generic infrastructure for crash hotplug support
  crash: move a few code bits to setup support of crash hotplug
  kstrtox: consistently use _tolower()
  kill do_each_thread()
  nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
  scripts/bloat-o-meter: count weak symbol sizes
  treewide: drop CONFIG_EMBEDDED
  lockdep: fix static memory detection even more
  lib/vsprintf: declare no_hash_pointers in sprintf.h
  lib/vsprintf: split out sprintf() and friends
  kernel/fork: stop playing lockless games for exe_file replacement
  adfs: delete unused "union adfs_dirtail" definition
  ...
parents b96a3e91 dce8f8ed
...@@ -110,3 +110,11 @@ Description: ...@@ -110,3 +110,11 @@ Description:
link is created for memory section 9 on node0. link is created for memory section 9 on node0.
/sys/devices/system/node/node0/memory9 -> ../../memory/memory9 /sys/devices/system/node/node0/memory9 -> ../../memory/memory9
What: /sys/devices/system/memory/crash_hotplug
Date: Aug 2023
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
(RO) indicates whether or not the kernel directly supports
modifying the crash elfcorehdr for memory hot un/plug and/or
on/offline changes.
...@@ -688,3 +688,11 @@ Description: ...@@ -688,3 +688,11 @@ Description:
(RO) the list of CPUs that are isolated and don't (RO) the list of CPUs that are isolated and don't
participate in load balancing. These CPUs are set by participate in load balancing. These CPUs are set by
boot parameter "isolcpus=". boot parameter "isolcpus=".
What: /sys/devices/system/cpu/crash_hotplug
Date: Aug 2023
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
(RO) indicates whether or not the kernel directly supports
modifying the crash elfcorehdr for CPU hot un/plug and/or
on/offline changes.
...@@ -291,6 +291,14 @@ The following files are currently defined: ...@@ -291,6 +291,14 @@ The following files are currently defined:
Availability depends on the CONFIG_ARCH_MEMORY_PROBE Availability depends on the CONFIG_ARCH_MEMORY_PROBE
kernel configuration option. kernel configuration option.
``uevent`` read-write: generic udev file for device subsystems. ``uevent`` read-write: generic udev file for device subsystems.
``crash_hotplug`` read-only: when changes to the system memory map
occur due to hot un/plug of memory, this file contains
'1' if the kernel updates the kdump capture kernel memory
map itself (via elfcorehdr), or '0' if userspace must update
the kdump capture kernel memory map.
Availability depends on the CONFIG_MEMORY_HOTPLUG kernel
configuration option.
====================== ========================================================= ====================== =========================================================
.. note:: .. note::
......
...@@ -741,6 +741,24 @@ will receive all events. A script like:: ...@@ -741,6 +741,24 @@ will receive all events. A script like::
can process the event further. can process the event further.
When changes to the CPUs in the system occur, the sysfs file
/sys/devices/system/cpu/crash_hotplug contains '1' if the kernel
updates the kdump capture kernel list of CPUs itself (via elfcorehdr),
or '0' if userspace must update the kdump capture kernel list of CPUs.
The availability depends on the CONFIG_HOTPLUG_CPU kernel configuration
option.
To skip userspace processing of CPU hot un/plug events for kdump
(i.e. the unload-then-reload to obtain a current list of CPUs), this sysfs
file can be used in a udev rule as follows:
SUBSYSTEM=="cpu", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
For a CPU hot un/plug event, if the architecture supports kernel updates
of the elfcorehdr (which contains the list of CPUs), then the rule skips
the unload-then-reload of the kdump capture kernel.
Kernel Inline Documentations Reference Kernel Inline Documentations Reference
====================================== ======================================
......
...@@ -11,19 +11,6 @@ source "arch/$(SRCARCH)/Kconfig" ...@@ -11,19 +11,6 @@ source "arch/$(SRCARCH)/Kconfig"
menu "General architecture-dependent options" menu "General architecture-dependent options"
config CRASH_CORE
bool
config KEXEC_CORE
select CRASH_CORE
bool
config KEXEC_ELF
bool
config HAVE_IMA_KEXEC
bool
config ARCH_HAS_SUBPAGE_FAULTS config ARCH_HAS_SUBPAGE_FAULTS
bool bool
help help
...@@ -748,7 +735,9 @@ config HAS_LTO_CLANG ...@@ -748,7 +735,9 @@ config HAS_LTO_CLANG
depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm) depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
depends on ARCH_SUPPORTS_LTO_CLANG depends on ARCH_SUPPORTS_LTO_CLANG
depends on !FTRACE_MCOUNT_USE_RECORDMCOUNT depends on !FTRACE_MCOUNT_USE_RECORDMCOUNT
depends on !KASAN || KASAN_HW_TAGS # https://github.com/ClangBuiltLinux/linux/issues/1721
depends on (!KASAN || KASAN_HW_TAGS || CLANG_VERSION >= 170000) || !DEBUG_INFO
depends on (!KCOV || CLANG_VERSION >= 170000) || !DEBUG_INFO
depends on !GCOV_KERNEL depends on !GCOV_KERNEL
help help
The compiler and Kconfig options support building with Clang's The compiler and Kconfig options support building with Clang's
......
...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y ...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
......
...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y ...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
......
...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y ...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y ...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y ...@@ -9,7 +9,7 @@ CONFIG_NAMESPACES=y
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -12,7 +12,7 @@ CONFIG_NAMESPACES=y ...@@ -12,7 +12,7 @@ CONFIG_NAMESPACES=y
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y ...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y ...@@ -11,7 +11,7 @@ CONFIG_NAMESPACES=y
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -16,7 +16,7 @@ CONFIG_INITRAMFS_ROOT_GID=501 ...@@ -16,7 +16,7 @@ CONFIG_INITRAMFS_ROOT_GID=501
# CONFIG_RD_GZIP is not set # CONFIG_RD_GZIP is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_ISA_ARCOMPACT=y CONFIG_ISA_ARCOMPACT=y
CONFIG_MODULES=y CONFIG_MODULES=y
......
...@@ -4,7 +4,7 @@ CONFIG_HIGH_RES_TIMERS=y ...@@ -4,7 +4,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
......
...@@ -4,7 +4,7 @@ CONFIG_HIGH_RES_TIMERS=y ...@@ -4,7 +4,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
......
...@@ -250,7 +250,7 @@ config ARCH_MTD_XIP ...@@ -250,7 +250,7 @@ config ARCH_MTD_XIP
bool bool
config ARM_PATCH_PHYS_VIRT config ARM_PATCH_PHYS_VIRT
bool "Patch physical to virtual translations at runtime" if EMBEDDED bool "Patch physical to virtual translations at runtime" if !ARCH_MULTIPLATFORM
default y default y
depends on MMU depends on MMU
help help
...@@ -1645,20 +1645,8 @@ config XIP_DEFLATED_DATA ...@@ -1645,20 +1645,8 @@ config XIP_DEFLATED_DATA
copied, saving some precious ROM space. A possible drawback is a copied, saving some precious ROM space. A possible drawback is a
slightly longer boot delay. slightly longer boot delay.
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "Kexec system call (EXPERIMENTAL)" def_bool (!SMP || PM_SLEEP_SMP) && MMU
depends on (!SMP || PM_SLEEP_SMP)
depends on MMU
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you.
config ATAGS_PROC config ATAGS_PROC
bool "Export atags in procfs" bool "Export atags in procfs"
...@@ -1668,17 +1656,8 @@ config ATAGS_PROC ...@@ -1668,17 +1656,8 @@ config ATAGS_PROC
Should the atags used to boot the kernel be exported in an "atags" Should the atags used to boot the kernel be exported in an "atags"
file in procfs. Useful with kexec. file in procfs. Useful with kexec.
config CRASH_DUMP config ARCH_SUPPORTS_CRASH_DUMP
bool "Build kdump crash kernel (EXPERIMENTAL)" def_bool y
help
Generate crash dump after being started by kexec. This should
be normally only set in special crash dump kernels which are
loaded in the main kernel with kexec-tools into a specially
reserved region and then later executed after a crash by
kdump/kexec. The crash dump kernel must be compiled to a
memory address not used by the main kernel
For more details see Documentation/admin-guide/kdump/kdump.rst
config AUTO_ZRELADDR config AUTO_ZRELADDR
bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
......
...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_UID16 is not set # CONFIG_UID16 is not set
# CONFIG_SYSFS_SYSCALL is not set # CONFIG_SYSFS_SYSCALL is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_ASPEED=y CONFIG_ARCH_ASPEED=y
......
...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_UID16 is not set # CONFIG_UID16 is not set
# CONFIG_SYSFS_SYSCALL is not set # CONFIG_SYSFS_SYSCALL is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_MULTI_V6=y
CONFIG_ARCH_ASPEED=y CONFIG_ARCH_ASPEED=y
......
...@@ -7,7 +7,7 @@ CONFIG_CGROUPS=y ...@@ -7,7 +7,7 @@ CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_ARCH_MULTI_V4T=y CONFIG_ARCH_MULTI_V4T=y
CONFIG_ARCH_MULTI_V5=y CONFIG_ARCH_MULTI_V5=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
......
...@@ -21,7 +21,7 @@ CONFIG_NAMESPACES=y ...@@ -21,7 +21,7 @@ CONFIG_NAMESPACES=y
CONFIG_SCHED_AUTOGROUP=y CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_ARCH_AXXIA=y CONFIG_ARCH_AXXIA=y
CONFIG_ARM_LPAE=y CONFIG_ARM_LPAE=y
......
...@@ -19,7 +19,7 @@ CONFIG_RELAY=y ...@@ -19,7 +19,7 @@ CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_CC_STACKPROTECTOR_REGULAR=y CONFIG_CC_STACKPROTECTOR_REGULAR=y
CONFIG_ARCH_MULTI_V6=y CONFIG_ARCH_MULTI_V6=y
......
...@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y ...@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_RD_LZMA=y CONFIG_RD_LZMA=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_JUMP_LABEL=y CONFIG_JUMP_LABEL=y
CONFIG_PARTITION_ADVANCED=y CONFIG_PARTITION_ADVANCED=y
CONFIG_ARCH_CLPS711X=y CONFIG_ARCH_CLPS711X=y
......
...@@ -14,7 +14,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -14,7 +14,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_ELF_CORE is not set # CONFIG_ELF_CORE is not set
# CONFIG_BASE_FULL is not set # CONFIG_BASE_FULL is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_ARCH_KEYSTONE=y CONFIG_ARCH_KEYSTONE=y
CONFIG_ARM_LPAE=y CONFIG_ARM_LPAE=y
......
...@@ -14,7 +14,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -14,7 +14,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_SIGNALFD is not set # CONFIG_SIGNALFD is not set
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_MMU is not set # CONFIG_MMU is not set
CONFIG_ARCH_LPC18XX=y CONFIG_ARCH_LPC18XX=y
CONFIG_SET_MEM_PARAM=y CONFIG_SET_MEM_PARAM=y
......
...@@ -9,7 +9,7 @@ CONFIG_SYSFS_DEPRECATED=y ...@@ -9,7 +9,7 @@ CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_LPC32XX=y CONFIG_ARCH_LPC32XX=y
CONFIG_AEABI=y CONFIG_AEABI=y
......
...@@ -3,7 +3,7 @@ CONFIG_NO_HZ_IDLE=y ...@@ -3,7 +3,7 @@ CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_CGROUPS=y CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_ARCH_MILBEAUT=y CONFIG_ARCH_MILBEAUT=y
CONFIG_ARCH_MILBEAUT_M10V=y CONFIG_ARCH_MILBEAUT_M10V=y
......
...@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y ...@@ -10,7 +10,7 @@ CONFIG_IKCONFIG_PROC=y
# CONFIG_TIMERFD is not set # CONFIG_TIMERFD is not set
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_MULTI_V4=y CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
......
...@@ -2,7 +2,7 @@ CONFIG_KERNEL_LZMA=y ...@@ -2,7 +2,7 @@ CONFIG_KERNEL_LZMA=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_ARCH_MULTI_V4T=y CONFIG_ARCH_MULTI_V4T=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_AT91=y CONFIG_ARCH_AT91=y
......
...@@ -3,7 +3,7 @@ CONFIG_NO_HZ_IDLE=y ...@@ -3,7 +3,7 @@ CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_CGROUPS=y CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_ARCH_VIRT=y CONFIG_ARCH_VIRT=y
CONFIG_ARCH_AIROHA=y CONFIG_ARCH_AIROHA=y
......
...@@ -11,7 +11,7 @@ CONFIG_IKCONFIG_PROC=y ...@@ -11,7 +11,7 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=13 CONFIG_LOG_BUF_SHIFT=13
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
# CONFIG_ARCH_MULTI_V7 is not set # CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
......
...@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y ...@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_CGROUPS=y CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_ARCH_QCOM=y CONFIG_ARCH_QCOM=y
CONFIG_ARCH_MSM8X60=y CONFIG_ARCH_MSM8X60=y
......
...@@ -5,7 +5,7 @@ CONFIG_HIGH_RES_TIMERS=y ...@@ -5,7 +5,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_ARCH_AT91=y CONFIG_ARCH_AT91=y
CONFIG_SOC_SAMA5D2=y CONFIG_SOC_SAMA5D2=y
CONFIG_SOC_SAMA5D3=y CONFIG_SOC_SAMA5D3=y
......
...@@ -12,7 +12,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -12,7 +12,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_FHANDLE is not set # CONFIG_FHANDLE is not set
# CONFIG_IO_URING is not set # CONFIG_IO_URING is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_ARCH_AT91=y CONFIG_ARCH_AT91=y
CONFIG_SOC_SAMA7G5=y CONFIG_SOC_SAMA7G5=y
CONFIG_ATMEL_CLOCKSOURCE_TCB=y CONFIG_ATMEL_CLOCKSOURCE_TCB=y
......
...@@ -7,7 +7,7 @@ CONFIG_CGROUPS=y ...@@ -7,7 +7,7 @@ CONFIG_CGROUPS=y
CONFIG_CPUSETS=y CONFIG_CPUSETS=y
CONFIG_NAMESPACES=y CONFIG_NAMESPACES=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_ARCH_INTEL_SOCFPGA=y CONFIG_ARCH_INTEL_SOCFPGA=y
CONFIG_ARM_THUMBEE=y CONFIG_ARM_THUMBEE=y
......
...@@ -11,7 +11,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -11,7 +11,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_SIGNALFD is not set # CONFIG_SIGNALFD is not set
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_MMU is not set # CONFIG_MMU is not set
CONFIG_ARCH_STM32=y CONFIG_ARCH_STM32=y
......
...@@ -14,7 +14,7 @@ CONFIG_NAMESPACES=y ...@@ -14,7 +14,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
# CONFIG_ELF_CORE is not set # CONFIG_ELF_CORE is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_ARCH_TEGRA=y CONFIG_ARCH_TEGRA=y
CONFIG_SMP=y CONFIG_SMP=y
......
...@@ -5,7 +5,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -5,7 +5,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_XZ is not set # CONFIG_RD_XZ is not set
# CONFIG_RD_LZ4 is not set # CONFIG_RD_LZ4 is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_MMU is not set # CONFIG_MMU is not set
CONFIG_ARCH_MXC=y CONFIG_ARCH_MXC=y
CONFIG_SOC_VF610=y CONFIG_SOC_VF610=y
......
...@@ -32,7 +32,7 @@ void handle_IRQ(unsigned int, struct pt_regs *); ...@@ -32,7 +32,7 @@ void handle_IRQ(unsigned int, struct pt_regs *);
#include <linux/cpumask.h> #include <linux/cpumask.h>
extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask,
bool exclude_self); int exclude_cpu);
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
#endif #endif
......
...@@ -846,7 +846,7 @@ static void raise_nmi(cpumask_t *mask) ...@@ -846,7 +846,7 @@ static void raise_nmi(cpumask_t *mask)
__ipi_send_mask(ipi_desc[IPI_CPU_BACKTRACE], mask); __ipi_send_mask(ipi_desc[IPI_CPU_BACKTRACE], mask);
} }
void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) void arch_trigger_cpumask_backtrace(const cpumask_t *mask, int exclude_cpu)
{ {
nmi_trigger_cpumask_backtrace(mask, exclude_self, raise_nmi); nmi_trigger_cpumask_backtrace(mask, exclude_cpu, raise_nmi);
} }
...@@ -1460,60 +1460,28 @@ config PARAVIRT_TIME_ACCOUNTING ...@@ -1460,60 +1460,28 @@ config PARAVIRT_TIME_ACCOUNTING
If in doubt, say N here. If in doubt, say N here.
config KEXEC config ARCH_SUPPORTS_KEXEC
depends on PM_SLEEP_SMP def_bool PM_SLEEP_SMP
select KEXEC_CORE
bool "kexec system call"
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
config KEXEC_FILE
bool "kexec file based system call"
select KEXEC_CORE
select HAVE_IMA_KEXEC if IMA
help
This is new version of kexec system call. This system call is
file based and takes file descriptors as system call argument
for kernel and initramfs as opposed to list of segments as
accepted by previous system call.
config KEXEC_SIG config ARCH_SUPPORTS_KEXEC_FILE
bool "Verify kernel signature during kexec_file_load() syscall" def_bool y
depends on KEXEC_FILE
help
Select this option to verify a signature with loaded kernel
image. If configured, any attempt of loading a image without
valid signature will fail.
In addition to that option, you need to enable signature config ARCH_SELECTS_KEXEC_FILE
verification for the corresponding kernel image type being def_bool y
loaded in order for this to work. depends on KEXEC_FILE
select HAVE_IMA_KEXEC if IMA
config KEXEC_IMAGE_VERIFY_SIG config ARCH_SUPPORTS_KEXEC_SIG
bool "Enable Image signature verification support" def_bool y
default y
depends on KEXEC_SIG
depends on EFI && SIGNED_PE_FILE_VERIFICATION
help
Enable Image signature verification support.
comment "Support for PE file signature verification disabled" config ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG
depends on KEXEC_SIG def_bool y
depends on !EFI || !SIGNED_PE_FILE_VERIFICATION
config CRASH_DUMP config ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG
bool "Build kdump crash kernel" def_bool y
help
Generate crash dump after being started by kexec. This should
be normally only set in special crash dump kernels which are
loaded in the main kernel with kexec-tools into a specially
reserved region and then later executed after a crash by
kdump/kexec.
For more details see Documentation/admin-guide/kdump/kdump.rst config ARCH_SUPPORTS_CRASH_DUMP
def_bool y
config TRANS_TABLE config TRANS_TABLE
def_bool y def_bool y
......
...@@ -14,7 +14,7 @@ CONFIG_IKCONFIG=y ...@@ -14,7 +14,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_BUF_SHIFT=18
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
......
...@@ -362,31 +362,13 @@ config IA64_HP_AML_NFW ...@@ -362,31 +362,13 @@ config IA64_HP_AML_NFW
the "force" module parameter, e.g., with the "aml_nfw.force" the "force" module parameter, e.g., with the "aml_nfw.force"
kernel command line option. kernel command line option.
config KEXEC endmenu
bool "kexec system call"
depends on !SMP || HOTPLUG_CPU
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config CRASH_DUMP config ARCH_SUPPORTS_KEXEC
bool "kernel crash dumps" def_bool !SMP || HOTPLUG_CPU
depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU)
help
Generate crash dump after being started by kexec.
endmenu config ARCH_SUPPORTS_CRASH_DUMP
def_bool IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU)
menu "Power management and ACPI options" menu "Power management and ACPI options"
......
...@@ -13,4 +13,21 @@ ...@@ -13,4 +13,21 @@
#define arch_cmpxchg_local arch_cmpxchg #define arch_cmpxchg_local arch_cmpxchg
#define arch_cmpxchg64_local arch_cmpxchg64 #define arch_cmpxchg64_local arch_cmpxchg64
#ifdef CONFIG_IA64_DEBUG_CMPXCHG
# define CMPXCHG_BUGCHECK_DECL int _cmpxchg_bugcheck_count = 128;
# define CMPXCHG_BUGCHECK(v) \
do { \
if (_cmpxchg_bugcheck_count-- <= 0) { \
void *ip; \
extern int _printk(const char *fmt, ...); \
ip = (void *) ia64_getreg(_IA64_REG_IP); \
_printk("CMPXCHG_BUGCHECK: stuck at %p on word %p\n", ip, (v));\
break; \
} \
} while (0)
#else /* !CONFIG_IA64_DEBUG_CMPXCHG */
# define CMPXCHG_BUGCHECK_DECL
# define CMPXCHG_BUGCHECK(v)
#endif /* !CONFIG_IA64_DEBUG_CMPXCHG */
#endif /* _ASM_IA64_CMPXCHG_H */ #endif /* _ASM_IA64_CMPXCHG_H */
...@@ -133,23 +133,6 @@ extern long ia64_cmpxchg_called_with_bad_pointer(void); ...@@ -133,23 +133,6 @@ extern long ia64_cmpxchg_called_with_bad_pointer(void);
#define cmpxchg64_local cmpxchg64 #define cmpxchg64_local cmpxchg64
#endif #endif
#ifdef CONFIG_IA64_DEBUG_CMPXCHG
# define CMPXCHG_BUGCHECK_DECL int _cmpxchg_bugcheck_count = 128;
# define CMPXCHG_BUGCHECK(v) \
do { \
if (_cmpxchg_bugcheck_count-- <= 0) { \
void *ip; \
extern int _printk(const char *fmt, ...); \
ip = (void *) ia64_getreg(_IA64_REG_IP); \
_printk("CMPXCHG_BUGCHECK: stuck at %p on word %p\n", ip, (v));\
break; \
} \
} while (0)
#else /* !CONFIG_IA64_DEBUG_CMPXCHG */
# define CMPXCHG_BUGCHECK_DECL
# define CMPXCHG_BUGCHECK(v)
#endif /* !CONFIG_IA64_DEBUG_CMPXCHG */
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#endif /* _UAPI_ASM_IA64_CMPXCHG_H */ #endif /* _UAPI_ASM_IA64_CMPXCHG_H */
...@@ -1630,10 +1630,10 @@ default_monarch_init_process(struct notifier_block *self, unsigned long val, voi ...@@ -1630,10 +1630,10 @@ default_monarch_init_process(struct notifier_block *self, unsigned long val, voi
} }
printk("\n\n"); printk("\n\n");
if (read_trylock(&tasklist_lock)) { if (read_trylock(&tasklist_lock)) {
do_each_thread (g, t) { for_each_process_thread(g, t) {
printk("\nBacktrace of pid %d (%s)\n", t->pid, t->comm); printk("\nBacktrace of pid %d (%s)\n", t->pid, t->comm);
show_stack(t, NULL, KERN_DEFAULT); show_stack(t, NULL, KERN_DEFAULT);
} while_each_thread (g, t); }
read_unlock(&tasklist_lock); read_unlock(&tasklist_lock);
} }
/* FIXME: This will not restore zapped printk locks. */ /* FIXME: This will not restore zapped printk locks. */
......
...@@ -538,28 +538,16 @@ config CPU_HAS_PREFETCH ...@@ -538,28 +538,16 @@ config CPU_HAS_PREFETCH
bool bool
default y default y
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "Kexec system call" def_bool y
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call. config ARCH_SUPPORTS_CRASH_DUMP
def_bool y
config CRASH_DUMP config ARCH_SELECTS_CRASH_DUMP
bool "Build kdump crash kernel" def_bool y
depends on CRASH_DUMP
select RELOCATABLE select RELOCATABLE
help
Generate crash dump after being started by kexec. This should
be normally only set in special crash dump kernels which are
loaded in the main kernel with kexec-tools into a specially
reserved region and then later executed after a crash by
kdump/kexec.
For more details see Documentation/admin-guide/kdump/kdump.rst
config RELOCATABLE config RELOCATABLE
bool "Relocatable kernel" bool "Relocatable kernel"
......
...@@ -40,7 +40,7 @@ void spurious_interrupt(void); ...@@ -40,7 +40,7 @@ void spurious_interrupt(void);
#define NR_IRQS_LEGACY 16 #define NR_IRQS_LEGACY 16
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
void arch_trigger_cpumask_backtrace(const struct cpumask *mask, bool exclude_self); void arch_trigger_cpumask_backtrace(const struct cpumask *mask, int exclude_cpu);
#define MAX_IO_PICS 2 #define MAX_IO_PICS 2
#define NR_IRQS (64 + (256 * MAX_IO_PICS)) #define NR_IRQS (64 + (256 * MAX_IO_PICS))
......
...@@ -338,9 +338,9 @@ static void raise_backtrace(cpumask_t *mask) ...@@ -338,9 +338,9 @@ static void raise_backtrace(cpumask_t *mask)
} }
} }
void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) void arch_trigger_cpumask_backtrace(const cpumask_t *mask, int exclude_cpu)
{ {
nmi_trigger_cpumask_backtrace(mask, exclude_self, raise_backtrace); nmi_trigger_cpumask_backtrace(mask, exclude_cpu, raise_backtrace);
} }
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
......
...@@ -89,23 +89,8 @@ config MMU_SUN3 ...@@ -89,23 +89,8 @@ config MMU_SUN3
bool bool
depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE depends on MMU && !MMU_MOTOROLA && !MMU_COLDFIRE
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "kexec system call" def_bool M68KCLASSIC && MMU
depends on M68KCLASSIC && MMU
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config BOOTINFO_PROC config BOOTINFO_PROC
bool "Export bootinfo in procfs" bool "Export bootinfo in procfs"
......
...@@ -8,7 +8,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -8,7 +8,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_AIO is not set # CONFIG_AIO is not set
# CONFIG_ADVISE_SYSCALLS is not set # CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_MEMBARRIER is not set # CONFIG_MEMBARRIER is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -8,7 +8,7 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -8,7 +8,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_SHMEM is not set # CONFIG_SHMEM is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
CONFIG_COLDFIRE=y CONFIG_COLDFIRE=y
......
...@@ -9,7 +9,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -9,7 +9,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_AIO is not set # CONFIG_AIO is not set
# CONFIG_ADVISE_SYSCALLS is not set # CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_MEMBARRIER is not set # CONFIG_MEMBARRIER is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_COLDFIRE=y CONFIG_COLDFIRE=y
......
...@@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED=y ...@@ -7,7 +7,7 @@ CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_BASE_FULL is not set # CONFIG_BASE_FULL is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1
CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1 CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR=1
CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1 CONFIG_XILINX_MICROBLAZE0_USE_BARREL=1
......
...@@ -2878,33 +2878,11 @@ config HZ ...@@ -2878,33 +2878,11 @@ config HZ
config SCHED_HRTICK config SCHED_HRTICK
def_bool HIGH_RES_TIMERS def_bool HIGH_RES_TIMERS
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "Kexec system call" def_bool y
select KEXEC_CORE
help config ARCH_SUPPORTS_CRASH_DUMP
kexec is a system call that implements the ability to shutdown your def_bool y
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config CRASH_DUMP
bool "Kernel crash dumps"
help
Generate crash dump after being started by kexec.
This should be normally only set in special crash dump kernels
which are loaded in the main kernel with kexec-tools into
a specially reserved region and then later executed after
a crash by kdump/kexec. The crash dump kernel must be compiled
to a memory address not used by the main kernel or firmware using
PHYSICAL_START.
config PHYSICAL_START config PHYSICAL_START
hex "Physical address where the kernel is loaded" hex "Physical address where the kernel is loaded"
......
...@@ -1240,7 +1240,7 @@ static int __init octeon_no_pci_init(void) ...@@ -1240,7 +1240,7 @@ static int __init octeon_no_pci_init(void)
*/ */
octeon_dummy_iospace = vzalloc(IO_SPACE_LIMIT); octeon_dummy_iospace = vzalloc(IO_SPACE_LIMIT);
set_io_port_base((unsigned long)octeon_dummy_iospace); set_io_port_base((unsigned long)octeon_dummy_iospace);
ioport_resource.start = MAX_RESOURCE; ioport_resource.start = RESOURCE_SIZE_MAX;
ioport_resource.end = 0; ioport_resource.end = 0;
return 0; return 0;
} }
......
...@@ -11,7 +11,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -11,7 +11,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_FHANDLE is not set # CONFIG_FHANDLE is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -5,7 +5,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -5,7 +5,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_GZIP is not set # CONFIG_RD_GZIP is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -2,7 +2,7 @@ CONFIG_SYSVIPC=y ...@@ -2,7 +2,7 @@ CONFIG_SYSVIPC=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_BCM47XX=y CONFIG_BCM47XX=y
CONFIG_PCI=y CONFIG_PCI=y
# CONFIG_SUSPEND is not set # CONFIG_SUSPEND is not set
......
...@@ -18,7 +18,7 @@ CONFIG_NAMESPACES=y ...@@ -18,7 +18,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
CONFIG_JZ4780_CI20=y CONFIG_JZ4780_CI20=y
CONFIG_HIGHMEM=y CONFIG_HIGHMEM=y
......
...@@ -15,7 +15,7 @@ CONFIG_NAMESPACES=y ...@@ -15,7 +15,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
......
...@@ -15,7 +15,7 @@ CONFIG_NAMESPACES=y ...@@ -15,7 +15,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
......
...@@ -17,7 +17,7 @@ CONFIG_CGROUP_FREEZER=y ...@@ -17,7 +17,7 @@ CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_CPUACCT=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_ALCHEMY=y CONFIG_MIPS_ALCHEMY=y
CONFIG_HZ_100=y CONFIG_HZ_100=y
CONFIG_PCI=y CONFIG_PCI=y
......
...@@ -2,7 +2,7 @@ CONFIG_DEFAULT_HOSTNAME="gcw0" ...@@ -2,7 +2,7 @@ CONFIG_DEFAULT_HOSTNAME="gcw0"
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT_VOLUNTARY=y CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
CONFIG_JZ4770_GCW0=y CONFIG_JZ4770_GCW0=y
......
...@@ -17,7 +17,7 @@ CONFIG_SCHED_AUTOGROUP=y ...@@ -17,7 +17,7 @@ CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_BPF_SYSCALL=y CONFIG_BPF_SYSCALL=y
CONFIG_USERFAULTFD=y CONFIG_USERFAULTFD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
......
...@@ -18,7 +18,7 @@ CONFIG_SCHED_AUTOGROUP=y ...@@ -18,7 +18,7 @@ CONFIG_SCHED_AUTOGROUP=y
CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MACH_LOONGSON64=y CONFIG_MACH_LOONGSON64=y
# CONFIG_CPU_LOONGSON3_CPUCFG_EMULATION is not set # CONFIG_CPU_LOONGSON3_CPUCFG_EMULATION is not set
CONFIG_HZ_256=y CONFIG_HZ_256=y
......
...@@ -26,7 +26,7 @@ CONFIG_SYSFS_DEPRECATED=y ...@@ -26,7 +26,7 @@ CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_BPF_SYSCALL=y CONFIG_BPF_SYSCALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_MACH_LOONGSON64=y CONFIG_MACH_LOONGSON64=y
CONFIG_CPU_HAS_MSA=y CONFIG_CPU_HAS_MSA=y
......
...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y ...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15 CONFIG_LOG_BUF_SHIFT=15
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y CONFIG_MIPS_MALTA=y
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32_R6=y CONFIG_CPU_MIPS32_R6=y
......
...@@ -5,7 +5,7 @@ CONFIG_AUDIT=y ...@@ -5,7 +5,7 @@ CONFIG_AUDIT=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15 CONFIG_LOG_BUF_SHIFT=15
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y CONFIG_MIPS_MALTA=y
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32_R2=y CONFIG_CPU_MIPS32_R2=y
......
...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y ...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15 CONFIG_LOG_BUF_SHIFT=15
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y CONFIG_MIPS_MALTA=y
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32_R2=y CONFIG_CPU_MIPS32_R2=y
......
...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y ...@@ -5,7 +5,7 @@ CONFIG_NO_HZ=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15 CONFIG_LOG_BUF_SHIFT=15
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y CONFIG_MIPS_MALTA=y
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32_R2=y CONFIG_CPU_MIPS32_R2=y
......
...@@ -6,7 +6,7 @@ CONFIG_NO_HZ=y ...@@ -6,7 +6,7 @@ CONFIG_NO_HZ=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15 CONFIG_LOG_BUF_SHIFT=15
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MIPS_MALTA=y CONFIG_MIPS_MALTA=y
CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32_R2=y CONFIG_CPU_MIPS32_R2=y
......
...@@ -17,7 +17,7 @@ CONFIG_NAMESPACES=y ...@@ -17,7 +17,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y ...@@ -7,7 +7,7 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_RELAY=y CONFIG_RELAY=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_MACH_PIC32=y CONFIG_MACH_PIC32=y
CONFIG_DTB_PIC32_MZDA_SK=y CONFIG_DTB_PIC32_MZDA_SK=y
......
...@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y ...@@ -3,7 +3,7 @@ CONFIG_SYSVIPC=y
# CONFIG_CROSS_MEMORY_ATTACH is not set # CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
......
...@@ -15,7 +15,7 @@ CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=y ...@@ -15,7 +15,7 @@ CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=y
# CONFIG_IO_URING is not set # CONFIG_IO_URING is not set
# CONFIG_ADVISE_SYSCALLS is not set # CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_PERF_EVENTS is not set # CONFIG_PERF_EVENTS is not set
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_MACH_INGENIC_SOC=y CONFIG_MACH_INGENIC_SOC=y
......
...@@ -7,7 +7,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -7,7 +7,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -17,7 +17,7 @@ CONFIG_NAMESPACES=y ...@@ -17,7 +17,7 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y CONFIG_USER_NS=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -7,7 +7,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -7,7 +7,7 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -77,7 +77,7 @@ extern int cp0_fdc_irq; ...@@ -77,7 +77,7 @@ extern int cp0_fdc_irq;
extern int get_c0_fdc_int(void); extern int get_c0_fdc_int(void);
void arch_trigger_cpumask_backtrace(const struct cpumask *mask, void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
bool exclude_self); int exclude_cpu);
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
#endif /* _ASM_IRQ_H */ #endif /* _ASM_IRQ_H */
...@@ -750,9 +750,9 @@ static void raise_backtrace(cpumask_t *mask) ...@@ -750,9 +750,9 @@ static void raise_backtrace(cpumask_t *mask)
} }
} }
void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) void arch_trigger_cpumask_backtrace(const cpumask_t *mask, int exclude_cpu)
{ {
nmi_trigger_cpumask_backtrace(mask, exclude_self, raise_backtrace); nmi_trigger_cpumask_backtrace(mask, exclude_cpu, raise_backtrace);
} }
int mips_get_process_fp_mode(struct task_struct *task) int mips_get_process_fp_mode(struct task_struct *task)
......
...@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_SHMEM is not set # CONFIG_SHMEM is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_NIOS2_MEM_BASE=0x8000000 CONFIG_NIOS2_MEM_BASE=0x8000000
......
...@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -9,7 +9,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_EVENTFD is not set # CONFIG_EVENTFD is not set
# CONFIG_SHMEM is not set # CONFIG_SHMEM is not set
# CONFIG_AIO is not set # CONFIG_AIO is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_NIOS2_MEM_BASE=0x10000000 CONFIG_NIOS2_MEM_BASE=0x10000000
......
...@@ -6,7 +6,7 @@ CONFIG_USER_NS=y ...@@ -6,7 +6,7 @@ CONFIG_USER_NS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SGETMASK_SYSCALL=y CONFIG_SGETMASK_SYSCALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_OPENRISC_BUILTIN_DTB="or1klitex" CONFIG_OPENRISC_BUILTIN_DTB="or1klitex"
CONFIG_HZ_100=y CONFIG_HZ_100=y
CONFIG_OPENRISC_HAVE_SHADOW_GPRS=y CONFIG_OPENRISC_HAVE_SHADOW_GPRS=y
......
...@@ -359,29 +359,17 @@ config NR_CPUS ...@@ -359,29 +359,17 @@ config NR_CPUS
default "8" if 64BIT default "8" if 64BIT
default "16" default "16"
config KEXEC
bool "Kexec system call"
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
It is an ongoing process to be certain the hardware in a machine
shutdown, so do not be surprised if this code does not
initially work for you.
config KEXEC_FILE
bool "kexec file based system call"
select KEXEC_CORE
select KEXEC_ELF
help
This enables the kexec_file_load() System call. This is
file based and takes file descriptors as system call argument
for kernel and initramfs as opposed to list of segments as
accepted by previous system call.
endmenu endmenu
config ARCH_SUPPORTS_KEXEC
def_bool y
config ARCH_SUPPORTS_KEXEC_FILE
def_bool y
config ARCH_SELECTS_KEXEC_FILE
def_bool y
depends on KEXEC_FILE
select KEXEC_ELF
source "drivers/parisc/Kconfig" source "drivers/parisc/Kconfig"
...@@ -592,41 +592,21 @@ config PPC64_SUPPORTS_MEMORY_FAILURE ...@@ -592,41 +592,21 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
default "y" if PPC_POWERNV default "y" if PPC_POWERNV
select ARCH_SUPPORTS_MEMORY_FAILURE select ARCH_SUPPORTS_MEMORY_FAILURE
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "kexec system call" def_bool PPC_BOOK3S || PPC_E500 || (44x && !SMP)
depends on PPC_BOOK3S || PPC_E500 || (44x && !SMP)
select KEXEC_CORE config ARCH_SUPPORTS_KEXEC_FILE
help def_bool PPC64 && CRYPTO=y && CRYPTO_SHA256=y
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call.
It is an ongoing process to be certain the hardware in a machine
is properly shutdown, so do not be surprised if this code does not
initially work for you. As of this writing the exact hardware
interface is strongly in flux, so no good recommendation can be
made.
config KEXEC_FILE
bool "kexec file based system call"
select KEXEC_CORE
select HAVE_IMA_KEXEC if IMA
select KEXEC_ELF
depends on PPC64
depends on CRYPTO=y
depends on CRYPTO_SHA256=y
help
This is a new version of the kexec system call. This call is
file based and takes in file descriptors as system call arguments
for kernel and initramfs as opposed to a list of segments as is the
case for the older kexec call.
config ARCH_HAS_KEXEC_PURGATORY config ARCH_SUPPORTS_KEXEC_PURGATORY
def_bool KEXEC_FILE def_bool KEXEC_FILE
config ARCH_SELECTS_KEXEC_FILE
def_bool y
depends on KEXEC_FILE
select KEXEC_ELF
select HAVE_IMA_KEXEC if IMA
config PPC64_BIG_ENDIAN_ELF_ABI_V2 config PPC64_BIG_ENDIAN_ELF_ABI_V2
# Option is available to BFD, but LLD does not support ELFv1 so this is # Option is available to BFD, but LLD does not support ELFv1 so this is
# always true there. # always true there.
...@@ -686,14 +666,13 @@ config RELOCATABLE_TEST ...@@ -686,14 +666,13 @@ config RELOCATABLE_TEST
loaded at, which tends to be non-zero and therefore test the loaded at, which tends to be non-zero and therefore test the
relocation code. relocation code.
config CRASH_DUMP config ARCH_SUPPORTS_CRASH_DUMP
bool "Build a dump capture kernel" def_bool PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP)
depends on PPC64 || PPC_BOOK3S_32 || PPC_85xx || (44x && !SMP)
config ARCH_SELECTS_CRASH_DUMP
def_bool y
depends on CRASH_DUMP
select RELOCATABLE if PPC64 || 44x || PPC_85xx select RELOCATABLE if PPC64 || 44x || PPC_85xx
help
Build a kernel suitable for use as a dump capture kernel.
The same kernel binary can be used as production kernel and dump
capture kernel.
config FA_DUMP config FA_DUMP
bool "Firmware-assisted dump" bool "Firmware-assisted dump"
......
...@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -4,7 +4,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_APM8018X=y CONFIG_APM8018X=y
......
...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -15,7 +15,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_LZ4 is not set # CONFIG_RD_LZ4 is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_BPF_SYSCALL=y CONFIG_BPF_SYSCALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
......
...@@ -3,7 +3,7 @@ CONFIG_LOG_BUF_SHIFT=14 ...@@ -3,7 +3,7 @@ CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
# CONFIG_EPOLL is not set # CONFIG_EPOLL is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
......
...@@ -9,7 +9,7 @@ CONFIG_BLK_DEV_INITRD=y ...@@ -9,7 +9,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_GZIP is not set # CONFIG_RD_GZIP is not set
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
# CONFIG_PCSPKR_PLATFORM is not set # CONFIG_PCSPKR_PLATFORM is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
CONFIG_PARTITION_ADVANCED=y CONFIG_PARTITION_ADVANCED=y
# CONFIG_PPC_PMAC is not set # CONFIG_PPC_PMAC is not set
CONFIG_PPC_82xx=y CONFIG_PPC_82xx=y
......
...@@ -8,7 +8,7 @@ CONFIG_CGROUPS=y ...@@ -8,7 +8,7 @@ CONFIG_CGROUPS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set # CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
......
...@@ -3,7 +3,7 @@ CONFIG_POSIX_MQUEUE=y ...@@ -3,7 +3,7 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_PERF_EVENTS is not set # CONFIG_PERF_EVENTS is not set
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_PPC64=y CONFIG_PPC64=y
......
...@@ -55,7 +55,7 @@ int irq_choose_cpu(const struct cpumask *mask); ...@@ -55,7 +55,7 @@ int irq_choose_cpu(const struct cpumask *mask);
#if defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI) #if defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI)
extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask,
bool exclude_self); int exclude_cpu);
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
#endif #endif
......
...@@ -221,8 +221,8 @@ static void raise_backtrace_ipi(cpumask_t *mask) ...@@ -221,8 +221,8 @@ static void raise_backtrace_ipi(cpumask_t *mask)
} }
} }
void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) void arch_trigger_cpumask_backtrace(const cpumask_t *mask, int exclude_cpu)
{ {
nmi_trigger_cpumask_backtrace(mask, exclude_self, raise_backtrace_ipi); nmi_trigger_cpumask_backtrace(mask, exclude_cpu, raise_backtrace_ipi);
} }
#endif /* defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI) */ #endif /* defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_NMI_IPI) */
...@@ -245,7 +245,7 @@ static void watchdog_smp_panic(int cpu) ...@@ -245,7 +245,7 @@ static void watchdog_smp_panic(int cpu)
__cpumask_clear_cpu(c, &wd_smp_cpus_ipi); __cpumask_clear_cpu(c, &wd_smp_cpus_ipi);
} }
} else { } else {
trigger_allbutself_cpu_backtrace(); trigger_allbutcpu_cpu_backtrace(cpu);
cpumask_clear(&wd_smp_cpus_ipi); cpumask_clear(&wd_smp_cpus_ipi);
} }
...@@ -416,7 +416,7 @@ DEFINE_INTERRUPT_HANDLER_NMI(soft_nmi_interrupt) ...@@ -416,7 +416,7 @@ DEFINE_INTERRUPT_HANDLER_NMI(soft_nmi_interrupt)
xchg(&__wd_nmi_output, 1); // see wd_lockup_ipi xchg(&__wd_nmi_output, 1); // see wd_lockup_ipi
if (sysctl_hardlockup_all_cpu_backtrace) if (sysctl_hardlockup_all_cpu_backtrace)
trigger_allbutself_cpu_backtrace(); trigger_allbutcpu_cpu_backtrace(cpu);
if (hardlockup_panic) if (hardlockup_panic)
nmi_panic(regs, "Hard LOCKUP"); nmi_panic(regs, "Hard LOCKUP");
......
...@@ -5,7 +5,7 @@ obj-$(CONFIG_BUILTIN_DTB) += boot/dts/ ...@@ -5,7 +5,7 @@ obj-$(CONFIG_BUILTIN_DTB) += boot/dts/
obj-y += errata/ obj-y += errata/
obj-$(CONFIG_KVM) += kvm/ obj-$(CONFIG_KVM) += kvm/
obj-$(CONFIG_ARCH_HAS_KEXEC_PURGATORY) += purgatory/ obj-$(CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY) += purgatory/
# for cleaning # for cleaning
subdir- += boot subdir- += boot
...@@ -656,48 +656,30 @@ config RISCV_BOOT_SPINWAIT ...@@ -656,48 +656,30 @@ config RISCV_BOOT_SPINWAIT
If unsure what to do here, say N. If unsure what to do here, say N.
config KEXEC config ARCH_SUPPORTS_KEXEC
bool "Kexec system call" def_bool MMU
depends on MMU
config ARCH_SELECTS_KEXEC
def_bool y
depends on KEXEC
select HOTPLUG_CPU if SMP select HOTPLUG_CPU if SMP
select KEXEC_CORE
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
but it is independent of the system firmware. And like a reboot
you can start any kernel with it, not just Linux.
The name comes from the similarity to the exec system call. config ARCH_SUPPORTS_KEXEC_FILE
def_bool 64BIT && MMU
config KEXEC_FILE config ARCH_SELECTS_KEXEC_FILE
bool "kexec file based systmem call" def_bool y
depends on 64BIT && MMU depends on KEXEC_FILE
select HAVE_IMA_KEXEC if IMA select HAVE_IMA_KEXEC if IMA
select KEXEC_CORE
select KEXEC_ELF select KEXEC_ELF
help
This is new version of kexec system call. This system call is
file based and takes file descriptors as system call argument
for kernel and initramfs as opposed to list of segments as
accepted by previous system call.
If you don't know what to do here, say Y.
config ARCH_HAS_KEXEC_PURGATORY config ARCH_SUPPORTS_KEXEC_PURGATORY
def_bool KEXEC_FILE def_bool KEXEC_FILE
depends on CRYPTO=y depends on CRYPTO=y
depends on CRYPTO_SHA256=y depends on CRYPTO_SHA256=y
config CRASH_DUMP config ARCH_SUPPORTS_CRASH_DUMP
bool "Build kdump crash kernel" def_bool y
help
Generate crash dump after being started by kexec. This should
be normally only set in special crash dump kernels which are
loaded in the main kernel with kexec-tools into a specially
reserved region and then later executed after a crash by
kdump/kexec.
For more details see Documentation/admin-guide/kdump/kdump.rst
config COMPAT config COMPAT
bool "Kernel support for 32-bit U-mode" bool "Kernel support for 32-bit U-mode"
......
...@@ -21,7 +21,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -21,7 +21,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_IO_URING is not set # CONFIG_IO_URING is not set
# CONFIG_ADVISE_SYSCALLS is not set # CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_SLUB=y CONFIG_SLUB=y
......
...@@ -13,7 +13,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y ...@@ -13,7 +13,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_IO_URING is not set # CONFIG_IO_URING is not set
# CONFIG_ADVISE_SYSCALLS is not set # CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_KALLSYMS is not set # CONFIG_KALLSYMS is not set
CONFIG_EMBEDDED=y CONFIG_EXPERT=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_SLUB=y CONFIG_SLUB=y
......
...@@ -260,7 +260,7 @@ static void *elf_kexec_load(struct kimage *image, char *kernel_buf, ...@@ -260,7 +260,7 @@ static void *elf_kexec_load(struct kimage *image, char *kernel_buf,
cmdline = modified_cmdline; cmdline = modified_cmdline;
} }
#ifdef CONFIG_ARCH_HAS_KEXEC_PURGATORY #ifdef CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY
/* Add purgatory to the image */ /* Add purgatory to the image */
kbuf.top_down = true; kbuf.top_down = true;
kbuf.mem = KEXEC_BUF_MEM_UNKNOWN; kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
...@@ -274,7 +274,7 @@ static void *elf_kexec_load(struct kimage *image, char *kernel_buf, ...@@ -274,7 +274,7 @@ static void *elf_kexec_load(struct kimage *image, char *kernel_buf,
sizeof(kernel_start), 0); sizeof(kernel_start), 0);
if (ret) if (ret)
pr_err("Error update purgatory ret=%d\n", ret); pr_err("Error update purgatory ret=%d\n", ret);
#endif /* CONFIG_ARCH_HAS_KEXEC_PURGATORY */ #endif /* CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY */
/* Add the initrd to the image */ /* Add the initrd to the image */
if (initrd != NULL) { if (initrd != NULL) {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment