From 297ac72881b89d34f7940020319fd3e2a68fbe67 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 8 Jul 2019 09:47:09 +0200 Subject: pstore: Only capture log messages With this pstore only captures barebox log messages printed with pr_* and dev_*, but no longer anything printed with printf and friends. When capturing the barebox output with pstore only the log messages are of interest, but not the ones printed with printf and certainly not the things typed interactively on the command line. These are logged currently because we register pstore as a barebox console. Instead, hook into pr_puts which only outputs the barebox log messages. Signed-off-by: Sascha Hauer --- include/linux/pstore.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/linux') diff --git a/include/linux/pstore.h b/include/linux/pstore.h index 15e1e3d6fa..dabb639111 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h @@ -85,6 +85,7 @@ struct pstore_info { #ifdef CONFIG_FS_PSTORE extern int pstore_register(struct pstore_info *); extern bool pstore_cannot_block_path(enum kmsg_dump_reason reason); +extern void pstore_log(const char *msg); #else static inline int pstore_register(struct pstore_info *psi) @@ -96,6 +97,9 @@ pstore_cannot_block_path(enum kmsg_dump_reason reason) { return false; } +static inline void pstore_log(const char *msg) +{ +} #endif #endif /*_LINUX_PSTORE_H*/ -- cgit v1.2.3 From 5b1bc2224cff7deb2f1e048bb82a60d857f642be Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 8 Jul 2019 12:48:50 +0200 Subject: pstore: remove unused code pstore_info->write() is unused, remove the code implementing it. Signed-off-by: Sascha Hauer --- fs/pstore/platform.c | 10 ---------- fs/pstore/ram.c | 17 ----------------- include/linux/pstore.h | 2 -- 3 files changed, 29 deletions(-) (limited to 'include/linux') diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index aafa5559dc..0a6fa38edc 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -79,14 +79,6 @@ static void pstore_console_capture_log(void) } } -static int pstore_write_compat(struct pstore_record *record) -{ - return record->psi->write_buf(record->type, record->reason, - &record->id, record->part, - psinfo->buf, record->compressed, - record->size, record->psi); -} - /* * platform specific persistent storage driver registers with * us here. If pstore is already mounted, call the platform @@ -107,8 +99,6 @@ int pstore_register(struct pstore_info *psi) return -EBUSY; } - if (!psi->write) - psi->write = pstore_write_compat; psinfo = psi; mutex_init(&psinfo->read_mutex); spin_unlock(&pstore_lock); diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 734d0c3c1d..86049f989e 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -609,22 +609,7 @@ static int ramoops_probe(struct device_d *dev) goto fail_init_mprz; cxt->pstore.data = cxt; - /* - * Console can handle any buffer size, so prefer LOG_LINE_MAX. If we - * have to handle dumps, we must have at least record_size buffer. And - * for ftrace, bufsize is irrelevant (if bufsize is 0, buf will be - * ZERO_SIZE_PTR). - */ - if (cxt->console_size) - cxt->pstore.bufsize = 1024; /* LOG_LINE_MAX */ - cxt->pstore.bufsize = max(cxt->record_size, cxt->pstore.bufsize); - cxt->pstore.buf = kmalloc(cxt->pstore.bufsize, GFP_KERNEL); spin_lock_init(&cxt->pstore.buf_lock); - if (!cxt->pstore.buf) { - pr_err("cannot allocate pstore buffer\n"); - err = -ENOMEM; - goto fail_clear; - } err = pstore_register(&cxt->pstore); if (err) { @@ -661,9 +646,7 @@ static int ramoops_probe(struct device_d *dev) return 0; fail_buf: - kfree(cxt->pstore.buf); fail_clear: - cxt->pstore.bufsize = 0; kfree(cxt->mprz); fail_init_mprz: kfree(cxt->fprz); diff --git a/include/linux/pstore.h b/include/linux/pstore.h index dabb639111..f598f31a54 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h @@ -64,8 +64,6 @@ struct pstore_record { struct pstore_info { struct module *owner; char *name; - char *buf; - size_t bufsize; int flags; int (*open)(struct pstore_info *psi); int (*close)(struct pstore_info *psi); -- cgit v1.2.3