mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 03:15:00 +00:00
lmb: Rename free_mem to available_mem
free_mem is a misnomer. We never update it with the free memory for LMB. Instead, it describes all available memory and is checked against used_mem to decide whether an area is free or not. So let's rename this field to better match its usage. Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Tested-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
900a8951c3
commit
400c34db89
4 changed files with 21 additions and 21 deletions
|
@ -45,12 +45,12 @@ struct lmb_region {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct lmb - The LMB structure
|
* struct lmb - The LMB structure
|
||||||
* @free_mem: List of free memory regions
|
* @available_mem: List of memory available to LMB
|
||||||
* @used_mem: List of used/reserved memory regions
|
* @used_mem: List of used/reserved memory regions
|
||||||
* @test: Is structure being used for LMB tests
|
* @test: Is structure being used for LMB tests
|
||||||
*/
|
*/
|
||||||
struct lmb {
|
struct lmb {
|
||||||
struct alist free_mem;
|
struct alist available_mem;
|
||||||
struct alist used_mem;
|
struct alist used_mem;
|
||||||
bool test;
|
bool test;
|
||||||
};
|
};
|
||||||
|
|
34
lib/lmb.c
34
lib/lmb.c
|
@ -350,7 +350,7 @@ int io_lmb_setup(struct lmb *io_lmb)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = alist_init(&io_lmb->free_mem, sizeof(struct lmb_region),
|
ret = alist_init(&io_lmb->available_mem, sizeof(struct lmb_region),
|
||||||
(uint)LMB_ALIST_INITIAL_SIZE);
|
(uint)LMB_ALIST_INITIAL_SIZE);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
log_debug("Unable to initialise the list for LMB free IOVA\n");
|
log_debug("Unable to initialise the list for LMB free IOVA\n");
|
||||||
|
@ -371,13 +371,13 @@ int io_lmb_setup(struct lmb *io_lmb)
|
||||||
|
|
||||||
void io_lmb_teardown(struct lmb *io_lmb)
|
void io_lmb_teardown(struct lmb *io_lmb)
|
||||||
{
|
{
|
||||||
alist_uninit(&io_lmb->free_mem);
|
alist_uninit(&io_lmb->available_mem);
|
||||||
alist_uninit(&io_lmb->used_mem);
|
alist_uninit(&io_lmb->used_mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
long io_lmb_add(struct lmb *io_lmb, phys_addr_t base, phys_size_t size)
|
long io_lmb_add(struct lmb *io_lmb, phys_addr_t base, phys_size_t size)
|
||||||
{
|
{
|
||||||
return lmb_add_region_flags(&io_lmb->free_mem, base, size, LMB_NONE);
|
return lmb_add_region_flags(&io_lmb->available_mem, base, size, LMB_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* derived and simplified from _lmb_alloc_base() */
|
/* derived and simplified from _lmb_alloc_base() */
|
||||||
|
@ -387,9 +387,9 @@ phys_addr_t io_lmb_alloc(struct lmb *io_lmb, phys_size_t size, ulong align)
|
||||||
phys_addr_t base = 0;
|
phys_addr_t base = 0;
|
||||||
phys_addr_t res_base;
|
phys_addr_t res_base;
|
||||||
struct lmb_region *lmb_used = io_lmb->used_mem.data;
|
struct lmb_region *lmb_used = io_lmb->used_mem.data;
|
||||||
struct lmb_region *lmb_memory = io_lmb->free_mem.data;
|
struct lmb_region *lmb_memory = io_lmb->available_mem.data;
|
||||||
|
|
||||||
for (i = io_lmb->free_mem.count - 1; i >= 0; i--) {
|
for (i = io_lmb->available_mem.count - 1; i >= 0; i--) {
|
||||||
phys_addr_t lmbbase = lmb_memory[i].base;
|
phys_addr_t lmbbase = lmb_memory[i].base;
|
||||||
phys_size_t lmbsize = lmb_memory[i].size;
|
phys_size_t lmbsize = lmb_memory[i].size;
|
||||||
|
|
||||||
|
@ -515,7 +515,7 @@ static void lmb_dump_region(struct alist *lmb_rgn_lst, char *name)
|
||||||
void lmb_dump_all_force(void)
|
void lmb_dump_all_force(void)
|
||||||
{
|
{
|
||||||
printf("lmb_dump_all:\n");
|
printf("lmb_dump_all:\n");
|
||||||
lmb_dump_region(&lmb.free_mem, "memory");
|
lmb_dump_region(&lmb.available_mem, "memory");
|
||||||
lmb_dump_region(&lmb.used_mem, "reserved");
|
lmb_dump_region(&lmb.used_mem, "reserved");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -642,7 +642,7 @@ static long lmb_add_region(struct alist *lmb_rgn_lst, phys_addr_t base,
|
||||||
long lmb_add(phys_addr_t base, phys_size_t size)
|
long lmb_add(phys_addr_t base, phys_size_t size)
|
||||||
{
|
{
|
||||||
long ret;
|
long ret;
|
||||||
struct alist *lmb_rgn_lst = &lmb.free_mem;
|
struct alist *lmb_rgn_lst = &lmb.available_mem;
|
||||||
|
|
||||||
ret = lmb_add_region(lmb_rgn_lst, base, size);
|
ret = lmb_add_region(lmb_rgn_lst, base, size);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -688,9 +688,9 @@ static phys_addr_t _lmb_alloc_base(phys_size_t size, ulong align,
|
||||||
phys_addr_t base = 0;
|
phys_addr_t base = 0;
|
||||||
phys_addr_t res_base;
|
phys_addr_t res_base;
|
||||||
struct lmb_region *lmb_used = lmb.used_mem.data;
|
struct lmb_region *lmb_used = lmb.used_mem.data;
|
||||||
struct lmb_region *lmb_memory = lmb.free_mem.data;
|
struct lmb_region *lmb_memory = lmb.available_mem.data;
|
||||||
|
|
||||||
for (i = lmb.free_mem.count - 1; i >= 0; i--) {
|
for (i = lmb.available_mem.count - 1; i >= 0; i--) {
|
||||||
phys_addr_t lmbbase = lmb_memory[i].base;
|
phys_addr_t lmbbase = lmb_memory[i].base;
|
||||||
phys_size_t lmbsize = lmb_memory[i].size;
|
phys_size_t lmbsize = lmb_memory[i].size;
|
||||||
|
|
||||||
|
@ -771,10 +771,10 @@ static phys_addr_t _lmb_alloc_addr(phys_addr_t base, phys_size_t size,
|
||||||
u32 flags)
|
u32 flags)
|
||||||
{
|
{
|
||||||
long rgn;
|
long rgn;
|
||||||
struct lmb_region *lmb_memory = lmb.free_mem.data;
|
struct lmb_region *lmb_memory = lmb.available_mem.data;
|
||||||
|
|
||||||
/* Check if the requested address is in one of the memory regions */
|
/* Check if the requested address is in one of the memory regions */
|
||||||
rgn = lmb_overlaps_region(&lmb.free_mem, base, size);
|
rgn = lmb_overlaps_region(&lmb.available_mem, base, size);
|
||||||
if (rgn >= 0) {
|
if (rgn >= 0) {
|
||||||
/*
|
/*
|
||||||
* Check if the requested end address is in the same memory
|
* Check if the requested end address is in the same memory
|
||||||
|
@ -813,10 +813,10 @@ phys_size_t lmb_get_free_size(phys_addr_t addr)
|
||||||
int i;
|
int i;
|
||||||
long rgn;
|
long rgn;
|
||||||
struct lmb_region *lmb_used = lmb.used_mem.data;
|
struct lmb_region *lmb_used = lmb.used_mem.data;
|
||||||
struct lmb_region *lmb_memory = lmb.free_mem.data;
|
struct lmb_region *lmb_memory = lmb.available_mem.data;
|
||||||
|
|
||||||
/* check if the requested address is in the memory regions */
|
/* check if the requested address is in the memory regions */
|
||||||
rgn = lmb_overlaps_region(&lmb.free_mem, addr, 1);
|
rgn = lmb_overlaps_region(&lmb.available_mem, addr, 1);
|
||||||
if (rgn >= 0) {
|
if (rgn >= 0) {
|
||||||
for (i = 0; i < lmb.used_mem.count; i++) {
|
for (i = 0; i < lmb.used_mem.count; i++) {
|
||||||
if (addr < lmb_used[i].base) {
|
if (addr < lmb_used[i].base) {
|
||||||
|
@ -830,8 +830,8 @@ phys_size_t lmb_get_free_size(phys_addr_t addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* if we come here: no reserved ranges above requested addr */
|
/* if we come here: no reserved ranges above requested addr */
|
||||||
return lmb_memory[lmb.free_mem.count - 1].base +
|
return lmb_memory[lmb.available_mem.count - 1].base +
|
||||||
lmb_memory[lmb.free_mem.count - 1].size - addr;
|
lmb_memory[lmb.available_mem.count - 1].size - addr;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -854,7 +854,7 @@ static int lmb_setup(bool test)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
|
|
||||||
ret = alist_init(&lmb.free_mem, sizeof(struct lmb_region),
|
ret = alist_init(&lmb.available_mem, sizeof(struct lmb_region),
|
||||||
(uint)LMB_ALIST_INITIAL_SIZE);
|
(uint)LMB_ALIST_INITIAL_SIZE);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
log_debug("Unable to initialise the list for LMB free memory\n");
|
log_debug("Unable to initialise the list for LMB free memory\n");
|
||||||
|
@ -914,7 +914,7 @@ int lmb_push(struct lmb *store)
|
||||||
|
|
||||||
void lmb_pop(struct lmb *store)
|
void lmb_pop(struct lmb *store)
|
||||||
{
|
{
|
||||||
alist_uninit(&lmb.free_mem);
|
alist_uninit(&lmb.available_mem);
|
||||||
alist_uninit(&lmb.used_mem);
|
alist_uninit(&lmb.used_mem);
|
||||||
lmb = *store;
|
lmb = *store;
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ static int lmb_test_dump_all(struct unit_test_state *uts)
|
||||||
struct lmb *lmb = lmb_get();
|
struct lmb *lmb = lmb_get();
|
||||||
|
|
||||||
ut_assert_nextline("lmb_dump_all:");
|
ut_assert_nextline("lmb_dump_all:");
|
||||||
ut_assertok(lmb_test_dump_region(uts, &lmb->free_mem, "memory"));
|
ut_assertok(lmb_test_dump_region(uts, &lmb->available_mem, "memory"));
|
||||||
ut_assertok(lmb_test_dump_region(uts, &lmb->used_mem, "reserved"));
|
ut_assertok(lmb_test_dump_region(uts, &lmb->used_mem, "reserved"));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -65,7 +65,7 @@ static int setup_lmb_test(struct unit_test_state *uts, struct lmb *store,
|
||||||
|
|
||||||
ut_assertok(lmb_push(store));
|
ut_assertok(lmb_push(store));
|
||||||
lmb = lmb_get();
|
lmb = lmb_get();
|
||||||
*mem_lstp = &lmb->free_mem;
|
*mem_lstp = &lmb->available_mem;
|
||||||
*used_lstp = &lmb->used_mem;
|
*used_lstp = &lmb->used_mem;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue