staging: android: persistent_ram: Introduce persistent_ram_post_init()
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Sat, 12 May 2012 00:17:25 +0000 (17:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2012 15:56:04 +0000 (08:56 -0700)
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 <anton.vorontsov@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/persistent_ram.c

index 13a12bcee4aa9412395de15033a367cbba990760..ec23822c774be542c11ceefafe3ef84b7e8e111f 100644 (file)
@@ -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);