mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
Merge tag 'mm-nonmm-stable-2023-06-24-19-23' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-mm updates from Andrew Morton: - Arnd Bergmann has fixed a bunch of -Wmissing-prototypes in top-level directories - Douglas Anderson has added a new "buddy" mode to the hardlockup detector. It permits the detector to work on architectures which cannot provide the required interrupts, by having CPUs periodically perform checks on other CPUs - Zhen Lei has enhanced kexec's ability to support two crash regions - Petr Mladek has done a lot of cleanup on the hard lockup detector's Kconfig entries - And the usual bunch of singleton patches in various places * tag 'mm-nonmm-stable-2023-06-24-19-23' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (72 commits) kernel/time/posix-stubs.c: remove duplicated include ocfs2: remove redundant assignment to variable bit_off watchdog/hardlockup: fix typo in config HARDLOCKUP_DETECTOR_PREFER_BUDDY powerpc: move arch_trigger_cpumask_backtrace from nmi.h to irq.h devres: show which resource was invalid in __devm_ioremap_resource() watchdog/hardlockup: define HARDLOCKUP_DETECTOR_ARCH watchdog/sparc64: define HARDLOCKUP_DETECTOR_SPARC64 watchdog/hardlockup: make HAVE_NMI_WATCHDOG sparc64-specific watchdog/hardlockup: declare arch_touch_nmi_watchdog() only in linux/nmi.h watchdog/hardlockup: make the config checks more straightforward watchdog/hardlockup: sort hardlockup detector related config values a logical way watchdog/hardlockup: move SMP barriers from common code to buddy code watchdog/buddy: simplify the dependency for HARDLOCKUP_DETECTOR_PREFER_BUDDY watchdog/buddy: don't copy the cpumask in watchdog_next_cpu() watchdog/buddy: cleanup how watchdog_buddy_check_hardlockup() is called watchdog/hardlockup: remove softlockup comment in touch_nmi_watchdog() watchdog/hardlockup: in watchdog_hardlockup_check() use cpumask_copy() watchdog/hardlockup: don't use raw_cpu_ptr() in watchdog_hardlockup_kick() watchdog/hardlockup: HAVE_NMI_WATCHDOG must implement watchdog_hardlockup_probe() watchdog/hardlockup: keep kernel.nmi_watchdog sysctl as 0444 if probe fails ...
This commit is contained in:
@@ -1035,7 +1035,86 @@ config BOOTPARAM_SOFTLOCKUP_PANIC
|
||||
|
||||
Say N if unsure.
|
||||
|
||||
config HAVE_HARDLOCKUP_DETECTOR_BUDDY
|
||||
bool
|
||||
depends on SMP
|
||||
default y
|
||||
|
||||
#
|
||||
# Global switch whether to build a hardlockup detector at all. It is available
|
||||
# only when the architecture supports at least one implementation. There are
|
||||
# two exceptions. The hardlockup detector is never enabled on:
|
||||
#
|
||||
# s390: it reported many false positives there
|
||||
#
|
||||
# sparc64: has a custom implementation which is not using the common
|
||||
# hardlockup command line options and sysctl interface.
|
||||
#
|
||||
config HARDLOCKUP_DETECTOR
|
||||
bool "Detect Hard Lockups"
|
||||
depends on DEBUG_KERNEL && !S390 && !HARDLOCKUP_DETECTOR_SPARC64
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_PERF || HAVE_HARDLOCKUP_DETECTOR_BUDDY || HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
imply HARDLOCKUP_DETECTOR_PERF
|
||||
imply HARDLOCKUP_DETECTOR_BUDDY
|
||||
imply HARDLOCKUP_DETECTOR_ARCH
|
||||
select LOCKUP_DETECTOR
|
||||
|
||||
help
|
||||
Say Y here to enable the kernel to act as a watchdog to detect
|
||||
hard lockups.
|
||||
|
||||
Hardlockups are bugs that cause the CPU to loop in kernel mode
|
||||
for more than 10 seconds, without letting other interrupts have a
|
||||
chance to run. The current stack trace is displayed upon detection
|
||||
and the system will stay locked up.
|
||||
|
||||
#
|
||||
# Note that arch-specific variants are always preferred.
|
||||
#
|
||||
config HARDLOCKUP_DETECTOR_PREFER_BUDDY
|
||||
bool "Prefer the buddy CPU hardlockup detector"
|
||||
depends on HARDLOCKUP_DETECTOR
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_PERF && HAVE_HARDLOCKUP_DETECTOR_BUDDY
|
||||
depends on !HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
help
|
||||
Say Y here to prefer the buddy hardlockup detector over the perf one.
|
||||
|
||||
With the buddy detector, each CPU uses its softlockup hrtimer
|
||||
to check that the next CPU is processing hrtimer interrupts by
|
||||
verifying that a counter is increasing.
|
||||
|
||||
This hardlockup detector is useful on systems that don't have
|
||||
an arch-specific hardlockup detector or if resources needed
|
||||
for the hardlockup detector are better used for other things.
|
||||
|
||||
config HARDLOCKUP_DETECTOR_PERF
|
||||
bool
|
||||
depends on HARDLOCKUP_DETECTOR
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_PERF && !HARDLOCKUP_DETECTOR_PREFER_BUDDY
|
||||
depends on !HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
select HARDLOCKUP_DETECTOR_COUNTS_HRTIMER
|
||||
|
||||
config HARDLOCKUP_DETECTOR_BUDDY
|
||||
bool
|
||||
depends on HARDLOCKUP_DETECTOR
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_BUDDY
|
||||
depends on !HAVE_HARDLOCKUP_DETECTOR_PERF || HARDLOCKUP_DETECTOR_PREFER_BUDDY
|
||||
depends on !HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
select HARDLOCKUP_DETECTOR_COUNTS_HRTIMER
|
||||
|
||||
config HARDLOCKUP_DETECTOR_ARCH
|
||||
bool
|
||||
depends on HARDLOCKUP_DETECTOR
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
help
|
||||
The arch-specific implementation of the hardlockup detector will
|
||||
be used.
|
||||
|
||||
#
|
||||
# Both the "perf" and "buddy" hardlockup detectors count hrtimer
|
||||
# interrupts. This config enables functions managing this common code.
|
||||
#
|
||||
config HARDLOCKUP_DETECTOR_COUNTS_HRTIMER
|
||||
bool
|
||||
select SOFTLOCKUP_DETECTOR
|
||||
|
||||
@@ -1046,25 +1125,6 @@ config HARDLOCKUP_DETECTOR_PERF
|
||||
config HARDLOCKUP_CHECK_TIMESTAMP
|
||||
bool
|
||||
|
||||
#
|
||||
# arch/ can define HAVE_HARDLOCKUP_DETECTOR_ARCH to provide their own hard
|
||||
# lockup detector rather than the perf based detector.
|
||||
#
|
||||
config HARDLOCKUP_DETECTOR
|
||||
bool "Detect Hard Lockups"
|
||||
depends on DEBUG_KERNEL && !S390
|
||||
depends on HAVE_HARDLOCKUP_DETECTOR_PERF || HAVE_HARDLOCKUP_DETECTOR_ARCH
|
||||
select LOCKUP_DETECTOR
|
||||
select HARDLOCKUP_DETECTOR_PERF if HAVE_HARDLOCKUP_DETECTOR_PERF
|
||||
help
|
||||
Say Y here to enable the kernel to act as a watchdog to detect
|
||||
hard lockups.
|
||||
|
||||
Hardlockups are bugs that cause the CPU to loop in kernel mode
|
||||
for more than 10 seconds, without letting other interrupts have a
|
||||
chance to run. The current stack trace is displayed upon detection
|
||||
and the system will stay locked up.
|
||||
|
||||
config BOOTPARAM_HARDLOCKUP_PANIC
|
||||
bool "Panic (Reboot) On Hard Lockups"
|
||||
depends on HARDLOCKUP_DETECTOR
|
||||
|
@@ -39,7 +39,7 @@ static long INIT nofill(void *buffer, unsigned long len)
|
||||
}
|
||||
|
||||
/* Included from initramfs et al code */
|
||||
STATIC int INIT __gunzip(unsigned char *buf, long len,
|
||||
static int INIT __gunzip(unsigned char *buf, long len,
|
||||
long (*fill)(void*, unsigned long),
|
||||
long (*flush)(void*, unsigned long),
|
||||
unsigned char *out_buf, long out_len,
|
||||
|
@@ -102,6 +102,8 @@
|
||||
*/
|
||||
#ifdef STATIC
|
||||
# define XZ_PREBOOT
|
||||
#else
|
||||
#include <linux/decompress/unxz.h>
|
||||
#endif
|
||||
#ifdef __KERNEL__
|
||||
# include <linux/decompress/mm.h>
|
||||
|
@@ -69,6 +69,8 @@
|
||||
# define UNZSTD_PREBOOT
|
||||
# include "xxhash.c"
|
||||
# include "zstd/decompress_sources.h"
|
||||
#else
|
||||
#include <linux/decompress/unzstd.h>
|
||||
#endif
|
||||
|
||||
#include <linux/decompress/mm.h>
|
||||
|
@@ -10,6 +10,7 @@
|
||||
|
||||
#include <linux/mm.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
/*
|
||||
* devmem_is_allowed() checks to see if /dev/mem access to a certain address
|
||||
|
@@ -129,7 +129,7 @@ __devm_ioremap_resource(struct device *dev, const struct resource *res,
|
||||
BUG_ON(!dev);
|
||||
|
||||
if (!res || resource_type(res) != IORESOURCE_MEM) {
|
||||
dev_err(dev, "invalid resource\n");
|
||||
dev_err(dev, "invalid resource %pR\n", res);
|
||||
return IOMEM_ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
|
@@ -10,6 +10,7 @@
|
||||
#include <kunit/test.h>
|
||||
|
||||
#include "string-stream.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
#define KUNIT_DEBUGFS_ROOT "kunit"
|
||||
#define KUNIT_DEBUGFS_RESULTS "results"
|
||||
|
@@ -105,21 +105,3 @@ static uint64_t ZSTD_div64(uint64_t dividend, uint32_t divisor) {
|
||||
|
||||
#endif /* ZSTD_DEPS_IO */
|
||||
#endif /* ZSTD_DEPS_NEED_IO */
|
||||
|
||||
/*
|
||||
* Only requested when MSAN is enabled.
|
||||
* Need:
|
||||
* intptr_t
|
||||
*/
|
||||
#ifdef ZSTD_DEPS_NEED_STDINT
|
||||
#ifndef ZSTD_DEPS_STDINT
|
||||
#define ZSTD_DEPS_STDINT
|
||||
|
||||
/*
|
||||
* The Linux Kernel doesn't provide intptr_t, only uintptr_t, which
|
||||
* is an unsigned long.
|
||||
*/
|
||||
typedef long intptr_t;
|
||||
|
||||
#endif /* ZSTD_DEPS_STDINT */
|
||||
#endif /* ZSTD_DEPS_NEED_STDINT */
|
||||
|
Reference in New Issue
Block a user