lkml.org 
[lkml]   [2012]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 3/6] persistent_ram: Prepare for modular builds
    This is a transition patch to keep things bisectable, just moves
    some routines under '#ifndef MODULE'. The code inside the #ifndef
    will go away soon, but so far we must support pstore and ram_console.

    So, we are about to use persistent_ram with pstore, with the ability
    to compile persistent_ram routines as modules. Some parts of
    persistent_ram uses memblock_reserve() routine, which is should be
    only used built-in code, and thus it is not exported.

    These persistent_ram bits are only used by Android's ram_console,
    which is always built-in.

    Without this patch, we won't able to compile persistent_ram as a
    module:

    ERROR: "memblock_reserve" [fs/pstore/ramoops.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

    (As alternative, we could export memblock_reserve, but the thing
    is: we won't need it later.)

    Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
    ---
    drivers/staging/android/persistent_ram.c | 46 ++++++++++++++++--------------
    1 file changed, 24 insertions(+), 22 deletions(-)

    diff --git a/drivers/staging/android/persistent_ram.c b/drivers/staging/android/persistent_ram.c
    index 63481da..4b46eaa 100644
    --- a/drivers/staging/android/persistent_ram.c
    +++ b/drivers/staging/android/persistent_ram.c
    @@ -384,28 +384,6 @@ static int persistent_ram_buffer_map(phys_addr_t start, phys_addr_t size,
    return 0;
    }

    -static int __init persistent_ram_buffer_init(const char *name,
    - struct persistent_ram_zone *prz)
    -{
    - int i;
    - struct persistent_ram *ram;
    - struct persistent_ram_descriptor *desc;
    - phys_addr_t start;
    -
    - list_for_each_entry(ram, &persistent_ram_list, node) {
    - start = ram->start;
    - for (i = 0; i < ram->num_descs; i++) {
    - desc = &ram->descs[i];
    - if (!strcmp(desc->name, name))
    - return persistent_ram_buffer_map(start,
    - desc->size, prz);
    - start += desc->size;
    - }
    - }
    -
    - return -EINVAL;
    -}
    -
    static int __init persistent_ram_post_init(struct persistent_ram_zone *prz, bool ecc)
    {
    int ret;
    @@ -478,6 +456,29 @@ err:
    return ERR_PTR(ret);
    }

    +#ifndef MODULE
    +static int __init persistent_ram_buffer_init(const char *name,
    + struct persistent_ram_zone *prz)
    +{
    + int i;
    + struct persistent_ram *ram;
    + struct persistent_ram_descriptor *desc;
    + phys_addr_t start;
    +
    + list_for_each_entry(ram, &persistent_ram_list, node) {
    + start = ram->start;
    + for (i = 0; i < ram->num_descs; i++) {
    + desc = &ram->descs[i];
    + if (!strcmp(desc->name, name))
    + return persistent_ram_buffer_map(start,
    + desc->size, prz);
    + start += desc->size;
    + }
    + }
    +
    + return -EINVAL;
    +}
    +
    static __init
    struct persistent_ram_zone *__persistent_ram_init(struct device *dev, bool ecc)
    {
    @@ -528,3 +529,4 @@ int __init persistent_ram_early_init(struct persistent_ram *ram)

    return 0;
    }
    +#endif
    --
    1.7.9.2


    \
     
     \ /
      Last update: 2012-05-16 15:22    [W:0.031 / U:2.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site