summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPeng Wang <wangpeng15@xiaomi.com>2018-10-30 15:52:34 +0800
committerKees Cook <keescook@chromium.org>2018-12-03 16:52:35 -0800
commit7684bd334d9d4ca4f09873e88d9c0131a2cf6c3b (patch)
tree2ccb5d56ff8945abd6d2a85bb70e8804ba6bef9c /include
parentb77fa617a2ff4d6beccad3d3d4b3a1f2d10368aa (diff)
downloadlinux-7684bd334d9d4ca4f09873e88d9c0131a2cf6c3b.tar.bz2
pstore: Avoid duplicate call of persistent_ram_zap()
When initialing a prz, if invalid data is found (no PERSISTENT_RAM_SIG), the function call path looks like this: ramoops_init_prz -> persistent_ram_new -> persistent_ram_post_init -> persistent_ram_zap persistent_ram_zap As we can see, persistent_ram_zap() is called twice. We can avoid this by adding an option to persistent_ram_new(), and only call persistent_ram_zap() when it is needed. Signed-off-by: Peng Wang <wangpeng15@xiaomi.com> [kees: minor tweak to exit path and commit log] Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/pstore_ram.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h
index 602d64725222..6e94980357d2 100644
--- a/include/linux/pstore_ram.h
+++ b/include/linux/pstore_ram.h
@@ -30,6 +30,7 @@
* PRZ_FLAG_NO_LOCK is used. For all other cases, locking is required.
*/
#define PRZ_FLAG_NO_LOCK BIT(0)
+#define PRZ_FLAG_ZAP_OLD BIT(1)
struct persistent_ram_buffer;
struct rs_control;