Messages in this thread Patch in this message | | | From | Peng15 Wang 王鹏 <> | Subject | [PATCH] pstore: Remove duplicate invoking of persistent_ram_zap() | Date | Fri, 26 Oct 2018 03:41:20 +0000 |
| |
From: Peng Wang <wangpeng15@xiaomi.com>
When initialing przs with invalid data in buffer(no PERSISTENT_RAM_SIG), function call path is 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 removing it in ramoops_init_prz(), and only call it in persistent_ram_post_init().
Signed-off-by: Peng Wang <wangpeng15@xiaomi.com> --- fs/pstore/ram.c | 2 -- fs/pstore/ram_core.c | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index ffcff6516e89..3f57074a4fab 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -649,8 +649,6 @@ static int ramoops_init_prz(const char *name, return err; } - persistent_ram_zap(*prz); - *paddr += sz; return 0; diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c index 12e21f789194..3ef0fd5a7cd5 100644 --- a/fs/pstore/ram_core.c +++ b/fs/pstore/ram_core.c @@ -505,15 +505,14 @@ static int persistent_ram_post_init(struct persistent_ram_zone *prz, u32 sig, pr_debug("found existing buffer, size %zu, start %zu\n", buffer_size(prz), buffer_start(prz)); persistent_ram_save_old(prz); - return 0; } } else { pr_debug("no valid data in buffer (sig = 0x%08x)\n", prz->buffer->sig); + prz->buffer->sig = sig; } /* Rewind missing or invalid memory area. */ - prz->buffer->sig = sig; persistent_ram_zap(prz); return 0; -- 2.19.1
| |