[GIT PULL] pstore updates for v5.8-rc1

From: Kees Cook
Date: Sun May 31 2020 - 22:57:30 EST


Hi Linus,

Please pull these pstore updates for v5.8-rc1. This is a pretty big set
of changes (relative to past pstore pulls), but they've lived in -next
for a while. The biggest change here is the ability to support a block
device as a pstore backend, which has been desired for a while. A lot of
additional fixes and refactorings are also included, mostly in support
of the new features.

Thanks!

-Kees

The following changes since commit 8f3d9f354286745c751374f5f1fcafee6b3f3136:

Linux 5.7-rc1 (2020-04-12 12:35:55 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git tags/pstore-v5.8-rc1

for you to fetch changes up to 78c08247b9d3e03192f8b359aa079024e805a948:

mtd: Support kmsg dumper based on pstore/blk (2020-05-31 19:49:01 -0700)

----------------------------------------------------------------
Fixes and new features for pstore

- refactor pstore locking for safer module unloading (Kees Cook)
- remove orphaned records from pstorefs when backend unloaded (Kees Cook)
- refactor dump_oops parameter into max_reason (Pavel Tatashin)
- introduce pstore/zone for common code for contiguous storage (WeiXiong Liao)
- introduce pstore/blk for block device backend (WeiXiong Liao)
- introduce mtd backend (WeiXiong Liao)

----------------------------------------------------------------
Kees Cook (22):
pstore: Drop useless try_module_get() for backend
pstore: Rename "pstore_lock" to "psinfo_lock"
pstore: Convert "psinfo" locking to mutex
pstore: Rename "allpstore" to "records_list"
pstore: Convert "records_list" locking to mutex
pstore: Add proper unregister lock checking
pstore: Refactor pstorefs record list removal
pstore: Add locking around superblock changes
pstore: Do not leave timer disabled for next backend
pstore: Remove filesystem records when backend is unregistered
pstore: Make sure console capturing will restart
pstore/platform: Switch pstore_info::name to const
pstore/platform: Use backend name for console registration
pstore/platform: Move module params after declarations
pstore/ram: Adjust module param permissions to reflect reality
pstore/ram: Refactor DT size parsing
pstore/ram: Refactor ftrace buffer merging
pstore/ftrace: Provide ftrace log merging routine
printk: Collapse shutdown types into a single dump reason
printk: Introduce kmsg_dump_reason_str()
pstore/ram: Introduce max_reason and convert dump_oops
pstore/blk: Introduce "best_effort" mode

Pavel Tatashin (3):
printk: honor the max_reason field in kmsg_dumper
pstore/platform: Pass max_reason to kmesg dump
ramoops: Add "max-reason" optional field to ramoops DT node

WeiXiong Liao (10):
pstore/zone: Introduce common layer to manage storage zones
pstore/blk: Introduce backend for block devices
pstore/zone,blk: Add support for pmsg frontend
pstore/zone,blk: Add console frontend support
pstore/zone,blk: Add ftrace frontend support
Documentation: Add details for pstore/blk
pstore/zone: Provide way to skip "broken" zone for MTD devices
pstore/blk: Provide way to query pstore configuration
pstore/blk: Support non-block storage devices
mtd: Support kmsg dumper based on pstore/blk

Documentation/admin-guide/pstore-blk.rst | 243 ++++
Documentation/admin-guide/ramoops.rst | 14 +-
.../bindings/reserved-memory/ramoops.txt | 13 +-
MAINTAINERS | 1 +
arch/powerpc/kernel/nvram_64.c | 4 +-
drivers/mtd/Kconfig | 10 +
drivers/mtd/Makefile | 1 +
drivers/mtd/mtdpstore.c | 578 ++++++++
drivers/platform/chrome/chromeos_pstore.c | 2 +-
fs/pstore/Kconfig | 109 ++
fs/pstore/Makefile | 6 +
fs/pstore/blk.c | 517 +++++++
fs/pstore/ftrace.c | 54 +
fs/pstore/inode.c | 129 +-
fs/pstore/internal.h | 11 +-
fs/pstore/platform.c | 117 +-
fs/pstore/ram.c | 155 +--
fs/pstore/zone.c | 1465 ++++++++++++++++++++
include/linux/kmsg_dump.h | 12 +-
include/linux/pstore.h | 9 +-
include/linux/pstore_blk.h | 118 ++
include/linux/pstore_ram.h | 2 +-
include/linux/pstore_zone.h | 60 +
kernel/printk/printk.c | 32 +-
kernel/reboot.c | 6 +-
tools/testing/selftests/pstore/pstore_tests | 2 +-
26 files changed, 3464 insertions(+), 206 deletions(-)
create mode 100644 Documentation/admin-guide/pstore-blk.rst
create mode 100644 drivers/mtd/mtdpstore.c
create mode 100644 fs/pstore/blk.c
create mode 100644 fs/pstore/zone.c
create mode 100644 include/linux/pstore_blk.h
create mode 100644 include/linux/pstore_zone.h

--
Kees Cook