diff options
author | Mark Brown <broonie@kernel.org> | 2015-02-09 14:11:45 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-02-09 14:11:45 +0800 |
commit | ceafc84623c8ef94c13a87363277a595988b2b79 (patch) | |
tree | b2513b053aedcca198dfbf2ec4c4ea64ede77cfb /fs/pstore/ram.c | |
parent | 692d96aa22dea8bb80018c6a76556ad6afd464a6 (diff) | |
parent | 87dc7c99c72e49461fba277c81871525700821fb (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.c | 15 |
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; |