Factor post init logic out of __persistent_ram_init(), we'll need
it for the new persistent_ram_new() routine.

Signed-off-by: Anton Vorontsov <[email protected]>
---
 drivers/staging/android/persistent_ram.c |   44 ++++++++++++++++++------------
 1 file changed, 27 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/android/persistent_ram.c 
b/drivers/staging/android/persistent_ram.c
index 13a12bc..ec23822 100644
--- a/drivers/staging/android/persistent_ram.c
+++ b/drivers/staging/android/persistent_ram.c
@@ -378,28 +378,15 @@ static int __init persistent_ram_buffer_init(const char 
*name,
        return -EINVAL;
 }
 
-static  __init
-struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc)
+static int __init persistent_ram_post_init(struct persistent_ram_zone *prz, 
bool ecc)
 {
-       struct persistent_ram_zone *prz;
-       int ret = -ENOMEM;
-
-       prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL);
-       if (!prz) {
-               pr_err("persistent_ram: failed to allocate persistent ram 
zone\n");
-               goto err;
-       }
-
-       ret = persistent_ram_buffer_init(dev_name(dev), prz);
-       if (ret) {
-               pr_err("persistent_ram: failed to initialize buffer\n");
-               goto err;
-       }
+       int ret;
 
        prz->ecc = ecc;
+
        ret = persistent_ram_init_ecc(prz, prz->buffer_size);
        if (ret)
-               goto err;
+               return ret;
 
        if (prz->buffer->sig == PERSISTENT_RAM_SIG) {
                if (buffer_size(prz) > prz->buffer_size ||
@@ -422,6 +409,29 @@ struct persistent_ram_zone *__persistent_ram_init(struct 
device *dev, bool ecc)
        atomic_set(&prz->buffer->start, 0);
        atomic_set(&prz->buffer->size, 0);
 
+       return 0;
+}
+
+static  __init
+struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc)
+{
+       struct persistent_ram_zone *prz;
+       int ret = -ENOMEM;
+
+       prz = kzalloc(sizeof(struct persistent_ram_zone), GFP_KERNEL);
+       if (!prz) {
+               pr_err("persistent_ram: failed to allocate persistent ram 
zone\n");
+               goto err;
+       }
+
+       ret = persistent_ram_buffer_init(dev_name(dev), prz);
+       if (ret) {
+               pr_err("persistent_ram: failed to initialize buffer\n");
+               goto err;
+       }
+
+       persistent_ram_post_init(prz, ecc);
+
        return prz;
 err:
        kfree(prz);
-- 
1.7.9.2

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to