mirror of
https://github.com/torvalds/linux.git
synced 2024-11-06 12:11:59 +00:00
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: Anton Vorontsov <anton.vorontsov@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2717fca171
commit
7dd8e9be9d
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user