pstore/ram: Set pstore flags dynamically
authorNamhyung Kim <namhyung@kernel.org>
Wed, 27 Jul 2016 15:08:26 +0000 (00:08 +0900)
committerKees Cook <keescook@chromium.org>
Thu, 8 Sep 2016 22:01:09 +0000 (15:01 -0700)
The ramoops can be configured to enable each pstore type by setting
their size.  In that case, it'd be better not to register disabled types
in the first place.

Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/pstore/ram.c
include/linux/pstore.h

index c2ebf50..08597c5 100644 (file)
@@ -623,7 +623,13 @@ static int ramoops_probe(struct platform_device *pdev)
                goto fail_clear;
        }
 
-       cxt->pstore.flags = PSTORE_FLAGS_ALL;
+       cxt->pstore.flags = PSTORE_FLAGS_DMESG;
+       if (cxt->console_size)
+               cxt->pstore.flags |= PSTORE_FLAGS_CONSOLE;
+       if (cxt->ftrace_size)
+               cxt->pstore.flags |= PSTORE_FLAGS_FTRACE;
+       if (cxt->pmsg_size)
+               cxt->pstore.flags |= PSTORE_FLAGS_PMSG;
 
        err = pstore_register(&cxt->pstore);
        if (err) {
index f5806b2..50d4752 100644 (file)
@@ -80,8 +80,6 @@ struct pstore_info {
 #define PSTORE_FLAGS_FTRACE    (1 << 2)
 #define PSTORE_FLAGS_PMSG      (1 << 3)
 
-#define PSTORE_FLAGS_ALL       ((1 << 4) - 1)
-
 extern int pstore_register(struct pstore_info *);
 extern void pstore_unregister(struct pstore_info *);
 extern bool pstore_cannot_block_path(enum kmsg_dump_reason reason);