Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7dd8e9be authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Greg Kroah-Hartman
Browse files

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: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2717fca1
Loading
Loading
Loading
Loading
+24 −22
Original line number Diff line number Diff line
@@ -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