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