aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2020-04-02 16:52:16 +0200
committerAndrew Jones <drjones@redhat.com>2020-04-03 10:03:45 +0200
commitf22e527df02ffaba5fdf104fd1028d8ac74f51b1 (patch)
treef71e556f02e3ca3baafea9db6c39f01a42517e65
parent3251672a95b1fa6a096bcc02ec723697115f3f0a (diff)
downloadkvm-unit-tests-f22e527df02ffaba5fdf104fd1028d8ac74f51b1.tar.gz
page_alloc: Introduce get_order()
Compute the power of 2 order of a size. Use it in page_memalign. Other users are looming. Signed-off-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Andrew Jones <drjones@redhat.com>
-rw-r--r--lib/alloc_page.c7
-rw-r--r--lib/alloc_page.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/alloc_page.c b/lib/alloc_page.c
index ed23638..7c8461a 100644
--- a/lib/alloc_page.c
+++ b/lib/alloc_page.c
@@ -155,7 +155,7 @@ static void *page_memalign(size_t alignment, size_t size)
if (!size)
return NULL;
- order = is_power_of_2(n) ? fls(n) : fls(n) + 1;
+ order = get_order(n);
return alloc_pages(order);
}
@@ -175,3 +175,8 @@ void page_alloc_ops_enable(void)
{
alloc_ops = &page_alloc_ops;
}
+
+int get_order(size_t size)
+{
+ return is_power_of_2(size) ? fls(size) : fls(size) + 1;
+}
diff --git a/lib/alloc_page.h b/lib/alloc_page.h
index 739a91d..e6a51d2 100644
--- a/lib/alloc_page.h
+++ b/lib/alloc_page.h
@@ -15,5 +15,6 @@ void *alloc_pages(unsigned long order);
void free_page(void *page);
void free_pages(void *mem, unsigned long size);
void free_pages_by_order(void *mem, unsigned long order);
+int get_order(size_t size);
#endif