提交 7dd8e9be 编写于 作者: A Anton Vorontsov 提交者: Greg Kroah-Hartman

staging: android: 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: NAnton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 2717fca1
......@@ -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 @@ struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start,
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册