summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2016-07-28 00:08:26 +0900
committerKees Cook <keescook@chromium.org>2016-09-08 15:01:09 -0700
commit79d955af711a6e20207783590a2cfddbd649568b (patch)
treefa5c5b48bc906472a5049437337372f0164b080d
parentc950fd6f201aea649932898206a850f0a7f25603 (diff)
pstore/ram: Set pstore flags dynamically
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>
-rw-r--r--fs/pstore/ram.c8
-rw-r--r--include/linux/pstore.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index c2ebf5084977..08597c524439 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -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) {
diff --git a/include/linux/pstore.h b/include/linux/pstore.h
index f5806b2a6f7a..50d475228d97 100644
--- a/include/linux/pstore.h
+++ b/include/linux/pstore.h
@@ -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);