[PATCH 06/14] pstore/ram: Introduce ramoops_context.max_dump_count

From: Anton Vorontsov
Date: Fri May 18 2012 - 18:26:43 EST


So far it is the same as max_count, but this will change when
we'll add support for other message types (e.g. console, mce,
tracing).

Signed-off-by: Anton Vorontsov <anton.vorontsov@xxxxxxxxxx>
---
fs/pstore/ram.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c
index 43d9727..408fb07 100644
--- a/fs/pstore/ram.c
+++ b/fs/pstore/ram.c
@@ -70,6 +70,7 @@ struct ramoops_context {
bool ecc;
unsigned int count;
unsigned int max_count;
+ unsigned int max_dump_count;
unsigned int read_count;
struct pstore_info pstore;
};
@@ -94,7 +95,7 @@ static ssize_t ramoops_pstore_read(u64 *id, enum pstore_type_id *type,
struct ramoops_context *cxt = psi->data;
struct persistent_ram_zone *prz;

- if (cxt->read_count >= cxt->max_count)
+ if (cxt->read_count >= cxt->max_dump_count)
return -EINVAL;

*id = cxt->read_count++;
@@ -172,7 +173,7 @@ static int ramoops_pstore_write(enum pstore_type_id type,
size = prz->buffer_size - hlen;
persistent_ram_write(prz, cxt->pstore.buf, size);

- cxt->count = (cxt->count + 1) % cxt->max_count;
+ cxt->count = (cxt->count + 1) % cxt->max_dump_count;

return 0;
}
@@ -182,7 +183,7 @@ static int ramoops_pstore_erase(enum pstore_type_id type, u64 id,
{
struct ramoops_context *cxt = psi->data;

- if (id >= cxt->max_count)
+ if (id >= cxt->max_dump_count)
return -EINVAL;

persistent_ram_free_old(cxt->przs[id]);
@@ -213,7 +214,7 @@ static int __init ramoops_probe(struct platform_device *pdev)
/* Only a single ramoops area allowed at a time, so fail extra
* probes.
*/
- if (cxt->max_count)
+ if (cxt->max_dump_count)
goto fail_out;

if (!pdata->mem_size || !pdata->record_size) {
@@ -240,6 +241,7 @@ static int __init ramoops_probe(struct platform_device *pdev)
}

cxt->max_count = pdata->mem_size / pdata->record_size;
+ cxt->max_dump_count = cxt->max_count;
cxt->count = 0;
cxt->size = pdata->mem_size;
cxt->phys_addr = pdata->mem_address;
@@ -247,14 +249,14 @@ static int __init ramoops_probe(struct platform_device *pdev)
cxt->dump_oops = pdata->dump_oops;
cxt->ecc = pdata->ecc;

- cxt->przs = kzalloc(sizeof(*cxt->przs) * cxt->max_count, GFP_KERNEL);
+ cxt->przs = kzalloc(sizeof(*cxt->przs) * cxt->max_dump_count, GFP_KERNEL);
if (!cxt->przs) {
err = -ENOMEM;
dev_err(dev, "failed to initialize a prz array\n");
goto fail_out;
}

- for (i = 0; i < cxt->max_count; i++) {
+ for (i = 0; i < cxt->max_dump_count; i++) {
size_t sz = cxt->record_size;
phys_addr_t start = cxt->phys_addr + sz * i;

@@ -303,6 +305,7 @@ fail_buf:
fail_clear:
cxt->pstore.bufsize = 0;
cxt->max_count = 0;
+ cxt->max_dump_count = 0;
fail_przs:
for (i = 0; cxt->przs[i]; i++)
persistent_ram_free(cxt->przs[i]);
--
1.7.9.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/