aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/pstore/ram_core.c77
-rw-r--r--include/linux/pstore_ram.h19
2 files changed, 0 insertions, 96 deletions
diff --git a/fs/pstore/ram_core.c b/fs/pstore/ram_core.c
index 78f6d4b2addb..0fd81611525c 100644
--- a/fs/pstore/ram_core.c
+++ b/fs/pstore/ram_core.c
@@ -35,8 +35,6 @@ struct persistent_ram_buffer {
35 35
36#define PERSISTENT_RAM_SIG (0x43474244) /* DBGC */ 36#define PERSISTENT_RAM_SIG (0x43474244) /* DBGC */
37 37
38static __initdata LIST_HEAD(persistent_ram_list);
39
40static inline size_t buffer_size(struct persistent_ram_zone *prz) 38static inline size_t buffer_size(struct persistent_ram_zone *prz)
41{ 39{
42 return atomic_read(&prz->buffer->size); 40 return atomic_read(&prz->buffer->size);
@@ -462,78 +460,3 @@ err:
462 kfree(prz); 460 kfree(prz);
463 return ERR_PTR(ret); 461 return ERR_PTR(ret);
464} 462}
465
466#ifndef MODULE
467static int __init persistent_ram_buffer_init(const char *name,
468 struct persistent_ram_zone *prz)
469{
470 int i;
471 struct persistent_ram *ram;
472 struct persistent_ram_descriptor *desc;
473 phys_addr_t start;
474
475 list_for_each_entry(ram, &persistent_ram_list, node) {
476 start = ram->start;
477 for (i = 0; i < ram->num_descs; i++) {
478 desc = &ram->descs[i];
479 if (!strcmp(desc->name, name))
480 return persistent_ram_buffer_map(start,
481 desc->size, prz);
482 start += desc->size;
483 }
484 }
485
486 return -EINVAL;
487}
488
489static __init
490struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc)
491{
492 struct persistent_ram_zone *prz;
493 int ret = -ENOMEM;
494
495 prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL);
496 if (!prz) {
497 pr_err("persistent_ram: failed to allocate persistent ram zone\n");
498 goto err;
499 }
500
501 ret = persistent_ram_buffer_init(dev_name(dev), prz);
502 if (ret) {
503 pr_err("persistent_ram: failed to initialize buffer\n");
504 goto err;
505 }
506
507 persistent_ram_post_init(prz, ecc);
508
509 return prz;
510err:
511 kfree(prz);
512 return ERR_PTR(ret);
513}
514
515struct persistent_ram_zone * __init
516persistent_ram_init_ringbuffer(struct device *dev, bool ecc)
517{
518 return __persistent_ram_init(dev, ecc);
519}
520
521int __init persistent_ram_early_init(struct persistent_ram *ram)
522{
523 int ret;
524
525 ret = memblock_reserve(ram->start, ram->size);
526 if (ret) {
527 pr_err("Failed to reserve persistent memory from %08lx-%08lx\n",
528 (long)ram->start, (long)(ram->start + ram->size - 1));
529 return ret;
530 }
531
532 list_add_tail(&ram->node, &persistent_ram_list);
533
534 pr_info("Initialized persistent memory from %08lx-%08lx\n",
535 (long)ram->start, (long)(ram->start + ram->size - 1));
536
537 return 0;
538}
539#endif
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h
index 9385d41cb1c3..2470bb591434 100644
--- a/include/linux/pstore_ram.h
+++ b/include/linux/pstore_ram.h
@@ -25,21 +25,6 @@
25 25
26struct persistent_ram_buffer; 26struct persistent_ram_buffer;
27 27
28struct persistent_ram_descriptor {
29 const char *name;
30 phys_addr_t size;
31};
32
33struct persistent_ram {
34 phys_addr_t start;
35 phys_addr_t size;
36
37 int num_descs;
38 struct persistent_ram_descriptor *descs;
39
40 struct list_head node;
41};
42
43struct persistent_ram_zone { 28struct persistent_ram_zone {
44 phys_addr_t paddr; 29 phys_addr_t paddr;
45 size_t size; 30 size_t size;
@@ -63,15 +48,11 @@ struct persistent_ram_zone {
63 size_t old_log_size; 48 size_t old_log_size;
64}; 49};
65 50
66int persistent_ram_early_init(struct persistent_ram *ram);
67
68struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start, 51struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start,
69 size_t size, 52 size_t size,
70 bool ecc); 53 bool ecc);
71void persistent_ram_free(struct persistent_ram_zone *prz); 54void persistent_ram_free(struct persistent_ram_zone *prz);
72void persistent_ram_zap(struct persistent_ram_zone *prz); 55void persistent_ram_zap(struct persistent_ram_zone *prz);
73struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev,
74 bool ecc);
75 56
76int persistent_ram_write(struct persistent_ram_zone *prz, const void *s, 57int persistent_ram_write(struct persistent_ram_zone *prz, const void *s,
77 unsigned int count); 58 unsigned int count);