aboutsummaryrefslogtreecommitdiff
path: root/fs/pstore/ram.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2015-02-09 14:11:45 +0800
committerMark Brown <broonie@kernel.org>2015-02-09 14:11:45 +0800
commitceafc84623c8ef94c13a87363277a595988b2b79 (patch)
treeb2513b053aedcca198dfbf2ec4c4ea64ede77cfb /fs/pstore/ram.c
parent692d96aa22dea8bb80018c6a76556ad6afd464a6 (diff)
parent87dc7c99c72e49461fba277c81871525700821fb (diff)
Merge tag 'v3.10.68' into linux-linaro-lsk
This is the 3.10.68 stable release
Diffstat (limited to 'fs/pstore/ram.c')
-rw-r--r--fs/pstore/ram.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 42d5911c7e29..d3d37142bd93 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -92,6 +92,7 @@ struct ramoops_context {
struct persistent_ram_ecc_info ecc_info;
unsigned int max_dump_cnt;
unsigned int dump_write_cnt;
+ /* _read_cnt need clear on ramoops_pstore_open */
unsigned int dump_read_cnt;
unsigned int console_read_cnt;
unsigned int ftrace_read_cnt;
@@ -107,6 +108,7 @@ static int ramoops_pstore_open(struct pstore_info *psi)
cxt->dump_read_cnt = 0;
cxt->console_read_cnt = 0;
+ cxt->ftrace_read_cnt = 0;
return 0;
}
@@ -123,13 +125,15 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, uint max,
return NULL;
prz = przs[i];
+ if (!prz)
+ return NULL;
- if (update) {
- /* Update old/shadowed buffer. */
+ /* Update old/shadowed buffer. */
+ if (update)
persistent_ram_save_old(prz);
- if (!persistent_ram_old_size(prz))
- return NULL;
- }
+
+ if (!persistent_ram_old_size(prz))
+ return NULL;
*typep = type;
*id = i;
@@ -415,7 +419,6 @@ static int ramoops_probe(struct platform_device *pdev)
if (!is_power_of_2(pdata->ftrace_size))
pdata->ftrace_size = rounddown_pow_of_two(pdata->ftrace_size);
- cxt->dump_read_cnt = 0;
cxt->size = pdata->mem_size;
cxt->phys_addr = pdata->mem_address;
cxt->memtype = pdata->mem_type;