diff options
author | Mark Salyzyn <salyzyn@android.com> | 2016-09-01 08:13:46 -0700 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2016-09-08 15:01:10 -0700 |
commit | 5bf6d1b92715f224ef6e1c3abca5dd63eeb4915d (patch) | |
tree | 09139364ae61fbb0b188c0a762861bf800b70d23 /include/linux/pstore.h | |
parent | 79d955af711a6e20207783590a2cfddbd649568b (diff) | |
download | linux-stable-5bf6d1b92715f224ef6e1c3abca5dd63eeb4915d.tar.gz linux-stable-5bf6d1b92715f224ef6e1c3abca5dd63eeb4915d.tar.bz2 linux-stable-5bf6d1b92715f224ef6e1c3abca5dd63eeb4915d.zip |
pstore/pmsg: drop bounce buffer
Removing a bounce buffer copy operation in the pmsg driver path is
always better. We also gain in overall performance by not requesting
a vmalloc on every write as this can cause precious RT tasks, such
as user facing media operation, to stall while memory is being
reclaimed. Added a write_buf_user to the pstore functions, a backup
platform write_buf_user that uses the small buffer that is part of
the instance, and implemented a ramoops write_buf_user that only
supports PSTORE_TYPE_PMSG.
Signed-off-by: Mark Salyzyn <salyzyn@android.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'include/linux/pstore.h')
-rw-r--r-- | include/linux/pstore.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/linux/pstore.h b/include/linux/pstore.h index 50d475228d97..92013cc9cc8c 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h @@ -22,12 +22,13 @@ #ifndef _LINUX_PSTORE_H #define _LINUX_PSTORE_H -#include <linux/time.h> +#include <linux/compiler.h> +#include <linux/errno.h> #include <linux/kmsg_dump.h> #include <linux/mutex.h> -#include <linux/types.h> #include <linux/spinlock.h> -#include <linux/errno.h> +#include <linux/time.h> +#include <linux/types.h> /* types */ enum pstore_type_id { @@ -68,6 +69,10 @@ struct pstore_info { enum kmsg_dump_reason reason, u64 *id, unsigned int part, const char *buf, bool compressed, size_t size, struct pstore_info *psi); + int (*write_buf_user)(enum pstore_type_id type, + enum kmsg_dump_reason reason, u64 *id, + unsigned int part, const char __user *buf, + bool compressed, size_t size, struct pstore_info *psi); int (*erase)(enum pstore_type_id type, u64 id, int count, struct timespec time, struct pstore_info *psi); |