On 12/16/20 12:11 PM, Claudio Imbrenda wrote:
Remove align_min from struct alloc_ops, since it is no longer used.
Signed-off-by: Claudio Imbrenda<imbrenda@xxxxxxxxxxxxx>
---
lib/alloc.h | 1 -
lib/alloc_page.c | 1 -
lib/alloc_phys.c | 9 +++++----
lib/vmalloc.c | 1 -
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/lib/alloc.h b/lib/alloc.h
index 9b4b634..db90b01 100644
--- a/lib/alloc.h
+++ b/lib/alloc.h
@@ -25,7 +25,6 @@
struct alloc_ops {
void *(*memalign)(size_t alignment, size_t size);
void (*free)(void *ptr);
- size_t align_min;
};
extern struct alloc_ops *alloc_ops;
diff --git a/lib/alloc_page.c b/lib/alloc_page.c
index 8d2700d..b1cdf21 100644
--- a/lib/alloc_page.c
+++ b/lib/alloc_page.c
@@ -385,7 +385,6 @@ void *memalign_pages_area(unsigned int area, size_t alignment, size_t size)
static struct alloc_ops page_alloc_ops = {
.memalign = memalign_pages,
.free = free_pages,
- .align_min = PAGE_SIZE,
};
/*
diff --git a/lib/alloc_phys.c b/lib/alloc_phys.c
index 72e20f7..a4d2bf2 100644
--- a/lib/alloc_phys.c
+++ b/lib/alloc_phys.c
@@ -29,8 +29,8 @@ static phys_addr_t base, top;
static void *early_memalign(size_t alignment, size_t size);
static struct alloc_ops early_alloc_ops = {
.memalign = early_memalign,
- .align_min = DEFAULT_MINIMUM_ALIGNMENT
};
+static size_t align_min;
I don't see any caller of phys_alloc_set_minimum_alignment(). So when
you are comparing against this variable in phys_alloc_aligned_safe()
below, you are comparing against zero. Is that what you is intended or
should 'align_min' be set some default ?
struct alloc_ops *alloc_ops = &early_alloc_ops;
@@ -39,8 +39,7 @@ void phys_alloc_show(void)
int i;
spin_lock(&lock);
- printf("phys_alloc minimum alignment: %#" PRIx64 "\n",
- (u64)early_alloc_ops.align_min);
+ printf("phys_alloc minimum alignment: %#" PRIx64 "\n", (u64)align_min);
for (i = 0; i < nr_regions; ++i)
printf("%016" PRIx64 "-%016" PRIx64 " [%s]\n",
(u64)regions[i].base,
@@ -64,7 +63,7 @@ void phys_alloc_set_minimum_alignment(phys_addr_t align)
{
assert(align && !(align & (align - 1)));
spin_lock(&lock);
- early_alloc_ops.align_min = align;
+ align_min = align;
spin_unlock(&lock);
}
@@ -83,6 +82,8 @@ static phys_addr_t phys_alloc_aligned_safe(phys_addr_t size,
top_safe = MIN(top_safe, 1ULL << 32);
assert(base < top_safe);
+ if (align < align_min)
+ align = align_min;
addr = ALIGN(base, align);
size += addr - base;
diff --git a/lib/vmalloc.c b/lib/vmalloc.c
index 7a49adf..e146162 100644
--- a/lib/vmalloc.c
+++ b/lib/vmalloc.c
@@ -190,7 +190,6 @@ static void vm_free(void *mem)
static struct alloc_ops vmalloc_ops = {
.memalign = vm_memalign,
.free = vm_free,
- .align_min = PAGE_SIZE,
};
void __attribute__((__weak__)) find_highmem(void)