lkml.org 
[lkml]   [2017]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v5 1/5] pstore: Change parameter of ramoops_free_przs()
Date
This commit changes parameter of ramoops_free_przs() from
struct ramoops_context * into struct persistent_ram_zone * in order to
make it available for all prz array.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.kw@hitachi.com>
Signed-off-by: Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Seiji Aguchi <seiji.aguchi.tr@hitachi.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Tony Luck <tony.luck@intel.com>

V5:
- No chnages.

V4:
- Rebase

V3:
- Split patch.
- Rebase.
---
fs/pstore/ram.c | 35 +++++++++++++++++------------------
1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 1d887efaaf71..8ad2d6d8cec2 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -508,26 +508,16 @@ static struct ramoops_context oops_cxt = {
},
};

-static void ramoops_free_przs(struct ramoops_context *cxt)
+static void ramoops_free_przs(struct persistent_ram_zone **przs)
{
int i;

- /* Free dump PRZs */
- if (cxt->dprzs) {
- for (i = 0; i < cxt->max_dump_cnt; i++)
- persistent_ram_free(cxt->dprzs[i]);
-
- kfree(cxt->dprzs);
- cxt->max_dump_cnt = 0;
- }
+ if (!przs)
+ return;

- /* Free ftrace PRZs */
- if (cxt->fprzs) {
- for (i = 0; i < cxt->max_ftrace_cnt; i++)
- persistent_ram_free(cxt->fprzs[i]);
- kfree(cxt->fprzs);
- cxt->max_ftrace_cnt = 0;
- }
+ for (i = 0; !IS_ERR_OR_NULL(przs[i]); i++)
+ persistent_ram_free(przs[i]);
+ kfree(przs);
}

static int ramoops_init_przs(const char *name,
@@ -863,10 +853,13 @@ static int ramoops_probe(struct platform_device *pdev)
cxt->pstore.bufsize = 0;
persistent_ram_free(cxt->mprz);
fail_init_mprz:
+ cxt->max_ftrace_cnt = 0;
+ ramoops_free_przs(cxt->fprzs);
fail_init_fprz:
persistent_ram_free(cxt->cprz);
fail_init_cprz:
- ramoops_free_przs(cxt);
+ cxt->max_dump_cnt = 0;
+ ramoops_free_przs(cxt->dprzs);
fail_out:
return err;
}
@@ -882,7 +875,13 @@ static int ramoops_remove(struct platform_device *pdev)

persistent_ram_free(cxt->mprz);
persistent_ram_free(cxt->cprz);
- ramoops_free_przs(cxt);
+
+ /* Free ftrace PRZs */
+ cxt->max_ftrace_cnt = 0;
+ ramoops_free_przs(cxt->fprzs);
+ /* Free dump PRZs */
+ cxt->max_dump_cnt = 0;
+ ramoops_free_przs(cxt->dprzs);

return 0;
}
--
2.11.0
\
 
 \ /
  Last update: 2017-02-27 02:54    [W:0.126 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site